[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