examples: Show how to hide dock indicators when ctrl is pressed
Fixes issue #334 and issue #337. Won't add this directly into the library, as each project has different requirements regarding this. It's easy to do in application code though.
This commit is contained in:
@@ -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<QKeyEvent *>(ev);
|
||||
if (kev->key() == Qt::Key_Control && qobject_cast<QWindow *>(obj)) {
|
||||
const bool hideIndicators = ev->type() == QEvent::KeyPress;
|
||||
KDDockWidgets::Config::self().setDropIndicatorsInhibited(hideIndicators);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user