mainwindow.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _MAINWINDOW_H_
00019 #define _MAINWINDOW_H_
00020
00021
00022 #include <qmap.h>
00023 #include <qptrlist.h>
00024 #include <qdict.h>
00025
00026
00027 #include <kmdimainfrm.h>
00028 #include <kmdichildview.h>
00029
00030
00031 #include "kdevmainwindow.h"
00032
00033 class QDomElement;
00034 class ViewMenuAction;
00035 class ViewMenuActionPrivateData;
00036 class MainWindowShare;
00037
00042 class MainWindow : public KMdiMainFrm, public KDevMainWindow
00043 {
00044 Q_OBJECT
00045
00046 public:
00047
00048 MainWindow(QWidget* parent=0, const char *name=0, KMdi::MdiMode = KMdi::IDEAlMode);
00049 ~MainWindow();
00050
00051 void embedPartView(QWidget *view, const QString &title, const QString &toolTip = QString::null );
00052 void embedSelectView(QWidget *view, const QString &title, const QString &toolTip);
00053 void embedOutputView(QWidget *view, const QString &title, const QString &toolTip);
00054
00055 void embedSelectViewRight ( QWidget* view, const QString& title, const QString &toolTip);
00056
00057 void removeView(QWidget *view);
00058 void setViewAvailable(QWidget *pView, bool bEnabled);
00059
00060 void raiseView(QWidget *view);
00061 void lowerView(QWidget *view);
00062 void lowerAllViews();
00063
00064 void loadSettings();
00065
00066 KMainWindow *main();
00067
00068 void init();
00069
00070 void prepareToCloseViews();
00071 void guiRestoringFinished();
00072
00073 virtual void setUserInterfaceMode(const QString& uiMode);
00074
00075 virtual void callCommand(const QString& command);
00076
00078 virtual void childWindowCloseRequest(KMdiChildView *pWnd);
00079
00080 enum EView {OutputView, TreeView};
00081
00083 void storeOutputViewTab();
00084
00086 void restoreOutputViewTab();
00087
00088 public slots:
00089
00090 void setCaption( const QString &);
00091 void createGUI(KParts::Part *part);
00092 void gotoNextWindow();
00093 void gotoPreviousWindow();
00094 void gotoFirstWindow();
00095 void gotoLastWindow();
00097 virtual void fillWindowMenu();
00099 virtual void switchToToplevelMode();
00101 virtual void switchToChildframeMode();
00103 virtual void switchToTabPageMode();
00105 virtual void switchToIDEAlMode();
00106
00107 virtual void raiseEditor();
00108
00110 virtual void fillOutputToolViewsMenu();
00112 virtual void fillTreeToolViewsMenu();
00113
00115 virtual void toggleSingleToolWin(const ViewMenuActionPrivateData &ActionData);
00116
00118 virtual void toggleToolDockBaseState(const ViewMenuActionPrivateData &ActionData);
00119
00121 virtual void showAllToolWin(EView eView,bool show);
00122
00124 virtual void updateActionState();
00125
00126 protected:
00128 KParts::ReadOnlyPart * getPartFromWidget(const QWidget * pWidget) const;
00130 void resizeEvent(QResizeEvent *ev);
00134 private slots:
00135 void slotReactToProjectOpened();
00136 void slotRestoreAdditionalViewProperties(const QString& viewName, const QDomElement* viewEl);
00137 void slotSaveAdditionalViewProperties(const QString& viewName, QDomElement* viewEl);
00138 void slotToggleViewbar();
00139 void slotViewActivated(KMdiChildView* view);
00140 void slotPartURLChanged( KParts::ReadOnlyPart *);
00141 private:
00142
00144 void fillToolViewsMenu(EView eView);
00147 void setWindowMenu(QPopupMenu *menu);
00148
00149 virtual bool queryClose();
00150 virtual bool queryExit();
00151
00152
00167 KMdiChildView *wrapper(
00168 QWidget *view,
00169 const QString &name);
00170
00171 void createStatusBar();
00172 void createFramework();
00173 void createActions();
00174
00175 void saveSettings();
00176 void saveMDISettings();
00177 void loadMDISettings();
00178
00179 void clearWindowMenu();
00180 void checkAndFixToolViewObjectName(QWidget* view, const QString& shortName);
00181
00182
00183
00184 QMap<QWidget*,KMdiChildView*> m_widgetMap;
00185
00186 QMap<KMdiChildView*,QWidget*> m_childViewMap;
00187
00188 QDict<KMdiChildView> m_captionDict;
00189
00190 QPtrList<QWidget> m_outputViews;
00191 QPtrList<QWidget> m_selectViews;
00192 QPtrList<KMdiChildView> m_partViews;
00193 QPtrList<QWidget> m_unavailableViews;
00194
00195
00196 bool m_myWindowsReady;
00197 ViewMenuAction * m_pShowOutputViews;
00198 ViewMenuAction * m_pShowTreeViews;
00199 KActionMenu * m_pTreeToolViewsMenu;
00200 KActionMenu * m_pOutputToolViewsMenu;
00201 QString m_CurrentOutputTab;
00202 QString m_CurrentTreeTab;
00203 KToggleAction* m_toggleViewbar;
00204
00205 MainWindowShare* m_pMainWindowShare;
00206
00207 QValueList<int> m_windowMenus;
00208
00209 bool m_bUiModeSwitchPending;
00210 bool m_bRemoveViewPending;
00211
00212 int mdiStyle;
00213 };
00214
00215
00218 struct ViewMenuActionPrivateData
00219 {
00220 KDockWidget * pDockWidget;
00221 QWidget *pChildView;
00222 MainWindow::EView eView;
00223 };
00224
00227 class ViewMenuAction : public KToggleAction
00228 {
00229 Q_OBJECT
00230 public:
00231 ViewMenuAction(ViewMenuActionPrivateData Data, const QString &Name);
00252 ViewMenuAction(
00253 ViewMenuActionPrivateData Data,
00254 const QString& text, const QString& pix, const KShortcut& cut,
00255 const QObject* receiver, const char* slot,
00256 KActionCollection* parent, const char* name );
00257
00258 const ViewMenuActionPrivateData* getData(void)
00259 {return &WindowData;}
00260
00261 signals:
00262 void activated (const ViewMenuActionPrivateData &);
00263 protected slots:
00264 virtual void slotActivated();
00265
00266 private:
00268 ViewMenuActionPrivateData WindowData;
00269
00270 };
00271
00272
00273 #endif
This file is part of the documentation for KDevelop Version 3.1.2.