QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
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
117 static QgsPanelWidget *findParentPanel( QWidget *widget );
118
126 virtual QString menuButtonTooltip() const;
127
134 virtual QMenu *menuButtonMenu();
135
136 signals:
137
148
155 void showPanel( QgsPanelWidget *panel );
156
164
165 public slots:
166
177 void openPanel( QgsPanelWidget *panel );
178
183 void acceptPanel();
184
185 protected:
186
191 void keyPressEvent( QKeyEvent *event ) override;
192
193 private:
194 bool mAutoDelete = true;
195 QString mPanelTitle;
196 bool mDockMode = false;
197
198};
199
200
209class GUI_EXPORT QgsPanelWidgetWrapper: public QgsPanelWidget
210{
211 Q_OBJECT
212 public:
213
220 QgsPanelWidgetWrapper( QWidget *widget, QWidget *parent = nullptr );
221
226 QWidget *widget() { return mWidget; }
227
228 private:
229 QWidget *mWidget = nullptr;
230
231};
232
233#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.