diff --git a/examples/dockwidgets/MyMainWindow.cpp b/examples/dockwidgets/MyMainWindow.cpp index 567a49fb..28449c22 100644 --- a/examples/dockwidgets/MyMainWindow.cpp +++ b/examples/dockwidgets/MyMainWindow.cpp @@ -77,7 +77,7 @@ MyMainWindow::MyMainWindow(const QString &uniqueName, KDDockWidgets::MainWindowO QStringLiteral("new dock %1").arg(count)); dock->setWidget(w); dock->resize(QSize(600, 600)); - dock->show(); + dock->open(); }); auto saveLayoutAction = fileMenu->addAction(QStringLiteral("Save Layout")); diff --git a/examples/dockwidgets/main.cpp b/examples/dockwidgets/main.cpp index 74d77ea0..bc60b4f3 100644 --- a/examples/dockwidgets/main.cpp +++ b/examples/dockwidgets/main.cpp @@ -429,7 +429,7 @@ int main(int argc, char **argv) dockableMainWindow->setWindowTitle("Dockable Main Window"); dockableMainWindow->show(); mainWindowDockWidget->setWidget(dockableMainWindow); - mainWindowDockWidget->show(); + mainWindowDockWidget->open(); mainWindowDockWidget->resize(QSize(800, 800)); } diff --git a/examples/minimal/main.cpp b/examples/minimal/main.cpp index c0f895dd..395fe6df 100644 --- a/examples/minimal/main.cpp +++ b/examples/minimal/main.cpp @@ -81,7 +81,7 @@ int main(int argc, char **argv) // 5. dock5 will be its own top level (floating window) - dock5->show(); + dock5->open(); return app.exec(); } diff --git a/examples/qtquick/customtitlebar/main.cpp b/examples/qtquick/customtitlebar/main.cpp index 4ff7534b..489cd07d 100644 --- a/examples/qtquick/customtitlebar/main.cpp +++ b/examples/qtquick/customtitlebar/main.cpp @@ -57,12 +57,12 @@ int main(int argc, char *argv[]) dw1->setGuestItem(QStringLiteral("qrc:/Guest1.qml")); dw1->resize(QSize(800, 800)); - dw1->show(); + dw1->open(); auto dw2 = new KDDockWidgets::Views::DockWidget_qtquick("Dock #2"); dw2->setGuestItem(QStringLiteral("qrc:/Guest2.qml")); dw2->resize(QSize(800, 800)); - dw2->show(); + dw2->open(); auto dw3 = new KDDockWidgets::Views::DockWidget_qtquick("Dock #3"); dw3->setGuestItem(QStringLiteral("qrc:/Guest3.qml")); diff --git a/examples/qtquick/dockwidgets/main.cpp b/examples/qtquick/dockwidgets/main.cpp index 4e2770bd..a80f5c57 100644 --- a/examples/qtquick/dockwidgets/main.cpp +++ b/examples/qtquick/dockwidgets/main.cpp @@ -125,12 +125,12 @@ int main(int argc, char *argv[]) dw1->setGuestItem(QStringLiteral("qrc:/Guest1.qml")); dw1->resize(QSize(800, 800)); - dw1->show(); + dw1->open(); auto dw2 = new KDDockWidgets::Views::DockWidget_qtquick("Dock #2"); dw2->setGuestItem(QStringLiteral("qrc:/Guest2.qml")); dw2->resize(QSize(800, 800)); - dw2->show(); + dw2->open(); auto dw3 = new KDDockWidgets::Views::DockWidget_qtquick("Dock #3"); dw3->setGuestItem(QStringLiteral("qrc:/Guest3.qml")); diff --git a/src/controllers/DockWidget.cpp b/src/controllers/DockWidget.cpp index cea0e5d6..ef1f7486 100644 --- a/src/controllers/DockWidget.cpp +++ b/src/controllers/DockWidget.cpp @@ -869,14 +869,6 @@ void DockWidget::Private::onParentChanged() Q_EMIT q->actualTitleBarChanged(); } -void DockWidget::onShown() -{ - d->maybeRestoreToPreviousPosition(); - - // Transform into a FloatingWindow if this will be a regular floating dock widget. - QTimer::singleShot(0, d, &DockWidget::Private::maybeMorphIntoFloatingWindow); -} - void DockWidget::onResize(QSize) { if (isOverlayed()) { @@ -1066,6 +1058,13 @@ void DockWidget::Private::setIsOpen(bool is) m_isOpen = is; + if (is) { + maybeRestoreToPreviousPosition(); + + // Transform into a FloatingWindow if this will be a regular floating dock widget. + QTimer::singleShot(0, this, &DockWidget::Private::maybeMorphIntoFloatingWindow); + } + updateToggleAction(); updateFloatAction(); } diff --git a/src/controllers/DockWidget.h b/src/controllers/DockWidget.h index f2d84e19..f220c125 100644 --- a/src/controllers/DockWidget.h +++ b/src/controllers/DockWidget.h @@ -488,9 +488,6 @@ Q_SIGNALS: /// @brief Emitted when this dock widget is about to be deleted void aboutToDelete(KDDockWidgets::Controllers::DockWidget *); -public: // TODOm3 make private - void onShown(); - protected: void setParentView_impl(View *parent) override; diff --git a/src/qtquick/views/DockWidget_qtquick.cpp b/src/qtquick/views/DockWidget_qtquick.cpp index 1e99fc87..bd74ab66 100644 --- a/src/qtquick/views/DockWidget_qtquick.cpp +++ b/src/qtquick/views/DockWidget_qtquick.cpp @@ -131,7 +131,7 @@ bool DockWidget_qtquick::event(QEvent *e) return View_qtquick::event(e); if (e->type() == QEvent::Show) { - dockWidget()->onShown(); + dockWidget()->open(); } return View_qtquick::event(e); diff --git a/src/qtwidgets/views/DockWidget_qtwidgets.cpp b/src/qtwidgets/views/DockWidget_qtwidgets.cpp index f50901c3..76050974 100644 --- a/src/qtwidgets/views/DockWidget_qtwidgets.cpp +++ b/src/qtwidgets/views/DockWidget_qtwidgets.cpp @@ -76,9 +76,8 @@ void DockWidget_qtwidgets::setWidget(QWidget *widget) bool DockWidget_qtwidgets::event(QEvent *e) { - if (e->type() == QEvent::Show) { - m_dockWidget->onShown(); - } + if (e->type() == QEvent::Show) + m_dockWidget->open(); return QWidget::event(e); } diff --git a/src/views/DockWidgetViewInterface.cpp b/src/views/DockWidgetViewInterface.cpp index 5f17c245..5844394f 100644 --- a/src/views/DockWidgetViewInterface.cpp +++ b/src/views/DockWidgetViewInterface.cpp @@ -95,11 +95,16 @@ void DockWidgetViewInterface::forceClose() m_dockWidget->forceClose(); } -void DockWidgetViewInterface::show() +void DockWidgetViewInterface::open() { m_dockWidget->open(); } +void DockWidgetViewInterface::show() +{ + open(); +} + void DockWidgetViewInterface::raise() { m_dockWidget->raise(); diff --git a/src/views/DockWidgetViewInterface.h b/src/views/DockWidgetViewInterface.h index 6cc5dad8..b8620629 100644 --- a/src/views/DockWidgetViewInterface.h +++ b/src/views/DockWidgetViewInterface.h @@ -45,7 +45,7 @@ public: QAction *floatAction() const; bool isOpen() const; void forceClose(); - void show(); + void open(); void raise(); void moveToSideBar(); void setIcon(const QIcon &icon, IconPlaces places = IconPlace::All); @@ -66,6 +66,9 @@ public: DockWidgetOptions options() const; void setOptions(DockWidgetOptions); + /// @deprecated. Use open() instead. + void show(); + protected: Controllers::DockWidget *const m_dockWidget; }; diff --git a/tests/qtwidgets/tst_qtwidgets.cpp b/tests/qtwidgets/tst_qtwidgets.cpp index a6a13c71..3c376eff 100644 --- a/tests/qtwidgets/tst_qtwidgets.cpp +++ b/tests/qtwidgets/tst_qtwidgets.cpp @@ -1551,7 +1551,7 @@ void TestQtWidgets::tstCloseNestedMDIPropagates() auto dock2 = new KDDockWidgets::Views::DockWidget_qtwidgets(QStringLiteral("MyDock2")); auto nonClosableWidget2 = Platform::instance()->tests_createNonClosableView(); dock2->dockWidget()->setGuestView(nonClosableWidget2->asWrapper()); - dock2->show(); + dock2->open(); Platform::instance()->tests_waitForEvent(dock1->controller(), QEvent::Show); QVERIFY(dock1->isVisible());