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 **************************************************************************/
34 #ifndef FANCYMAINWINDOW_H
35 #define FANCYMAINWINDOW_H
37 #include "utils_global.h"
39 #include <QtGui/QMainWindow>
47 struct FancyMainWindowPrivate;
49 class QTCREATOR_UTILS_EXPORT FancyMainWindow : public QMainWindow
54 explicit FancyMainWindow(QWidget *parent = 0);
55 virtual ~FancyMainWindow();
57 /* The widget passed in should have an objectname set
58 * which will then be used as key for QSettings. */
59 QDockWidget *addDockForWidget(QWidget *widget);
60 QList<QDockWidget *> dockWidgets() const;
62 void setTrackingEnabled(bool enabled);
63 bool isLocked() const;
65 void saveSettings(QSettings *settings) const;
66 void restoreSettings(const QSettings *settings);
67 QHash<QString, QVariant> saveSettings() const;
68 void restoreSettings(const QHash<QString, QVariant> &settings);
70 // Additional context menu actions
71 QAction *menuSeparator1() const;
72 QAction *toggleLockedAction() const;
73 QAction *menuSeparator2() const;
74 QAction *resetLayoutAction() const;
76 // Overwritten to add locked/reset.
77 virtual QMenu *createPopupMenu();
80 QDockWidget *toolBarDockWidget() const;
81 void setToolBarDockWidget(QDockWidget *dock);
84 // Emitted by resetLayoutAction(). Connect to a slot
85 // restoring the default layout.
89 void setLocked(bool locked);
90 void setDockActionsVisible(bool v);
93 void hideEvent(QHideEvent *event);
94 void showEvent(QShowEvent *event);
95 void contextMenuEvent(QContextMenuEvent *event);
97 void onDockActionTriggered();
98 void onDockVisibilityChange(bool);
99 void onTopLevelChanged();
102 void updateDockWidget(QDockWidget *dockWidget);
103 void handleVisibilityChanged(bool visible);
105 FancyMainWindowPrivate *d;
110 #endif // FANCYMAINWINDOW_H