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

List:       kde-commits
Subject:    [calligra] krita/plugins/tools/defaulttools: Fix crashing when
From:       Torio Mlshi <mlshi () lavabit ! com>
Date:       2011-10-31 20:29:01
Message-ID: 20111031202901.3EC94A60A6 () git ! kde ! org
[Download RAW message or body]

Git commit 0efcc581d1995d480752983fd9708baad44f88e0 by Torio Mlshi.
Committed on 31/10/2011 at 20:09.
Pushed by mlshi into branch 'master'.

Fix crashing when using tools on empty image

When image is empty (has no layers), color picker & move tools caused
crashes when using.

M  +3    -0    krita/plugins/tools/defaulttools/kis_tool_colorpicker.cc
M  +11   -0    krita/plugins/tools/defaulttools/kis_tool_move.cc

http://commits.kde.org/calligra/0efcc581d1995d480752983fd9708baad44f88e0

diff --git a/krita/plugins/tools/defaulttools/kis_tool_colorpicker.cc \
b/krita/plugins/tools/defaulttools/kis_tool_colorpicker.cc index 006aa78..f5c0393 \
                100644
--- a/krita/plugins/tools/defaulttools/kis_tool_colorpicker.cc
+++ b/krita/plugins/tools/defaulttools/kis_tool_colorpicker.cc
@@ -88,6 +88,9 @@ void KisToolColorPicker::pickColor(const QPointF& pos)
             m_colorPickerDelayTimer.start(100);
         }
 
+        if (!currentNode())
+            return;
+        
         KisPaintDeviceSP dev = currentNode()->paintDevice();
         if (!dev) return;
 
diff --git a/krita/plugins/tools/defaulttools/kis_tool_move.cc \
b/krita/plugins/tools/defaulttools/kis_tool_move.cc index 1ee0baa..986c7bc 100644
--- a/krita/plugins/tools/defaulttools/kis_tool_move.cc
+++ b/krita/plugins/tools/defaulttools/kis_tool_move.cc
@@ -188,6 +188,11 @@ void KisToolMove::mousePressEvent(KoPointerEvent *event)
 
         if(!node) {
             node = currentNode();
+            if (!node)
+            {
+                m_strokeId.clear();
+                return;
+            }
         }
 
         /**
@@ -237,6 +242,9 @@ void KisToolMove::mousePressEvent(KoPointerEvent *event)
 void KisToolMove::mouseMoveEvent(KoPointerEvent *event)
 {
     if(MOVE_CONDITION(event, KisTool::PAINT_MODE)) {
+        if (!m_strokeId)
+            return;
+        
         QPoint pos = convertToPixelCoord(event).toPoint();
         if ((event->modifiers() & Qt::AltModifier) ||
             (event->modifiers() & Qt::ControlModifier)) {
@@ -258,6 +266,9 @@ void KisToolMove::mouseMoveEvent(KoPointerEvent *event)
 void KisToolMove::mouseReleaseEvent(KoPointerEvent *event)
 {
     if(RELEASE_CONDITION(event, KisTool::PAINT_MODE, Qt::LeftButton)) {
+        if (!m_strokeId)
+            return;
+        
         setMode(KisTool::HOVER_MODE);
 
         QPoint pos = convertToPixelCoord(event).toPoint();


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

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