diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-11-04 20:20:32 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-12-05 10:14:25 -0800 |
commit | 029c9ccf020fdb73c148da489e0e7b1acd3ca149 (patch) | |
tree | 28e92d6662d6e6ece3755369b30164d316d76f53 /desktop-widgets/modeldelegates.h | |
parent | ab99ca85f12b92ed55219c82ec2220aebfe1dda5 (diff) | |
download | subsurface-029c9ccf020fdb73c148da489e0e7b1acd3ca149.tar.gz |
Desktop: refactor WSInfoDelegate logic
The WSInfoDelegate (weight-system-info delegate) is used to display
a combo box of known weightsystem-types and auto-fills the weight if
the weightsystem-type is changed.
This would overwrite the weight data of the displayed dive when the
user hovers over the different entries. Moreover, it saves the original
weight in case the user cancels the editing action.
This is not viable when implementing undo of weightsystem changes,
because hovering over entries should not produce individual undo
commands. Instead, implement a special "temporary" row in the
weightsystem model. On canceling of the edit actions, simply reload
the weightsystem from the unmodified dive.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/modeldelegates.h')
-rw-r--r-- | desktop-widgets/modeldelegates.h | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/desktop-widgets/modeldelegates.h b/desktop-widgets/modeldelegates.h index e2baa1582..277bf994e 100644 --- a/desktop-widgets/modeldelegates.h +++ b/desktop-widgets/modeldelegates.h @@ -45,7 +45,7 @@ slots: //HACK: try to get rid of this in the future. void fakeActivation(); void fixTabBehavior(); - virtual void revertModelData(QWidget *widget, QAbstractItemDelegate::EndEditHint hint) = 0; + virtual void editorClosed(QWidget *widget, QAbstractItemDelegate::EndEditHint hint) = 0; private: bool editable; protected: @@ -60,7 +60,7 @@ public: QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override; public slots: - void revertModelData(QWidget *widget, QAbstractItemDelegate::EndEditHint hint); + void editorClosed(QWidget *widget, QAbstractItemDelegate::EndEditHint hint); void reenableReplot(QWidget *widget, QAbstractItemDelegate::EndEditHint hint); }; @@ -78,10 +78,9 @@ class WSInfoDelegate : public ComboBoxDelegate { public: explicit WSInfoDelegate(QObject *parent = 0); void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override; - QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override; public slots: - void revertModelData(QWidget *widget, QAbstractItemDelegate::EndEditHint hint); + void editorClosed(QWidget *widget, QAbstractItemDelegate::EndEditHint hint); }; class AirTypesDelegate : public ComboBoxDelegate { @@ -91,7 +90,7 @@ public: void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override; public slots: - void revertModelData(QWidget *widget, QAbstractItemDelegate::EndEditHint hint); + void editorClosed(QWidget *widget, QAbstractItemDelegate::EndEditHint hint); }; class DiveTypesDelegate : public ComboBoxDelegate { @@ -101,7 +100,7 @@ public: void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override; public slots: - void revertModelData(QWidget *widget, QAbstractItemDelegate::EndEditHint hint); + void editorClosed(QWidget *widget, QAbstractItemDelegate::EndEditHint hint); }; class SpinBoxDelegate : public QStyledItemDelegate { |