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

List:       kde-commits
Subject:    =?utf-8?q?=5Bknights=5D_src=3A_Don=27t_crash_when_you_drag_=26_d?=
From:       José_Manuel_Santamaría_Lema <panfaust () gmail ! com>
Date:       2011-02-26 20:58:44
Message-ID: 20110226205844.6AEB7A60BB () git ! kde ! org
[Download RAW message or body]

Git commit 15f60030adca584f5e787dd48cf0b65aa0e0c3af by José Manuel Santamaría Lema.
Committed on 23/02/2011 at 17:50.
Pushed by joselema into branch 'master'.

Don't crash when you drag & drop a piece without valid moves.

M  +1    -1    src/board.cpp     
M  +2    -1    src/board.h     

http://commits.kde.org/knights/15f60030adca584f5e787dd48cf0b65aa0e0c3af

diff --git a/src/board.cpp b/src/board.cpp
index f695859..fc96e43 100644
--- a/src/board.cpp
+++ b/src/board.cpp
@@ -288,7 +288,7 @@ void Board::mousePressEvent ( QGraphicsSceneMouseEvent* e )
 void Board::mouseMoveEvent ( QGraphicsSceneMouseEvent* e )
 {
     QPoint delta = e->screenPos() - dragStartPoint;
-    if ( delta.manhattanLength() >= QApplication::startDragDistance() )
+    if ( (delta.manhattanLength() >= QApplication::startDragDistance()) && drag )
     {
         drag->exec();
     }
diff --git a/src/board.h b/src/board.h
index 55aac0a..34dee53 100644
--- a/src/board.h
+++ b/src/board.h
@@ -28,6 +28,7 @@
 #include <QtGui/QGraphicsScene>
 #include <QtCore/QMap>
 #include <QtCore/QSet>
+#include <QtCore/QPointer>
 
 class QDrag;
 
@@ -87,7 +88,7 @@ namespace Knights
             void removeFrame();
             void centerAndResize ( Item* item, QSize size, bool animated = true );
             PieceType getPromotedType();
-            QDrag* drag;
+            QPointer<QDrag> drag;
             
             bool m_paused;
             int m_tileSize;


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

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