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

List:       kde-commits
Subject:    [calligra/calligra-mvc-rempt] krita: add mainwindow observer and port pattern and palette docker
From:       Sven Langkamp <sven.langkamp () gmail ! com>
Date:       2014-03-29 1:29:00
Message-ID: E1WTi4y-0008EK-Jd () scm ! kde ! org
[Download RAW message or body]

Git commit 494765713a0ae7657750abf18283b258b7784f4a by Sven Langkamp.
Committed on 29/03/2014 at 01:28.
Pushed by langkamp into branch 'calligra-mvc-rempt'.

add mainwindow observer and port pattern and palette docker

M  +16   -24   krita/plugins/extensions/dockers/palettedocker/palettedocker_dock.cpp
M  +5    -5    krita/plugins/extensions/dockers/palettedocker/palettedocker_dock.h
M  +3    -22   krita/plugins/extensions/dockers/patterndocker/patterndocker_dock.cpp
M  +5    -6    krita/plugins/extensions/dockers/patterndocker/patterndocker_dock.h
M  +1    -0    krita/ui/CMakeLists.txt
A  +20   -0    krita/ui/kis_mainwindow_observer.cpp     [License: UNKNOWN]  *
A  +20   -0    krita/ui/kis_mainwindow_observer.h     [License: UNKNOWN]  *
M  +7    -0    krita/ui/kis_view2.cpp

The files marked with a * at the end have a non valid license. Please read: \
http://techbase.kde.org/Policies/Licensing_Policy and use the headers which are \
listed at that page.


http://commits.kde.org/calligra/494765713a0ae7657750abf18283b258b7784f4a

diff --git a/krita/plugins/extensions/dockers/palettedocker/palettedocker_dock.cpp \
b/krita/plugins/extensions/dockers/palettedocker/palettedocker_dock.cpp index \
                10b6b21..5c3e428 100644
--- a/krita/plugins/extensions/dockers/palettedocker/palettedocker_dock.cpp
+++ b/krita/plugins/extensions/dockers/palettedocker/palettedocker_dock.cpp
@@ -27,13 +27,9 @@
 #include <kcolordialog.h>
 
 #include <KoIcon.h>
-#include <KoCanvasBase.h>
 #include <KoResourceServerProvider.h>
 #include <KoColorSpaceRegistry.h>
-#include <KoCanvasResourceManager.h>
 
-#include <kis_view2.h>
-#include <kis_canvas2.h>
 #include <kis_layer.h>
 #include <kis_node_manager.h>
 #include <kis_config.h>
@@ -87,9 +83,9 @@ void PaletteDelegate::paint(QPainter * painter, const \
QStyleOptionViewItem & opt  
 
 PaletteDockerDock::PaletteDockerDock( ) : QDockWidget(i18n("Palette"))
-    , m_canvas(0)
     , m_wdgPaletteDock(new Ui_WdgPaletteDock())
     , m_currentColorSet(0)
+    , m_resourceProvider(0)
 {
     QWidget* mainWidget = new QWidget(this);
     setWidget(mainWidget);
@@ -150,17 +146,11 @@ PaletteDockerDock::~PaletteDockerDock()
     }
 }
 
-void PaletteDockerDock::setCanvas(KoCanvasBase * canvas)
+void PaletteDockerDock::setCanvasResourceProvider(KisCanvasResourceProvider* \
canvasResourceProvider)  {
-    if (m_canvas && m_canvas->view()) {
-        m_canvas->view()->nodeManager()->disconnect(m_model);
-    }
-    m_canvas = dynamic_cast<KisCanvas2*>(canvas);
-    if (m_canvas && m_canvas->view()) {
-        KisView2* view = m_canvas->view();
-        connect(view->resourceProvider(), \
SIGNAL(sigSavingWorkspace(KisWorkspaceResource*)), \
                SLOT(saveToWorkspace(KisWorkspaceResource*)));
-        connect(view->resourceProvider(), \
SIGNAL(sigLoadingWorkspace(KisWorkspaceResource*)), \
                SLOT(loadFromWorkspace(KisWorkspaceResource*)));
-    }
+    m_resourceProvider = canvasResourceProvider;
+    connect(canvasResourceProvider, \
SIGNAL(sigSavingWorkspace(KisWorkspaceResource*)), \
SLOT(saveToWorkspace(KisWorkspaceResource*))); +    connect(canvasResourceProvider, \
SIGNAL(sigLoadingWorkspace(KisWorkspaceResource*)), \
SLOT(loadFromWorkspace(KisWorkspaceResource*)));  }
 
 void PaletteDockerDock::setColorSet(KoColorSet* colorSet)
@@ -178,18 +168,20 @@ void PaletteDockerDock::setColorSet(KoColorSet* colorSet)
 
 void PaletteDockerDock::addColorForeground()
 {
-    KoColorSetEntry newEntry;
-    newEntry.color = m_canvas->resourceManager()->foregroundColor();
-    m_currentColorSet->add(newEntry);
-    m_currentColorSet->save();
-    setColorSet(m_currentColorSet); // update model
+    if (m_resourceProvider) {
+        KoColorSetEntry newEntry;
+        newEntry.color = m_resourceProvider->fgColor();
+        m_currentColorSet->add(newEntry);
+        m_currentColorSet->save();
+        setColorSet(m_currentColorSet); // update model
+    }
 }
 
 void PaletteDockerDock::addColor()
 {
-    if (m_currentColorSet) {
+    if (m_currentColorSet && m_resourceProvider) {
         QColor color;
-        int result = KColorDialog::getColor(color, \
m_canvas->resourceManager()->foregroundColor().toQColor()); +        int result = \
KColorDialog::getColor(color, m_resourceProvider->fgColor().toQColor());  if (result \
== KColorDialog::Accepted) {  KoColorSetEntry newEntry;
             newEntry.color = KoColor(color, \
KoColorSpaceRegistry::instance()->rgb8()); @@ -222,8 +214,8 @@ void \
PaletteDockerDock::entrySelected(QModelIndex index)  int i = \
index.row()*m_model->columnCount()+index.column();  if (i < \
m_currentColorSet->nColors()) {  KoColorSetEntry entry = \
                m_currentColorSet->getColor(i);
-        if (m_canvas) {
-            m_canvas->resourceManager()->setForegroundColor(entry.color);
+        if (m_resourceProvider) {
+            m_resourceProvider->setFGColor(entry.color);
         }
         if (m_currentColorSet->removable()) {
             m_wdgPaletteDock->bnRemove->setEnabled(true);
diff --git a/krita/plugins/extensions/dockers/palettedocker/palettedocker_dock.h \
b/krita/plugins/extensions/dockers/palettedocker/palettedocker_dock.h index \
                4f11f8f..b231339 100644
--- a/krita/plugins/extensions/dockers/palettedocker/palettedocker_dock.h
+++ b/krita/plugins/extensions/dockers/palettedocker/palettedocker_dock.h
@@ -22,9 +22,9 @@
 
 #include <QDockWidget>
 #include <QModelIndex>
-#include <KoCanvasObserverBase.h>
 #include <KoResourceServerAdapter.h>
 #include <KoColorSet.h>
+#include <kis_mainwindow_observer.h>
 
 class KisWorkspaceResource;
 class ColorSetChooser;
@@ -32,13 +32,13 @@ class PaletteModel;
 class KisCanvas2;
 class Ui_WdgPaletteDock;
 
-class PaletteDockerDock : public QDockWidget, public KoCanvasObserverBase {
+class PaletteDockerDock : public QDockWidget, public KisMainwindowObserver {
     Q_OBJECT
 public:
     PaletteDockerDock();
     virtual ~PaletteDockerDock();
-    virtual void setCanvas(KoCanvasBase *canvas);
-    virtual void unsetCanvas() { m_canvas = 0; }
+
+    virtual void setCanvasResourceProvider(KisCanvasResourceProvider* \
canvasResourceProvider);  
 private slots:
     void addColorForeground();
@@ -50,12 +50,12 @@ private slots:
     void saveToWorkspace(KisWorkspaceResource* workspace);
     void loadFromWorkspace(KisWorkspaceResource* workspace);
 private:    
-    KisCanvas2 *m_canvas;
     Ui_WdgPaletteDock* m_wdgPaletteDock;
     PaletteModel *m_model;
     KoResourceServerAdapter<KoColorSet>* m_serverAdapter;
     KoColorSet* m_currentColorSet;
     ColorSetChooser* m_colorSetChooser;
+    KisCanvasResourceProvider* m_resourceProvider;
 };
 
 
diff --git a/krita/plugins/extensions/dockers/patterndocker/patterndocker_dock.cpp \
b/krita/plugins/extensions/dockers/patterndocker/patterndocker_dock.cpp index \
                61d65cc..75fdb3a 100644
--- a/krita/plugins/extensions/dockers/patterndocker/patterndocker_dock.cpp
+++ b/krita/plugins/extensions/dockers/patterndocker/patterndocker_dock.cpp
@@ -22,20 +22,12 @@
 
 #include <klocale.h>
 
-#include <KoCanvasResourceManager.h>
-#include <KoCanvasBase.h>
-
-#include <kis_canvas2.h>
-#include <kis_view2.h>
-#include <kis_paintop_box.h>
 #include <kis_canvas_resource_provider.h>
 #include <kis_pattern_chooser.h>
 #include <KoPattern.h>
-#include <kis_image_view.h>
 
 PatternDockerDock::PatternDockerDock( )
     : QDockWidget(i18n("Patterns"))
-    , m_canvas(0)
 {
     m_patternChooser = new KoPatternChooser(this);
     m_patternChooser->setPreviewOrientation(Qt::Vertical);
@@ -44,24 +36,13 @@ PatternDockerDock::PatternDockerDock( )
     setWidget(m_patternChooser);
 }
 
-void PatternDockerDock::setCanvas(KoCanvasBase * canvas)
+void PatternDockerDock::setCanvasResourceProvider(KisCanvasResourceProvider* \
canvasResourceProvider)  {
-    if (m_canvas) {
-        m_canvas->disconnectCanvasObserver(this);
-        m_patternChooser->disconnect(m_canvas->view()->resourceProvider());
-        m_canvas->view()->resourceProvider()->disconnect(this);
-    }
-
-    m_canvas = dynamic_cast<KisCanvas2*>(canvas);
-    Q_ASSERT(m_canvas);
-    if (!m_canvas) return;
-
-    connect(m_canvas->imageView()->resourceProvider(), \
SIGNAL(sigPatternChanged(KoPattern*)), +    connect(canvasResourceProvider, \
SIGNAL(sigPatternChanged(KoPattern*)),  this, SLOT(patternChanged(KoPattern*)));
 
     connect(m_patternChooser, SIGNAL(resourceSelected(KoResource*)),
-            m_canvas->imageView()->resourceProvider(), \
                SLOT(slotPatternActivated(KoResource*)));
-
+            canvasResourceProvider, SLOT(slotPatternActivated(KoResource*)));
 }
 
 void PatternDockerDock::patternChanged(KoPattern *pattern)
diff --git a/krita/plugins/extensions/dockers/patterndocker/patterndocker_dock.h \
b/krita/plugins/extensions/dockers/patterndocker/patterndocker_dock.h index \
                82a8a36..706f09e 100644
--- a/krita/plugins/extensions/dockers/patterndocker/patterndocker_dock.h
+++ b/krita/plugins/extensions/dockers/patterndocker/patterndocker_dock.h
@@ -19,24 +19,23 @@
 #define _PATTERN_DOCK_H_
 
 #include <QDockWidget>
-#include <KoCanvasObserverBase.h>
+#include <kis_mainwindow_observer.h>
 
 class KoPattern;
 class KoPatternChooser;
-class KisCanvas2;
 
-class PatternDockerDock : public QDockWidget, public KoCanvasObserverBase {
+class PatternDockerDock : public QDockWidget, public KisMainwindowObserver {
     Q_OBJECT
 public:
     PatternDockerDock( );
-    virtual void setCanvas(KoCanvasBase *canvas);
-    virtual void unsetCanvas() { m_canvas = 0; }
+
+    virtual void setCanvasResourceProvider(KisCanvasResourceProvider* \
canvasResourceProvider); +
 public slots:
     void patternChanged(KoPattern *pattern);
 private slots:
 
 private:
-    KisCanvas2* m_canvas;
     KoPatternChooser* m_patternChooser;
 };
 
diff --git a/krita/ui/CMakeLists.txt b/krita/ui/CMakeLists.txt
index e9e47c3..85232b0 100644
--- a/krita/ui/CMakeLists.txt
+++ b/krita/ui/CMakeLists.txt
@@ -131,6 +131,7 @@ set(kritaui_LIB_SRCS
     kis_action_manager.cpp
     kis_view_plugin.cpp
     kis_canvas_controls_manager.cpp
+    kis_mainwindow_observer.cpp
     kisexiv2/kis_exif_io.cpp
     kisexiv2/kis_exiv2.cpp
     kisexiv2/kis_iptc_io.cpp
diff --git a/krita/ui/kis_mainwindow_observer.cpp \
b/krita/ui/kis_mainwindow_observer.cpp new file mode 100644
index 0000000..6c1188e
--- /dev/null
+++ b/krita/ui/kis_mainwindow_observer.cpp
@@ -0,0 +1,20 @@
+#include "kis_mainwindow_observer.h"
+
+KisMainwindowObserver::KisMainwindowObserver()
+{
+
+}
+
+KisMainwindowObserver::~KisMainwindowObserver()
+{
+
+}
+
+void KisMainwindowObserver::setCanvas(KoCanvasBase* canvas)
+{
+}
+
+void KisMainwindowObserver::unsetCanvas()
+{
+
+}
diff --git a/krita/ui/kis_mainwindow_observer.h b/krita/ui/kis_mainwindow_observer.h
new file mode 100644
index 0000000..8f192f5
--- /dev/null
+++ b/krita/ui/kis_mainwindow_observer.h
@@ -0,0 +1,20 @@
+#ifndef KIS_MAINWINDOW_OBSERVER_H
+#define KIS_MAINWINDOW_OBSERVER_H
+
+#include <KoCanvasObserverBase.h>
+#include <krita_export.h>
+
+class KisCanvasResourceProvider;
+
+class KRITAUI_EXPORT KisMainwindowObserver : public KoCanvasObserverBase
+{   
+public:
+    KisMainwindowObserver();
+    virtual ~KisMainwindowObserver();
+
+    virtual void setCanvasResourceProvider(KisCanvasResourceProvider* \
canvasResourceProvider) = 0; +    virtual void setCanvas(KoCanvasBase* canvas);
+    virtual void unsetCanvas();
+};
+
+#endif // KIS_MAINWINDOW_OBSERVER_H
diff --git a/krita/ui/kis_view2.cpp b/krita/ui/kis_view2.cpp
index a11285d..69188d7 100644
--- a/krita/ui/kis_view2.cpp
+++ b/krita/ui/kis_view2.cpp
@@ -127,6 +127,7 @@
 #include "kis_action_manager.h"
 #include "input/kis_input_profile_manager.h"
 #include "kis_canvas_controls_manager.h"
+#include "kis_mainwindow_observer.h"
 
 
 
@@ -306,6 +307,12 @@ KisView2::KisView2(QWidget *parent)
         if (mainWindow())
             mainWindow()->createDockWidget(factory);
     }
+    foreach(KoCanvasObserverBase* observer, mainWindow()->canvasObservers()) {
+        KisMainwindowObserver* mainwindowObserver = \
dynamic_cast<KisMainwindowObserver*>(observer); +        if (mainwindowObserver) {
+            mainwindowObserver->setCanvasResourceProvider(d->canvasResourceProvider);
 +        }
+    }
 
     d->actionManager->updateGUI();
 }


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

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