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 +#include namespace Kasten @@ -61,7 +62,7 @@ protected: PODDecoderTool* mTool; - mutable QWidget* mEditor; + mutable QPointer 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 +#include namespace Kasten @@ -61,7 +62,7 @@ protected: PODDecoderTool* mTool; - mutable QWidget* mEditor; + mutable QPointer mEditor; }; }