Browse Source

Dock widget no longer supports floating mode

Action passed in in order to make X in title bar close work
QGC4.4
Don Gagne 10 years ago
parent
commit
62cdaab270
  1. 16
      src/QGCDockWidget.cc
  2. 6
      src/QGCDockWidget.h

16
src/QGCDockWidget.cc

@ -25,15 +25,23 @@ @@ -25,15 +25,23 @@
#include <QCloseEvent>
QGCDockWidget::QGCDockWidget(const QString& title, QWidget *parent, Qt::WindowFlags flags) :
QDockWidget(title, parent, flags)
QGCDockWidget::QGCDockWidget(const QString& title, QAction* action, QWidget *parent, Qt::WindowFlags flags) :
QDockWidget(title, parent, flags),
_action(action)
{
QDockWidget::DockWidgetFeatures features = QDockWidget::DockWidgetMovable;
if (action) {
features |= QDockWidget::DockWidgetClosable;
}
setFeatures(features);
}
// Instead of destroying the widget just hide it
void QGCDockWidget::closeEvent(QCloseEvent* event)
{
Q_ASSERT(_action);
event->ignore();
setVisible(false);
_action->trigger();
}

6
src/QGCDockWidget.h

@ -25,6 +25,7 @@ @@ -25,6 +25,7 @@
#define QGCDockWidget_h
#include <QDockWidget>
#include <QAction>
/// @file
/// @brief Subclass of QDockWidget so we can intercept the closeEvent.
@ -35,9 +36,12 @@ class QGCDockWidget : public QDockWidget { @@ -35,9 +36,12 @@ class QGCDockWidget : public QDockWidget {
Q_OBJECT
public:
QGCDockWidget(const QString& title, QWidget *parent = 0, Qt::WindowFlags flags = 0);
QGCDockWidget(const QString& title, QAction* action, QWidget *parent = 0, Qt::WindowFlags flags = 0);
void closeEvent(QCloseEvent* event);
private:
QAction* _action;
};

Loading…
Cancel
Save