QGIS API Documentation  3.23.0-Master (eb871beae0)
qgsdockwidget.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsdockwidget.h
3  ---------------
4  begin : June 2016
5  copyright : (C) 2016 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 #ifndef QGSDOCKWIDGET_H
18 #define QGSDOCKWIDGET_H
19 
20 #include <QDockWidget>
21 #include "qgis_gui.h"
22 #include "qgis_sip.h"
23 
31 class GUI_EXPORT QgsDockWidget : public QDockWidget
32 {
33  Q_OBJECT
34 
35  public:
36 
42  explicit QgsDockWidget( QWidget *parent SIP_TRANSFERTHIS = nullptr, Qt::WindowFlags flags = Qt::WindowFlags() );
43 
50  explicit QgsDockWidget( const QString &title, QWidget *parent SIP_TRANSFERTHIS = nullptr, Qt::WindowFlags flags = Qt::WindowFlags() );
51 
58  bool isUserVisible() const;
59 
67  void setToggleVisibilityAction( QAction *action );
68 
75  QAction *toggleVisibilityAction();
76 
77  public slots:
78 
95  void setUserVisible( bool visible );
96 
106  void toggleUserVisible();
107 
108  protected:
109 
110  void closeEvent( QCloseEvent * ) override;
111  void showEvent( QShowEvent *event ) override;
112 
113  signals:
114 
120  void closed();
121 
128  void closedStateChanged( bool wasClosed );
129 
135  void opened();
136 
143  void openedStateChanged( bool wasOpened );
144 
145  private slots:
146 
147  void handleVisibilityChanged( bool visible );
148 
149  private:
150 
151  bool mVisibleAndActive = false;
152 
153  QAction *mAction = nullptr;
154 
155 };
156 #endif //QGSDOCKWIDGET_H
QgsDockWidget subclass with more fine-grained control over how the widget is closed or opened.
Definition: qgsdockwidget.h:32
void closed()
Emitted when dock widget is closed.
void closedStateChanged(bool wasClosed)
Emitted when dock widget is closed (or opened).
void opened()
Emitted when dock widget is opened.
void openedStateChanged(bool wasOpened)
Emitted when dock widget is opened (or closed).
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53