From 61cb38fcb9c3d4556d2c8a1820c7f9156f03512d Mon Sep 17 00:00:00 2001 From: Mathieu Pellerin Date: Sun, 2 Feb 2025 14:26:35 +0700 Subject: [PATCH] [georeferencer] Fix the layer -> georeferencer menu action when in dock panel mode --- src/app/georeferencer/qgsgeorefmainwindow.cpp | 13 +++++++++++++ src/app/georeferencer/qgsgeorefmainwindow.h | 2 ++ src/app/qgisapp.cpp | 5 +++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/app/georeferencer/qgsgeorefmainwindow.cpp b/src/app/georeferencer/qgsgeorefmainwindow.cpp index 726d6d62df87..a9fb53cc7874 100644 --- a/src/app/georeferencer/qgsgeorefmainwindow.cpp +++ b/src/app/georeferencer/qgsgeorefmainwindow.cpp @@ -148,6 +148,19 @@ QgsGeoreferencerMainWindow::QgsGeoreferencerMainWindow( QWidget *parent, Qt::Win } } +void QgsGeoreferencerMainWindow::showGeoreferencer() +{ + if ( mDock ) + { + mDock->setUserVisible( true ); + } + else + { + show(); + setFocus(); + } +} + void QgsGeoreferencerMainWindow::dockThisWindow( bool dock ) { if ( mDock ) diff --git a/src/app/georeferencer/qgsgeorefmainwindow.h b/src/app/georeferencer/qgsgeorefmainwindow.h index 0998f2b5b589..4d0dc9b8a4dd 100644 --- a/src/app/georeferencer/qgsgeorefmainwindow.h +++ b/src/app/georeferencer/qgsgeorefmainwindow.h @@ -85,6 +85,8 @@ class APP_EXPORT QgsGeoreferencerMainWindow : public QMainWindow, private Ui::Qg QgsGeoreferencerMainWindow( QWidget *parent = nullptr, Qt::WindowFlags fl = Qt::WindowFlags() ); ~QgsGeoreferencerMainWindow() override; + void showGeoreferencer(); + protected: void closeEvent( QCloseEvent * ) override; void dropEvent( QDropEvent *event ) override; diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index 942dd528a8b5..00a8f19ce5f8 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -781,9 +781,10 @@ void QgisApp::toggleEventTracing() void QgisApp::showGeoreferencer() { if ( !mGeoreferencer ) + { mGeoreferencer = new QgsGeoreferencerMainWindow( this ); - mGeoreferencer->show(); - mGeoreferencer->setFocus(); + } + mGeoreferencer->showGeoreferencer(); } #endif