[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [krita] libs: Directly connect toolmanager to mainwindow for the tool options widgets
From:       Sven Langkamp <sven.langkamp () gmail ! com>
Date:       2016-06-21 19:18:43
Message-ID: E1bFRC7-0005uu-O5 () code ! kde ! org
[Download RAW message or body]

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/KoCanvasControllerWidget.cpp index 14bc141..b94cd53 100644
--- a/libs/flake/KoCanvasControllerWidget.cpp
+++ b/libs/flake/KoCanvasControllerWidget.cpp
@@ -445,11 +445,6 @@ void KoCanvasControllerWidget::zoomTo(const QRect &viewRect)
     zoomBy(viewRect.center(), scale);
 }
 
-void KoCanvasControllerWidget::setToolOptionWidgets(const QList<QPointer<QWidget> \
                >&widgetMap)
-{
-    emit toolOptionWidgetsChanged(widgetMap);
-}
-
 void KoCanvasControllerWidget::updateDocumentSize(const QSize &sz, bool \
recalculateCenter)  {
     // Don't update if the document-size didn't changed to prevent infinite loops \
                and unneeded updates.
diff --git a/libs/flake/KoCanvasControllerWidget.h \
b/libs/flake/KoCanvasControllerWidget.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<QPointer<QWidget> > &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 temporary)
 
     emit q->changedTool(canvasData->canvas, \
uniqueToolIds.value(canvasData->activeTool));  
-    KoCanvasControllerWidget *canvasControllerWidget = \
                dynamic_cast<KoCanvasControllerWidget*>(canvasData->canvas);
-    if (canvasControllerWidget) {
-        canvasControllerWidget->setToolOptionWidgets(optionWidgetList);
-    }
+    emit q->toolOptionWidgetsChanged(optionWidgetList);
 }
 
 
@@ -821,10 +818,7 @@ void KoToolManager::Private::detachCanvas(KoCanvasController \
*controller)  if (newCanvas) {
             switchCanvasData(canvasses.value(newCanvas).first());
         } else {
-            KoCanvasControllerWidget *canvasControllerWidget = \
                dynamic_cast<KoCanvasControllerWidget*>(canvasData->canvas);
-            if (canvasControllerWidget) {
-                canvasControllerWidget->setToolOptionWidgets(QList<QPointer<QWidget> \
                >());
-            }
+            emit q->toolOptionWidgetsChanged(QList<QPointer<QWidget> >());
             // as a last resort just set a blank one
             canvasData = 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<QPointer<QWidget> > &widgets);
 private:
     KoToolManager(const KoToolManager&);
     KoToolManager operator=(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()] = \
d->toolOptionsDocker->toggleViewAction();  }
+    connect(KoToolManager::instance(), \
SIGNAL(toolOptionWidgetsChanged(QList<QPointer<QWidget> >)), this, \
SLOT(newOptionWidgets(QList<QPointer<QWidget> >)));  
     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, \
                SIGNAL(toggled(bool)), canvasController, \
                SLOT(slotToggleLevelOfDetailMode(bool)));
         d->levelOfDetailAction->setChecked(canvasController->levelOfDetailMode());
 
-        d->viewConnections.addUniqueConnection(d->currentImageView->canvasController(), \
SIGNAL(toolOptionWidgetsChanged(QList<QPointer<QWidget> >)), mainWindow(), \
SLOT(newOptionWidgets(QList<QPointer<QWidget> >)));  \
d->viewConnections.addUniqueConnection(d->currentImageView->image(), \
SIGNAL(sigColorSpaceChanged(const KoColorSpace*)), d->controlFrame.paintopBox(), \
                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(bool)));


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic