QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
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 "qgis_gui.h"
19
20#include <QKeyEvent>
21#include <QStack>
22#include <QWidget>
23
24class QMenu;
25
30class GUI_EXPORT QgsPanelWidget : public QWidget
31{
32 Q_OBJECT
33 public:
38 QgsPanelWidget( QWidget *parent = nullptr );
39
44 void setPanelTitle( const QString &panelTitle ) { mPanelTitle = panelTitle; }
45
50 QString panelTitle() const { 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() const { return mDockMode; }
94
101 void setAutoDelete( bool autoDelete ) { mAutoDelete = autoDelete; }
102
109 bool autoDelete() const { 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:
190 void keyPressEvent( QKeyEvent *event ) override;
191
192 private:
193 bool mAutoDelete = true;
194 QString mPanelTitle;
195 bool mDockMode = false;
196};
197
198
207class GUI_EXPORT QgsPanelWidgetWrapper : public QgsPanelWidget
208{
209 Q_OBJECT
210 public:
217 QgsPanelWidgetWrapper( QWidget *widget, QWidget *parent = nullptr );
218
223 QWidget *widget() { return mWidget; }
224
225 private:
226 QWidget *mWidget = nullptr;
227};
228
229#endif // QGSPANELWIDGET_H
QWidget * widget()
Returns the internal widget that is wrapped in this panel.
QgsPanelWidgetWrapper(QWidget *widget, QWidget *parent=nullptr)
Wrapper widget for existing widgets which can't have the inheritance tree changed,...
Base class for any widget that can be shown as an inline panel.
bool autoDelete() const
The the auto delete property on the widget.
QString panelTitle() const
The title of the panel.
void showPanel(QgsPanelWidget *panel)
Emit when you require a panel to be show in the interface.
void openPanel(QgsPanelWidget *panel)
Open a panel or dialog depending on dock mode setting If dock mode is true this method will emit the ...
bool dockMode() const
Returns the dock mode state.
void panelAccepted(QgsPanelWidget *panel)
Emitted when the panel is accepted by the user.
QgsPanelWidget(QWidget *parent=nullptr)
Base class for any widget that can be shown as an inline panel.
void setAutoDelete(bool autoDelete)
The the auto delete property on the widget.
void widgetChanged()
Emitted when the widget state changes.
void acceptPanel()
Accept the panel.
void keyPressEvent(QKeyEvent *event) override
Overridden key press event to handle the esc event on the widget.
void setPanelTitle(const QString &panelTitle)
Set the title of the panel when shown in the interface.