QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
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 
23 class QMenu;
24 
29 class 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 
148  void panelAccepted( QgsPanelWidget *panel );
149 
156  void showPanel( QgsPanelWidget *panel );
157 
164  void widgetChanged();
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 
210 class 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
QgsPanelWidget::autoDelete
bool autoDelete()
The the auto delete property on the widget.
Definition: qgspanelwidget.h:109
QgsPanelWidget::dockMode
bool dockMode()
Returns the dock mode state.
Definition: qgspanelwidget.h:93
QgsPanelWidget
Base class for any widget that can be shown as a inline panel.
Definition: qgspanelwidget.h:29
QgsPanelWidgetWrapper::widget
QWidget * widget()
Returns the internal widget that is wrapped in this panel.
Definition: qgspanelwidget.h:227
QgsPanelWidget::setAutoDelete
void setAutoDelete(bool autoDelete)
The the auto delete property on the widget.
Definition: qgspanelwidget.h:101
QgsPanelWidget::panelTitle
QString panelTitle()
The title of the panel.
Definition: qgspanelwidget.h:50
QgsPanelWidget::setPanelTitle
void setPanelTitle(const QString &panelTitle)
Set the title of the panel when shown in the interface.
Definition: qgspanelwidget.h:44
QgsPanelWidgetWrapper
Wrapper widget for existing widgets which can't have the inheritance tree changed,...
Definition: qgspanelwidget.h:210