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

List:       kde-commits
Subject:    branches/KDE/4.6/kdesdk/okteta/kasten/controllers/view/poddecoder
From:       Friedrich W. H. Kossebau <kossebau () kde ! org>
Date:       2011-01-31 22:09:12
Message-ID: 20110131220912.51E883E1F1 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1218179 by kossebau:

fixed: crashed if an editor for any float type in the Decoding Table tool was closed \
while having uncomplete data

reason: QLineEdit only emits editingFinished() if validator() returns \
QValidator::Acceptable, so in that case mEditor was not set to 0. Now catching \
deconstruction of any editor with QPointer.

BUG: 259867
FIXED-IN: 0.6.1



 M  +3 -0      branches/KDE/4.6/kdesdk/okteta/kasten/controllers/view/poddecoder/poddelegate.cpp \
  M  +2 -1      branches/KDE/4.6/kdesdk/okteta/kasten/controllers/view/poddecoder/poddelegate.h \
  M  +3 -0      trunk/KDE/kdesdk/okteta/kasten/controllers/view/poddecoder/poddelegate.cpp \
  M  +2 -1      trunk/KDE/kdesdk/okteta/kasten/controllers/view/poddecoder/poddelegate.h \



--- branches/KDE/4.6/kdesdk/okteta/kasten/controllers/view/poddecoder/poddelegate.cpp \
#1218178:1218179 @@ -71,6 +71,9 @@
 }
 
 // make sure only editors are created which have a readOnly property
+// also beware that for subclasses of QLineEdit (all float editors) the signal
+// editingFinished() is only emitted if validator() returns QValidator::Acceptable
+// so onEditorDone() is not reached if QValidator::Intermediate
 QWidget* PODDelegate::createEditor( QWidget* parent, const QStyleOptionViewItem& \
option, const QModelIndex& index ) const  {
     QWidget* result;
--- branches/KDE/4.6/kdesdk/okteta/kasten/controllers/view/poddecoder/poddelegate.h \
#1218178:1218179 @@ -25,6 +25,7 @@
 
 // Qt
 #include <QtGui/QStyledItemDelegate>
+#include <QtCore/QPointer>
 
 
 namespace Kasten
@@ -61,7 +62,7 @@
   protected:
     PODDecoderTool* mTool;
 
-    mutable QWidget* mEditor;
+    mutable QPointer<QWidget> mEditor;
 };
 
 }
--- trunk/KDE/kdesdk/okteta/kasten/controllers/view/poddecoder/poddelegate.cpp \
#1218178:1218179 @@ -71,6 +71,9 @@
 }
 
 // make sure only editors are created which have a readOnly property
+// also beware that for subclasses of QLineEdit (all float editors) the signal
+// editingFinished() is only emitted if validator() returns QValidator::Acceptable
+// so onEditorDone() is not reached if QValidator::Intermediate
 QWidget* PODDelegate::createEditor( QWidget* parent, const QStyleOptionViewItem& \
option, const QModelIndex& index ) const  {
     QWidget* result;
--- trunk/KDE/kdesdk/okteta/kasten/controllers/view/poddecoder/poddelegate.h \
#1218178:1218179 @@ -25,6 +25,7 @@
 
 // Qt
 #include <QtGui/QStyledItemDelegate>
+#include <QtCore/QPointer>
 
 
 namespace Kasten
@@ -61,7 +62,7 @@
   protected:
     PODDecoderTool* mTool;
 
-    mutable QWidget* mEditor;
+    mutable QPointer<QWidget> mEditor;
 };
 
 }


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

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