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

List:       kde-commits
Subject:    [Calligra] 45cf86d: KisRulerAssistantTool: track perspective grids in
From:       Geoffry Song <goffrie () gmail ! com>
Date:       2010-12-31 23:27:35
Message-ID: 20101231232735.17FE9A60B4 () git ! kde ! org
[Download RAW message or body]

commit 45cf86d07f90f2901315355d5ec678db395c000f
branch master
Author: Geoffry Song <goffrie@gmail.com>
Date:   Fri Dec 31 12:23:02 2010 -0500

    KisRulerAssistantTool: track perspective grids in KisCanvasResourceProvider

diff --git a/krita/plugins/assistants/RulerAssistant/kis_ruler_assistant_tool.cc \
b/krita/plugins/assistants/RulerAssistant/kis_ruler_assistant_tool.cc index \
                23b15a9..fb48961 100644
--- a/krita/plugins/assistants/RulerAssistant/kis_ruler_assistant_tool.cc
+++ b/krita/plugins/assistants/RulerAssistant/kis_ruler_assistant_tool.cc
@@ -33,10 +33,12 @@
 #include <KoPointerEvent.h>
 
 #include <canvas/kis_canvas2.h>
+#include <kis_canvas_resource_provider.h>
 #include <kis_cursor.h>
 #include <kis_image.h>
 #include <kis_view2.h>
 
+#include <kis_abstract_perspective_grid.h>
 #include <kis_painting_assistants_manager.h>
 
 KisRulerAssistantTool::KisRulerAssistantTool(KoCanvasBase * canvas)
@@ -89,9 +91,7 @@ void KisRulerAssistantTool::mousePressEvent(KoPointerEvent *event)
         if (m_newAssistant) {
             *m_newAssistant->handles().back() = event->point;
             if (m_newAssistant->handles().size() == m_newAssistant->numHandles()) {
-                m_canvas->view()->paintingAssistantManager()->addAssistant(m_newAssistant);
                
-                m_handles = m_canvas->view()->paintingAssistantManager()->handles();
-                m_newAssistant = 0;
+                addAssistant();
             } else {
                 m_newAssistant->addHandle(new \
KisPaintingAssistantHandle(event->point));  }
@@ -131,8 +131,7 @@ void KisRulerAssistantTool::mousePressEvent(KoPointerEvent \
*event)  return;
             }
             if (deleteRect.contains(mousePos)) {
-                m_canvas->view()->paintingAssistantManager()->removeAssistant(assistant);
                
-                m_handles = m_canvas->view()->paintingAssistantManager()->handles();
+                removeAssistant(assistant);
                 m_canvas->updateCanvas();
                 return;
             }
@@ -145,8 +144,7 @@ void KisRulerAssistantTool::mousePressEvent(KoPointerEvent \
                *event)
         m_newAssistant = \
KisPaintingAssistantFactoryRegistry::instance()->get(key)->paintingAssistant(imageArea);
                
         m_newAssistant->addHandle(new KisPaintingAssistantHandle(event->point));
         if (m_newAssistant->numHandles() <= 1) {
-            m_canvas->view()->paintingAssistantManager()->addAssistant(m_newAssistant);
                
-            m_handles = m_canvas->view()->paintingAssistantManager()->handles();
+            addAssistant();
         } else {
             m_newAssistant->addHandle(new KisPaintingAssistantHandle(event->point));
         }
@@ -157,6 +155,29 @@ void KisRulerAssistantTool::mousePressEvent(KoPointerEvent \
*event)  }
 
 
+void KisRulerAssistantTool::addAssistant()
+{
+    m_canvas->view()->paintingAssistantManager()->addAssistant(m_newAssistant);
+    m_handles = m_canvas->view()->paintingAssistantManager()->handles();
+    KisAbstractPerspectiveGrid* grid = \
dynamic_cast<KisAbstractPerspectiveGrid*>(m_newAssistant); +    if (grid) {
+        m_canvas->view()->resourceProvider()->addPerspectiveGrid(grid);
+    }
+    m_newAssistant = 0;
+}
+
+
+void KisRulerAssistantTool::removeAssistant(KisPaintingAssistant* assistant)
+{
+    KisAbstractPerspectiveGrid* grid = \
dynamic_cast<KisAbstractPerspectiveGrid*>(assistant); +    if (grid) {
+        m_canvas->view()->resourceProvider()->removePerspectiveGrid(grid);
+    }
+    m_canvas->view()->paintingAssistantManager()->removeAssistant(assistant);
+    m_handles = m_canvas->view()->paintingAssistantManager()->handles();
+}
+
+
 void KisRulerAssistantTool::mouseMoveEvent(KoPointerEvent *event)
 {
     if (m_newAssistant) {
diff --git a/krita/plugins/assistants/RulerAssistant/kis_ruler_assistant_tool.h \
b/krita/plugins/assistants/RulerAssistant/kis_ruler_assistant_tool.h index \
                84e5cca..12f0335 100644
--- a/krita/plugins/assistants/RulerAssistant/kis_ruler_assistant_tool.h
+++ b/krita/plugins/assistants/RulerAssistant/kis_ruler_assistant_tool.h
@@ -43,6 +43,9 @@ public:
     virtual void mouseReleaseEvent(KoPointerEvent *event);
 
     virtual QWidget *createOptionWidget();
+private:
+    void addAssistant();
+    void removeAssistant(KisPaintingAssistant *assistant);
 public slots:
     virtual void activate(ToolActivation toolActivation, const QSet<KoShape*> \
&shapes);  void deactivate();


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

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