QGIS API Documentation 3.27.0-Master (9c08adf5ef)
qgspanelwidget.h
Go to the documentation of this file.
1/***************************************************************************
2 qgspanelwidget.h
3 ---------------------
4 begin : June 2016
5 copyright : (C) 2016 by Nathan Woodrow
6 email :
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15#ifndef QGSPANELWIDGET_H
16#define QGSPANELWIDGET_H
17
18#include <QWidget>
19#include <QKeyEvent>
20#include <QStack>
21#include "qgis_gui.h"
22
23class QMenu;
24
29class GUI_EXPORT QgsPanelWidget : public QWidget
30{
31 Q_OBJECT
32 public:
33
38 QgsPanelWidget( QWidget *parent = nullptr );
39
44 void setPanelTitle( const QString &panelTitle ) { mPanelTitle = panelTitle; }
45
50 QString panelTitle() { return mPanelTitle; }
51
59 void connectChildPanels( const QList<QgsPanelWidget *> &panels );
60
68 void connectChildPanel( QgsPanelWidget *panel );
69
75 virtual void setDockMode( bool dockMode );
76
85 virtual bool applySizeConstraintsToStack() const;
86
93 bool dockMode() { return mDockMode; }
94
101 void setAutoDelete( bool autoDelete ) { mAutoDelete = autoDelete; }
102
109 bool autoDelete() { return mAutoDelete; }
110
118 static QgsPanelWidget *findParentPanel( QWidget *widget );
119
127 virtual QString menuButtonTooltip() const;
128
135 virtual QMenu *menuButtonMenu();
136
137 signals:
138
149
156 void showPanel( QgsPanelWidget *panel );
157
165
166 public slots:
167
178 void openPanel( QgsPanelWidget *panel );
179
184 void acceptPanel();
185
186 protected:
187
192 void keyPressEvent( QKeyEvent *event ) override;
193
194 private:
195 bool mAutoDelete = true;
196 QString mPanelTitle;
197 bool mDockMode = false;
198
199};
200
201
210class GUI_EXPORT QgsPanelWidgetWrapper: public QgsPanelWidget
211{
212 Q_OBJECT
213 public:
214
221 QgsPanelWidgetWrapper( QWidget *widget, QWidget *parent = nullptr );
222
227 QWidget *widget() { return mWidget; }
228
229 private:
230 QWidget *mWidget = nullptr;
231
232};
233
234#endif // QGSPANELWIDGET_H
Wrapper widget for existing widgets which can't have the inheritance tree changed,...
QWidget * widget()
Returns the internal widget that is wrapped in this panel.
Base class for any widget that can be shown as a inline panel.
void showPanel(QgsPanelWidget *panel)
Emit when you require a panel to be show in the interface.
QString panelTitle()
The title of the panel.
void panelAccepted(QgsPanelWidget *panel)
Emitted when the panel is accepted by the user.
bool autoDelete()
The the auto delete property on the widget.
void setAutoDelete(bool autoDelete)
The the auto delete property on the widget.
void widgetChanged()
Emitted when the widget state changes.
void setPanelTitle(const QString &panelTitle)
Set the title of the panel when shown in the interface.
bool dockMode()
Returns the dock mode state.