Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
mainwindow.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3// Qt-Security score:significant reason:default
4
5#ifndef MAINWINDOW_H
6#define MAINWINDOW_H
7
8#include <QtCore/qlist.h>
9
10#include <QtWidgets/qmainwindow.h>
11#include <QtWidgets/qmdiarea.h>
12
13QT_BEGIN_NAMESPACE
14
15class QDesignerActions;
20
22class QToolBar;
23class QMdiArea;
24class QMenu;
25class QByteArray;
26class QMimeData;
27
28/* A main window that has a configureable policy on handling close events. If
29 * enabled, it can forward the close event to external handlers.
30 * Base class for windows that can switch roles between tool windows
31 * and main windows. */
32
34{
37protected:
38 explicit MainWindowBase(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::Window);
39
40public:
42 /* Always accept close events */
44 /* Emit a signal with the event, have it handled elsewhere */
46
47 CloseEventPolicy closeEventPolicy() const { return m_policy; }
48 void setCloseEventPolicy(CloseEventPolicy pol) { m_policy = pol; }
49
50 static QList<QToolBar *> createToolBars(const QDesignerActions *actions, bool singleToolBar);
51 static QString mainWindowTitle();
52
53 // Use the minor Qt version as settings versions to avoid conflicts
54 static int settingsVersion();
55
58
59protected:
60 void closeEvent(QCloseEvent *e) override;
61private:
63};
64
65/* An MdiArea that listens for desktop file manager file drop events and emits
66 * a signal to open a dropped file. */
67class DockedMdiArea : public QMdiArea
68{
71public:
72 explicit DockedMdiArea(const QString &extension, QWidget *parent = nullptr);
73
75 void fileDropped(const QString &);
76
77protected:
78 bool event (QEvent *event) override;
79
80private:
81 QStringList uiFiles(const QMimeData *d) const;
82
83 const QString m_extension;
84};
85
86// Convenience class that manages a QtToolBarManager and an action to trigger
87// it on a mainwindow.
88class ToolBarManager : public QObject
89{
90 Q_OBJECT
91 Q_DISABLE_COPY_MOVE(ToolBarManager)
92public:
97 const QList<QToolBar *> &toolbars,
99
100 QByteArray saveState(int version = 0) const;
101 bool restoreState(const QByteArray &state, int version = 0);
102
103private slots:
104 void configureToolBars();
105 void updateToolBarMenu();
106
107private:
108 QMainWindow *m_configureableMainWindow;
109 QWidget *m_parent;
110 QMenu *m_toolBarMenu;
111 QtToolBarManager *m_manager;
112 QAction *m_configureAction;
113 QList<QToolBar *> m_toolbars;
114};
115
116/* Main window to be used for docked mode */
118 Q_OBJECT
119 Q_DISABLE_COPY_MOVE(DockedMainWindow)
120public:
123
125 QMenu *toolBarMenu,
126 const DesignerToolWindowList &toolWindows);
127
128 // Create a MDI subwindow for the form.
129 QMdiSubWindow *createMdiSubWindow(QWidget *fw, Qt::WindowFlags f, const QKeySequence &designerCloseActionShortCut);
130
131 QMdiArea *mdiArea() const;
132
133 DockWidgetList addToolWindows(const DesignerToolWindowList &toolWindows);
134
135 void restoreSettings(const QDesignerSettings &s, const DockWidgetList &dws, const QRect &desktopArea);
136 void saveSettings(QDesignerSettings &) const;
137
138signals:
139 void fileDropped(const QString &);
141
142private slots:
144
145private:
146 ToolBarManager *m_toolBarManager = nullptr;
147};
148
149QT_END_NAMESPACE
150
151#endif // MAINWINDOW_H
void restoreSettings(const QDesignerSettings &s, const DockWidgetList &dws, const QRect &desktopArea)
DockedMainWindow(QDesignerWorkbench *wb, QMenu *toolBarMenu, const DesignerToolWindowList &toolWindows)
DockWidgetList addToolWindows(const DesignerToolWindowList &toolWindows)
void saveSettings(QDesignerSettings &) const
QMdiSubWindow * createMdiSubWindow(QWidget *fw, Qt::WindowFlags f, const QKeySequence &designerCloseActionShortCut)
QMdiArea * mdiArea() const
void formWindowActivated(QDesignerFormWindow *)
bool event(QEvent *event) override
static QString mainWindowTitle()
CloseEventPolicy closeEventPolicy() const
Definition mainwindow.h:47
void closeEvent(QCloseEvent *e) override
This event handler is called with the given event when Qt receives a window close request for a top-l...
static int settingsVersion()
static QList< QToolBar * > createToolBars(const QDesignerActions *actions, bool singleToolBar)
void setCloseEventPolicy(CloseEventPolicy pol)
Definition mainwindow.h:48
QActionGroup * helpActions() const
QActionGroup * fileActions() const
QActionGroup * styleActions() const
QActionGroup * editActions() const
QActionGroup * formActions() const
QActionGroup * toolActions() const
QActionGroup * windowActions() const
void setToolBarsState(UIMode mode, const QByteArray &mainWindowState)
void setMainWindowState(UIMode mode, const QByteArray &mainWindowState)
QByteArray toolBarsState(UIMode mode) const
void saveGeometryFor(const QWidget *w)
QDesignerActions * actionManager() const
friend class QWidget
Definition qpainter.h:432
The QtToolBarDialog class provides a dialog for customizing toolbars.
void setToolBarManager(QtToolBarManager *toolBarManager)
Connects the toolbar dialog to the given toolBarManager.
The QtToolBarManager class provides toolbar management for main windows.
QByteArray saveState(int version=0) const
Saves the state of the toolbar manager's toolbars.
void addAction(QAction *action, const QString &category)
Adds the given action to the given category in the manager's list of actions.
bool restoreState(const QByteArray &state, int version=0)
Restores the saved state of the toolbar manager's toolbars.
void setMainWindow(QMainWindow *mainWindow)
Sets the main window upon which the toolbar manager operates, to be the given mainWindow.
QByteArray saveState(int version=0) const
bool restoreState(const QByteArray &state, int version=0)
#define qDesigner
Definition qdesigner.h:20
static void addActionsToToolBar(const ActionList &actions, QToolBar *t)
static void addActionsToToolBarManager(const ActionList &al, const QString &title, QtToolBarManager *tbm)
static QToolBar * createToolBar(const QString &title, const QString &objectName, const ActionList &actions)
bool toolBarTitleLessThan(const QToolBar *t1, const QToolBar *t2)