summaryrefslogtreecommitdiffstats
path: root/kommander/editor/mainwindow.h
diff options
context:
space:
mode:
Diffstat (limited to 'kommander/editor/mainwindow.h')
-rw-r--r--kommander/editor/mainwindow.h317
1 files changed, 317 insertions, 0 deletions
diff --git a/kommander/editor/mainwindow.h b/kommander/editor/mainwindow.h
new file mode 100644
index 00000000..7a18438f
--- /dev/null
+++ b/kommander/editor/mainwindow.h
@@ -0,0 +1,317 @@
+/**********************************************************************
+ This file is based on Qt Designer, Copyright (C) 2000 Trolltech AS. All rights reserved.
+
+ This file may be distributed and/or modified under the terms of the
+ GNU General Public License version 2 as published by the Free Software
+ Foundation and appearing in the file LICENSE.GPL included in the
+ packaging of this file.
+
+ This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+ See http://www.trolltech.com/gpl/ for GPL licensing information.
+
+ Modified for Kommander:
+ (C) 2002-2003 Marc Britton <consume@optusnet.com.au>
+ (C) 2004 Michal Rudolf <mrudolf@kdewebdev.org>
+
+**********************************************************************/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include "metadatabase.h"
+
+#include <kparts/dockmainwindow.h>
+#include <kdockwidget.h>
+
+#include <qmap.h>
+#include <qguardedptr.h>
+#include <qobjectlist.h>
+
+class ActionEditor;
+class AssistProc;
+class FindDialog;
+class FormFile;
+class FormWindow;
+class GotoLineDialog;
+class HierarchyView;
+class KAction;
+class KActionCollection;
+class KProcess;
+class KRecentFilesAction;
+class KToggleAction;
+class KToolBar;
+class KURL;
+class PropertyEditor;
+class QCloseEvent;
+class QMenuBar;
+class QTimer;
+class QWidget;
+class QWorkspace;
+class MessageLog;
+class ReplaceDialog;
+class Workspace;
+
+#if defined(Q_FULL_TEMPLATE_INSTANTIATION)
+#include <qtoolbar.h>
+#else
+class QToolBar;
+#endif
+class Preferences;
+
+namespace KParts {
+ class PartManager;
+}
+
+
+class MainWindow : public KParts::DockMainWindow
+{
+ Q_OBJECT
+
+public:
+ MainWindow( bool asClient );
+ ~MainWindow();
+
+ HierarchyView *objectHierarchy() const;
+ Workspace *workspace() const;
+ PropertyEditor *propertyeditor() const;
+ ActionEditor *actioneditor() const;
+
+ void resetTool();
+ int currentTool() const;
+
+ FormWindow *formWindow();
+
+ bool unregisterClient( FormWindow *w );
+ QWidget *isAFormWindowChild( QObject *o ) const;
+ QWidget *isAToolBarChild( QObject *o ) const;
+
+ void insertFormWindow( FormWindow *fw );
+ QWorkspace *qWorkspace() const;
+
+ void popupFormWindowMenu( const QPoint &gp, FormWindow *fw );
+ void popupWidgetMenu( const QPoint &gp, FormWindow *fw, QWidget *w );
+
+ QPopupMenu *setupNormalHierarchyMenu( QWidget *parent );
+ QPopupMenu *setupTabWidgetHierarchyMenu( QWidget *parent, const char *addSlot, const char *removeSlot );
+
+ FormWindow *openFormWindow( const QString &fn, bool validFileName = TRUE, FormFile *ff = 0 );
+
+ void setGrid( const QPoint &p );
+ void setShowGrid( bool b );
+ void setSnapGrid( bool b );
+ QPoint grid() const { return grd; }
+ bool showGrid() const { return sGrid; }
+ bool snapGrid() const { return snGrid && sGrid; }
+
+ QString documentationPath() const;
+
+ static MainWindow *self;
+ void saveAllTemp();
+
+ QString templatePath() const { return templPath; }
+
+ bool isPreviewing() const { return previewing; }
+
+ FormWindow *activeForm() const { return lastActiveFormWindow; }
+
+ void setModified( bool b, QWidget *window );
+ void updateWorkspace();
+
+ void formNameChanged( FormWindow *fw );
+
+ int currentLayoutDefaultSpacing() const;
+ int currentLayoutDefaultMargin() const;
+
+
+public slots:
+ void showProperties( QObject *w );
+ void updateProperties( QObject *w );
+ void showDialogHelp();
+ void slotActivePartChanged(KParts::Part * );
+
+signals:
+ void addedFormFile(FormFile *);
+ void removedFormFile(FormFile *);
+ void currentToolChanged();
+ void hasActiveForm( bool );
+ void hasActiveWindow( bool );
+
+ void formModified( bool );
+ void formWindowsChanged();
+ void formWindowChanged();
+
+protected:
+ bool eventFilter( QObject *o, QEvent *e );
+ void closeEvent( QCloseEvent *e );
+
+public slots:
+ void fileNew();
+ void fileClose();
+ void fileOpen();
+ void fileOpen(const QString &filename);
+ void fileOpenRecent(const KURL& name);
+ bool fileSave();
+ bool fileSaveForm(); // not visible in menu, called from fileSave
+ bool fileSaveAs();
+ void fileSaveAll();
+ void fileCreateTemplate();
+
+ void editUndo();
+ void editRedo();
+ void editCut();
+ void editCopy();
+ void editPaste();
+ void editDelete();
+ void editSelectAll();
+ void editLower();
+ void editRaise();
+ void editAdjustSize();
+ void editLayoutHorizontal();
+ void editLayoutVertical();
+ void editLayoutHorizontalSplit();
+ void editLayoutVerticalSplit();
+ void editLayoutGrid();
+ void editLayoutContainerHorizontal();
+ void editLayoutContainerVertical();
+ void editLayoutContainerGrid();
+ void editBreakLayout();
+ void editAccels();
+ void editConnections();
+ void editFindGlobal();
+
+ void editFormSettings();
+ void editPreferences();
+ void editShortcuts();
+ void editPlugins();
+ void editExternalTool(int id);
+ void editToolExited(KProcess*);
+ void editToolOutput(KProcess*, char*, int);
+ void configureEditor();
+
+ void runForm();
+ void runForm4();
+
+private slots:
+ void activeWindowChanged( QWidget *w );
+ void updateUndoRedo( bool, bool, const QString &, const QString & );
+
+ void toolSelected();
+
+ void clipboardChanged();
+ void selectionChanged();
+
+ void chooseDocPath();
+ void windowsMenuActivated( int id );
+ void setupWindowActions();
+ void createNewTemplate();
+
+ void closeRunningForm(KProcess* process);
+ void slotCreateBackups();
+
+private:
+ void setupMDI();
+ void setupEditActions();
+ void setupToolActions();
+ void setupLayoutActions();
+ void setupFileActions();
+ void setupSettingsActions();
+ void setupRunActions();
+ void setupHelpActions();
+ void setupRMBMenus();
+
+ void setupPropertyEditor();
+ void setupHierarchyView();
+ void setupWorkspace();
+ void setupActionEditor();
+ void setupMessageLog();
+ void setupPlugins();
+
+ QWidget* previewFormInternal( QStyle* style = 0, QPalette* pal = 0 );
+
+ void writeConfig();
+ void readConfig();
+
+ void setupRMBProperties( QValueList<int> &ids, QMap<QString, int> &props, QWidget *w );
+ void handleRMBProperties( int id, QMap<QString, int> &props, QWidget *w );
+ void setupRMBSpecialCommands( QValueList<int> &ids, QMap<QString, int> &commands, QWidget *w );
+ void handleRMBSpecialCommands( int id, QMap<QString, int> &commands, QWidget *w );
+ void setupRMBSpecialCommands( QValueList<int> &ids, QMap<QString, int> &commands, FormWindow *w );
+ void handleRMBSpecialCommands( int id, QMap<QString, int> &commands, FormWindow *w );
+ bool openEditor( QWidget *w, FormWindow *fw );
+ void checkTempFiles();
+
+ void addRecentlyOpened(const QString &fn);
+ QWidget *findRealForm( QWidget *w );
+
+ QString whatsThisFrom( const QString &key );
+
+private:
+ PropertyEditor *propertyEditor;
+ HierarchyView *hierarchyView;
+ Workspace *wspace;
+ QWidget *lastPressWidget;
+ QWorkspace *qworkspace;
+ KMenuBar *menubar;
+ FormWindow *lastActiveFormWindow;
+ bool breakLayout, layoutChilds, layoutSelected;
+ QPoint grd;
+ bool sGrid, snGrid;
+ bool restoreConfig;
+ bool backPix;
+ bool splashScreen;
+ QString docPath;
+
+ KAction *actionEditUndo, *actionEditRedo, *actionEditCut, *actionEditCopy,
+ *actionEditPaste, *actionEditDelete, *actionEditAdjustSize,
+ *actionEditHLayout, *actionEditVLayout, *actionEditGridLayout,
+ *actionEditSplitHorizontal, *actionEditSplitVertical,
+ *actionEditSelectAll, *actionEditBreakLayout, *actionEditConnections,
+ *actionEditLower, *actionEditRaise, *actionEditFindGlobal;
+
+ KToggleAction* actionPointerTool, *actionConnectTool, *actionOrderTool;
+ KAction* actionCurrentTool;
+ KAction *actionEditFormSettings, *actionEditAccels;
+ KRecentFilesAction* actionRecent;
+
+ QPopupMenu *rmbWidgets;
+ QPopupMenu *rmbFormWindow;
+ QPopupMenu *windowMenu, *fileMenu;
+
+ QToolBar *layoutToolBar;
+ KToolBar *fileTb;
+
+ Preferences *prefDia;
+ QMap<QString,QString> propertyDocumentation;
+ bool client;
+ QString templPath;
+ ActionEditor *actionEditor;
+
+ bool databaseAutoEdit;
+ QTimer *updateSlotsTimer;
+ QTimer *backupTimer;
+ bool inDebugMode;
+ QObjectList debuggingForms;
+ QString lastOpenFilter;
+ QString menuHelpFile;
+ AssistProc *assistant;
+
+ bool previewing;
+ MessageLog* messageLog;
+
+ // Paths of external Kommander tools for Editor
+ QStringList m_editorTools;
+ QString m_toolOutput;
+ KParts::PartManager *m_partManager;
+
+ QString m_fileName;
+ QString m_backupName;
+ bool m_modified;
+
+public:
+ QString lastSaveFilter;
+
+};
+
+#endif