diff --git a/examples/dockwidgets/MyMainWindow.cpp b/examples/dockwidgets/MyMainWindow.cpp index 84b7952e..d50a0323 100644 --- a/examples/dockwidgets/MyMainWindow.cpp +++ b/examples/dockwidgets/MyMainWindow.cpp @@ -121,6 +121,9 @@ MyMainWindow::MyMainWindow(const QString &uniqueName, KDDockWidgets::MainWindowO if (options & KDDockWidgets::MainWindowOption_HasCentralWidget) { setPersistentCentralWidget(new MyWidget1()); } + + // optional, just for demo purposes regarding pressing Ctrl key to hide drop indicators + qApp->installEventFilter(this); } MyMainWindow::~MyMainWindow() @@ -210,3 +213,26 @@ KDDockWidgets::DockWidgetBase *MyMainWindow::newDockWidget() count++; return dock; } + +bool MyMainWindow::eventFilter(QObject *obj, QEvent *ev) +{ + // This event filter is just for examplify how to use the KDDW API to hide + // the drag indicators when ctrl is pressed + + switch (ev->type()) { + case QEvent::KeyPress: + case QEvent::KeyRelease: { + auto kev = static_cast(ev); + if (kev->key() == Qt::Key_Control && qobject_cast(obj)) { + const bool hideIndicators = ev->type() == QEvent::KeyPress; + KDDockWidgets::Config::self().setDropIndicatorsInhibited(hideIndicators); + } + } + + break; + default: + break; + } + + return false; +} diff --git a/examples/dockwidgets/MyMainWindow.h b/examples/dockwidgets/MyMainWindow.h index 8b0f2aa0..13d70aec 100644 --- a/examples/dockwidgets/MyMainWindow.h +++ b/examples/dockwidgets/MyMainWindow.h @@ -27,6 +27,7 @@ public: private: void createDockWidgets(); + bool eventFilter(QObject *obj, QEvent *ev) override; KDDockWidgets::DockWidgetBase *newDockWidget(); QMenu *m_toggleMenu = nullptr; const bool m_dockWidget0IsNonClosable;