16#ifndef QGSDOCKABLEWIDGETHELPER_H
17#define QGSDOCKABLEWIDGETHELPER_H
37class GUI_EXPORT QgsNonRejectableDialog :
public QDialog
41 explicit QgsNonRejectableDialog( QWidget *parent =
nullptr, Qt::WindowFlags f = Qt::WindowFlags() );
42 void reject()
override;
55class GUI_EXPORT QgsDockableWidgetHelper :
public QObject
66 enum class OpeningMode :
int
73 enum class Option :
int
76 PermanentWidget = 1 << 2,
79 Q_DECLARE_FLAGS( Options, Option )
90 QgsDockableWidgetHelper(
91 const QString &windowTitle,
93 QMainWindow *ownerWindow,
94 const QString &dockId,
95 const QStringList &tabifyWith = QStringList(),
96 OpeningMode openingMode = OpeningMode::RespectSetting,
97 bool defaultIsDocked =
false,
98 Qt::DockWidgetArea defaultDockArea = Qt::DockWidgetArea::RightDockWidgetArea,
99 Options options = Options()
102 ~QgsDockableWidgetHelper();
106 bool isDocked()
const {
return mIsDocked; }
109 void writeXml( QDomElement &viewDom );
110 void readXml(
const QDomElement &viewDom );
113 void setWidget( QWidget *widget );
115 QWidget *widget() {
return mWidget; }
123 void setWindowTitle(
const QString &title );
125 QString windowTitle()
const {
return mWindowTitle; }
128 void setDockObjectName(
const QString &name );
130 QString dockObjectName()
const;
136 bool isUserVisible()
const;
142 QToolButton *createDockUndockToolButton();
147 QAction *createDockUndockAction(
const QString &title, QWidget *parent );
149 bool eventFilter( QObject *watched, QEvent *event )
override;
151 static std::function<void( Qt::DockWidgetArea, QDockWidget *,
const QStringList &,
bool )> sAddTabifiedDockWidgetFunction;
152 static std::function<QString()> sAppStylesheetFunction;
154 static QMainWindow *sOwnerWindow;
159 void dockModeToggled(
bool docked );
161 void visibilityChanged(
bool isVisible );
164 void toggleDockMode(
bool docked );
166 void setUserVisible(
bool visible );
169 void setupDockWidget(
const QStringList &tabSiblings = QStringList() );
171 bool mIsDocked =
true;
172 QWidget *mWidget =
nullptr;
174 QPointer<QDialog> mDialog;
175 QRect mDialogGeometry;
177 QPointer<QgsDockWidget> mDock;
179 bool mIsDockFloating =
true;
180 Qt::DockWidgetArea mDockArea = Qt::RightDockWidgetArea;
182 QString mWindowTitle;
184 QMainWindow *mOwnerWindow =
nullptr;
186 QStringList mTabifyWith;
193 const QString mSettingKeyDockId;
static QgsSettingsTreeNode * sTtreeWidgetGeometry
A boolean settings entry.
A template class for enum and flag settings entry.
A variant settings entry.
QgsSettingsTreeNode is a tree node for the settings tree to help organizing and introspecting the tre...
QgsSettingsTreeNamedListNode * createNamedListNode(const QString &key, const Qgis::SettingsTreeNodeOptions &options=Qgis::SettingsTreeNodeOptions())
Creates a named list tree node.
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsTextRendererUtils::CurvedTextFlags)