From kde-commits Fri Dec 31 23:27:35 2010 From: Geoffry Song Date: Fri, 31 Dec 2010 23:27:35 +0000 To: kde-commits Subject: [Calligra] 45cf86d: KisRulerAssistantTool: track perspective grids in Message-Id: <20101231232735.17FE9A60B4 () git ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=129383813816730 commit 45cf86d07f90f2901315355d5ec678db395c000f branch master Author: Geoffry Song 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 #include +#include #include #include #include +#include #include 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(m_newAssistant); + if (grid) { + m_canvas->view()->resourceProvider()->addPerspectiveGrid(grid); + } + m_newAssistant = 0; +} + + +void KisRulerAssistantTool::removeAssistant(KisPaintingAssistant* assistant) +{ + KisAbstractPerspectiveGrid* grid = dynamic_cast(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 &shapes); void deactivate();