|
|
|
/* This file is part of the KDE project
|
|
|
|
*
|
|
|
|
* Copyright (C) 2005 Leo Savernik <l.savernik@aon.at>
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Library General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Library General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Library General Public License
|
|
|
|
* along with this library; see the file COPYING.LIB. If not, write to
|
|
|
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
|
|
* Boston, MA 02110-1301, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef domtreewindow_H
|
|
|
|
#define domtreewindow_H
|
|
|
|
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
#include <config.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <kmainwindow.h>
|
|
|
|
|
|
|
|
#include <tqguardedptr.h>
|
|
|
|
|
|
|
|
namespace domtreeviewer {
|
|
|
|
class ManipulationCommand;
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace KParts {
|
|
|
|
class Part;
|
|
|
|
class PartManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
class DOMTreeView;
|
|
|
|
class PluginDomtreeviewer;
|
|
|
|
|
|
|
|
class KAction;
|
|
|
|
class KConfig;
|
|
|
|
class KPrinter;
|
|
|
|
class KURL;
|
|
|
|
class KCommandHistory;
|
|
|
|
class KHTMLPart;
|
|
|
|
class MessageDialog;
|
|
|
|
|
|
|
|
class TQPopupMenu;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This class serves as the main window for DOM Tree Viewer. It handles the
|
|
|
|
* menus, toolbars, and status bars.
|
|
|
|
*
|
|
|
|
* @short Main window class
|
|
|
|
* @author Leo Savernik
|
|
|
|
*/
|
|
|
|
class DOMTreeWindow : public KMainWindow
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* Default Constructor
|
|
|
|
*/
|
|
|
|
DOMTreeWindow(PluginDomtreeviewer *plugin);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Default Destructor
|
|
|
|
*/
|
|
|
|
virtual ~DOMTreeWindow();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* returns the dom tree view
|
|
|
|
*/
|
|
|
|
DOMTreeView *view() const { return m_view; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* returns the command history
|
|
|
|
*/
|
|
|
|
KCommandHistory *commandHistory() const { return m_commandHistory; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* creates and returns the context menu for the list info panel
|
|
|
|
*/
|
|
|
|
TQPopupMenu *createInfoPanelAttrContextMenu();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* returns the context menu for the list info panel
|
|
|
|
*/
|
|
|
|
TQPopupMenu *infoPanelAttrContextMenu() { return infopanel_ctx; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* creates and returns the context menu for the DOM tree view
|
|
|
|
*/
|
|
|
|
TQPopupMenu *createDOMTreeViewContextMenu();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* returns the context menu for the DOM tree view
|
|
|
|
*/
|
|
|
|
TQPopupMenu *domTreeViewContextMenu() { return domtree_ctx; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Executes the given command and adds it to the history.
|
|
|
|
*
|
|
|
|
* If the command could not be executed, it will not be added.
|
|
|
|
*/
|
|
|
|
void executeAndAddCommand(domtreeviewer::ManipulationCommand *);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the config object for this plugin.
|
|
|
|
*/
|
|
|
|
KConfig *config() const { return _config; }
|
|
|
|
|
|
|
|
/** returns the attribute delete action */
|
|
|
|
KAction *deleteAttributeAction() const { return del_attr; }
|
|
|
|
/** returns the node delete action */
|
|
|
|
KAction *deleteNodeAction() const { return del_tree; }
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
/**
|
|
|
|
* Adds a log message
|
|
|
|
* @param id message id
|
|
|
|
* @param msg message text
|
|
|
|
*/
|
|
|
|
void addMessage(int id, const TQString &msg);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Displays the message log window.
|
|
|
|
*/
|
|
|
|
void showMessageLog();
|
|
|
|
|
|
|
|
protected:
|
|
|
|
/**
|
|
|
|
* Overridden virtuals for TQt drag 'n drop (XDND)
|
|
|
|
*/
|
|
|
|
virtual void dragEnterEvent(TQDragEnterEvent *event);
|
|
|
|
virtual void dropEvent(TQDropEvent *event);
|
|
|
|
protected:
|
|
|
|
/**
|
|
|
|
* This function is called when it is time for the app to save its
|
|
|
|
* properties for session management purposes.
|
|
|
|
*/
|
|
|
|
void saveProperties(KConfig *);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This function is called when this app is restored. The KConfig
|
|
|
|
* object points to the session management config file that was saved
|
|
|
|
* with @ref saveProperties
|
|
|
|
*/
|
|
|
|
void readProperties(KConfig *);
|
|
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
void slotCut();
|
|
|
|
void slotCopy();
|
|
|
|
void slotPaste();
|
|
|
|
//void slotUndo();
|
|
|
|
//void slotRedo();
|
|
|
|
void slotFind();
|
|
|
|
void optionsConfigureToolbars();
|
|
|
|
void optionsPreferences();
|
|
|
|
void newToolbarConfig();
|
|
|
|
|
|
|
|
void changeStatusbar(const TQString& text);
|
|
|
|
void changeCaption(const TQString& text);
|
|
|
|
|
|
|
|
void slotHtmlPartChanged(KHTMLPart *);
|
|
|
|
void slotActivePartChanged(KParts::Part *);
|
|
|
|
void slotPartRemoved(KParts::Part *);
|
|
|
|
void slotClosePart();
|
|
|
|
|
|
|
|
private:
|
|
|
|
void setupAccel();
|
|
|
|
void setupActions();
|
|
|
|
|
|
|
|
private:
|
|
|
|
PluginDomtreeviewer *m_plugin;
|
|
|
|
DOMTreeView *m_view;
|
|
|
|
MessageDialog *msgdlg;
|
|
|
|
|
|
|
|
KCommandHistory *m_commandHistory;
|
|
|
|
TQPopupMenu *infopanel_ctx;
|
|
|
|
TQPopupMenu *domtree_ctx;
|
|
|
|
KConfig *_config;
|
|
|
|
|
|
|
|
KAction *del_tree, *del_attr;
|
|
|
|
|
|
|
|
TQGuardedPtr<KParts::PartManager> part_manager;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // domtreewindow_H
|