1 /**************************************************************************
3 ** This file is part of Qt Creator
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
7 ** Contact: Nokia Corporation (qt-info@nokia.com)
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
16 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25 ** In addition, as a special exception, Nokia gives you certain additional
26 ** rights. These rights are described in the Nokia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29 ** If you have questions regarding the use of this file, please contact
30 ** Nokia at qt-info@nokia.com.
32 **************************************************************************/
37 #include "eventfilteringmainwindow.h"
41 #include <QtCore/QMap>
42 #include <QtGui/QColor>
54 class StatusBarWidget;
62 class ProgressManager;
63 class NavigationWidget;
64 class RightPaneWidget;
66 class SettingsDatabase;
67 class UniqueIDManager;
68 class VariableManager;
73 class ActionManagerPrivate;
76 class GeneralSettings;
77 class ProgressManagerPrivate;
78 class ShortcutSettings;
79 class StatusBarManager;
83 class MainWindow : public EventFilteringMainWindow
91 bool init(QString *errorMessage);
92 void extensionsInitialized();
93 void aboutToShutdown();
95 IContext *contextObject(QWidget *widget);
96 void addContextObject(IContext *contex);
97 void removeContextObject(IContext *contex);
100 void openFiles(const QStringList &fileNames, ICore::OpenFilesFlags flags);
102 Core::ActionManager *actionManager() const;
103 Core::FileManager *fileManager() const;
104 Core::UniqueIDManager *uniqueIDManager() const;
105 Core::MessageManager *messageManager() const;
106 Core::EditorManager *editorManager() const;
107 Core::ProgressManager *progressManager() const;
108 Core::ScriptManager *scriptManager() const;
109 Core::VariableManager *variableManager() const;
110 Core::ModeManager *modeManager() const;
111 Core::MimeDatabase *mimeDatabase() const;
112 Core::HelpManager *helpManager() const;
114 VcsManager *vcsManager() const;
115 QSettings *settings(QSettings::Scope scope) const;
116 inline SettingsDatabase *settingsDatabase() const { return m_settingsDatabase; }
117 virtual QPrinter *printer() const;
118 IContext * currentContextObject() const;
119 QStatusBar *statusBar() const;
121 void updateAdditionalContexts(const Context &remove, const Context &add);
122 bool hasContext(int context) const;
124 void setSuppressNavigationWidget(bool suppress);
126 void setOverrideColor(const QColor &color);
129 void windowActivated();
135 void setFullScreen(bool on);
137 void showNewItemDialog(const QString &title,
138 const QList<IWizard *> &wizards,
139 const QString &defaultLocation = QString());
141 bool showOptionsDialog(const QString &category = QString(),
142 const QString &page = QString(),
143 QWidget *parent = 0);
145 bool showWarningWithOptions(const QString &title, const QString &text,
146 const QString &details = QString(),
147 const QString &settingsCategory = QString(),
148 const QString &settingsId = QString(),
149 QWidget *parent = 0);
152 virtual void changeEvent(QEvent *e);
153 virtual void closeEvent(QCloseEvent *event);
154 virtual void dragEnterEvent(QDragEnterEvent *event);
155 virtual void dropEvent(QDropEvent *event);
159 void aboutToShowRecentFiles();
160 void openRecentFile();
161 void setFocusToEditor();
163 void aboutQtCreator();
165 void updateFocusWidget(QWidget *old, QWidget *now);
166 void setSidebarVisible(bool visible);
167 void destroyVersionDialog();
168 void openDelayedFiles();
171 void updateContextObject(IContext *context);
172 void updateContext();
174 void registerDefaultContainers();
175 void registerDefaultActions();
178 void writeSettings();
180 CoreImpl *m_coreImpl;
181 UniqueIDManager *m_uniqueIDManager;
182 Context m_additionalContexts;
183 QSettings *m_settings;
184 QSettings *m_globalSettings;
185 SettingsDatabase *m_settingsDatabase;
186 mutable QPrinter *m_printer;
187 ActionManagerPrivate *m_actionManager;
188 EditorManager *m_editorManager;
189 FileManager *m_fileManager;
190 MessageManager *m_messageManager;
191 ProgressManagerPrivate *m_progressManager;
192 ScriptManager *m_scriptManager;
193 QScopedPointer<VariableManager> m_variableManager;
194 VcsManager *m_vcsManager;
195 StatusBarManager *m_statusBarManager;
196 ModeManager *m_modeManager;
197 MimeDatabase *m_mimeDatabase;
198 HelpManager *m_helpManager;
199 FancyTabWidget *m_modeStack;
200 NavigationWidget *m_navigationWidget;
201 RightPaneWidget *m_rightPaneWidget;
202 Core::StatusBarWidget *m_outputView;
203 VersionDialog *m_versionDialog;
205 IContext *m_activeContext;
207 QMap<QWidget *, IContext *> m_contextWidgets;
209 GeneralSettings *m_generalSettings;
210 ShortcutSettings *m_shortcutSettings;
211 SystemEditor *m_systemEditor;
214 QShortcut *m_focusToEditor;
215 QAction *m_newAction;
216 QAction *m_openAction;
217 QAction *m_openWithAction;
218 QAction *m_saveAllAction;
219 QAction *m_exitAction;
220 QAction *m_optionsAction;
221 QAction *m_toggleSideBarAction;
222 QAction *m_toggleFullScreenAction;
224 QAction *m_minimizeAction;
225 QAction *m_zoomAction;
228 QToolButton *m_toggleSideBarButton;
229 QColor m_overrideColor;
231 QStringList m_filesToOpenDelayed;
234 } // namespace Internal
237 #endif // MAINWINDOW_H