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 @@
#include <QCloseEvent> #include <QCloseEvent>
QGCDockWidget::QGCDockWidget(const QString& title, QWidget *parent, Qt::WindowFlags flags) : QGCDockWidget::QGCDockWidget(const QString& title, QAction* action, QWidget *parent, Qt::WindowFlags flags) :
QDockWidget(title, parent, 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 // Instead of destroying the widget just hide it
void QGCDockWidget::closeEvent(QCloseEvent* event) void QGCDockWidget::closeEvent(QCloseEvent* event)
{ {
Q_ASSERT(_action);
event->ignore(); event->ignore();
setVisible(false); _action->trigger();
} }

6
src/QGCDockWidget.h

@ -25,6 +25,7 @@
#define QGCDockWidget_h #define QGCDockWidget_h
#include <QDockWidget> #include <QDockWidget>
#include <QAction>
/// @file /// @file
/// @brief Subclass of QDockWidget so we can intercept the closeEvent. /// @brief Subclass of QDockWidget so we can intercept the closeEvent.
@ -35,9 +36,12 @@ class QGCDockWidget : public QDockWidget {
Q_OBJECT Q_OBJECT
public: 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); void closeEvent(QCloseEvent* event);
private:
QAction* _action;
}; };

Loading…
Cancel
Save