From kde-commits Tue Jun 21 19:18:43 2016 From: Sven Langkamp Date: Tue, 21 Jun 2016 19:18:43 +0000 To: kde-commits Subject: [krita] libs: Directly connect toolmanager to mainwindow for the tool options widgets Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=146653673628518 Git commit 9318485a49543d06835d914b244e8a6983d52052 by Sven Langkamp. Committed on 21/06/2016 at 19:18. Pushed by langkamp into branch 'master'. Directly connect toolmanager to mainwindow for the tool options widgets Fixes the initialisation of the option widget docker/popup BUG:364022 M +0 -5 libs/flake/KoCanvasControllerWidget.cpp M +0 -7 libs/flake/KoCanvasControllerWidget.h M +2 -8 libs/flake/KoToolManager.cpp M +4 -0 libs/flake/KoToolManager.h M +1 -0 libs/ui/KisMainWindow.cpp M +0 -1 libs/ui/KisViewManager.cpp http://commits.kde.org/krita/9318485a49543d06835d914b244e8a6983d52052 diff --git a/libs/flake/KoCanvasControllerWidget.cpp b/libs/flake/KoCanvasC= ontrollerWidget.cpp index 14bc141..b94cd53 100644 --- a/libs/flake/KoCanvasControllerWidget.cpp +++ b/libs/flake/KoCanvasControllerWidget.cpp @@ -445,11 +445,6 @@ void KoCanvasControllerWidget::zoomTo(const QRect &vie= wRect) zoomBy(viewRect.center(), scale); } = -void KoCanvasControllerWidget::setToolOptionWidgets(const QList >&widgetMap) -{ - emit toolOptionWidgetsChanged(widgetMap); -} - void KoCanvasControllerWidget::updateDocumentSize(const QSize &sz, bool re= calculateCenter) { // Don't update if the document-size didn't changed to prevent infinit= e loops and unneeded updates. diff --git a/libs/flake/KoCanvasControllerWidget.h b/libs/flake/KoCanvasCon= trollerWidget.h index b503421..ac716a3 100644 --- a/libs/flake/KoCanvasControllerWidget.h +++ b/libs/flake/KoCanvasControllerWidget.h @@ -145,13 +145,6 @@ public: class Private; KoCanvasControllerWidget::Private *priv(); = -Q_SIGNALS: - - /** - * Emit the new tool option widgets to be used with this canvas. - */ - void toolOptionWidgetsChanged(const QList > &widgets= ); - private Q_SLOTS: = /// Called by the horizontal scrollbar when its value changes diff --git a/libs/flake/KoToolManager.cpp b/libs/flake/KoToolManager.cpp index c52d84a..4094941 100644 --- a/libs/flake/KoToolManager.cpp +++ b/libs/flake/KoToolManager.cpp @@ -744,10 +744,7 @@ void KoToolManager::Private::postSwitchTool(bool tempo= rary) = emit q->changedTool(canvasData->canvas, uniqueToolIds.value(canvasData= ->activeTool)); = - KoCanvasControllerWidget *canvasControllerWidget =3D dynamic_cast(canvasData->canvas); - if (canvasControllerWidget) { - canvasControllerWidget->setToolOptionWidgets(optionWidgetList); - } + emit q->toolOptionWidgetsChanged(optionWidgetList); } = = @@ -821,10 +818,7 @@ void KoToolManager::Private::detachCanvas(KoCanvasCont= roller *controller) if (newCanvas) { switchCanvasData(canvasses.value(newCanvas).first()); } else { - KoCanvasControllerWidget *canvasControllerWidget =3D dynamic_c= ast(canvasData->canvas); - if (canvasControllerWidget) { - canvasControllerWidget->setToolOptionWidgets(QList >()); - } + emit q->toolOptionWidgetsChanged(QList >()); // as a last resort just set a blank one canvasData =3D 0; } diff --git a/libs/flake/KoToolManager.h b/libs/flake/KoToolManager.h index d1fe74d..24b8e0c 100644 --- a/libs/flake/KoToolManager.h +++ b/libs/flake/KoToolManager.h @@ -324,6 +324,10 @@ Q_SIGNALS: */ void addedTool(KoToolAction *toolAction, KoCanvasController *canvas); = + /** + * Emit the new tool option widgets to be used with this canvas. + */ + void toolOptionWidgetsChanged(const QList > &widgets= ); private: KoToolManager(const KoToolManager&); KoToolManager operator=3D(const KoToolManager&); diff --git a/libs/ui/KisMainWindow.cpp b/libs/ui/KisMainWindow.cpp index 6281c17..f196cbb 100644 --- a/libs/ui/KisMainWindow.cpp +++ b/libs/ui/KisMainWindow.cpp @@ -351,6 +351,7 @@ KisMainWindow::KisMainWindow() if (d->toolOptionsDocker) { dockwidgetActions[d->toolOptionsDocker->toggleViewAction()->text()= ] =3D d->toolOptionsDocker->toggleViewAction(); } + connect(KoToolManager::instance(), SIGNAL(toolOptionWidgetsChanged(QLi= st >)), this, SLOT(newOptionWidgets(QList >))); = Q_FOREACH (QString title, dockwidgetActions.keys()) { d->dockWidgetMenu->addAction(dockwidgetActions[title]); diff --git a/libs/ui/KisViewManager.cpp b/libs/ui/KisViewManager.cpp index 6a96841..991ba24 100644 --- a/libs/ui/KisViewManager.cpp +++ b/libs/ui/KisViewManager.cpp @@ -377,7 +377,6 @@ void KisViewManager::setCurrentView(KisView *view) d->viewConnections.addUniqueConnection(d->levelOfDetailAction, SIG= NAL(toggled(bool)), canvasController, SLOT(slotToggleLevelOfDetailMode(bool= ))); d->levelOfDetailAction->setChecked(canvasController->levelOfDetail= Mode()); = - d->viewConnections.addUniqueConnection(d->currentImageView->canvas= Controller(), SIGNAL(toolOptionWidgetsChanged(QList >)), = mainWindow(), SLOT(newOptionWidgets(QList >))); d->viewConnections.addUniqueConnection(d->currentImageView->image(= ), SIGNAL(sigColorSpaceChanged(const KoColorSpace*)), d->controlFrame.paint= opBox(), SLOT(slotColorSpaceChanged(const KoColorSpace*))); d->viewConnections.addUniqueConnection(d->showRulersAction, SIGNAL= (toggled(bool)), imageView->zoomManager(), SLOT(setShowRulers(bool))); d->viewConnections.addUniqueConnection(d->rulersTrackMouseAction, = SIGNAL(toggled(bool)), imageView->zoomManager(), SLOT(setRulersTrackMouse(b= ool)));