mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Added the code to revert Weigths when user cancels edition
This is a follow up commit to the previous one that enabled cancel for cylinders, everything in the commit log for the cylinders also applyes here. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
parent
7e029980b8
commit
3aa55462dc
4 changed files with 33 additions and 3 deletions
|
@ -58,6 +58,8 @@ QSize StarWidgetsDelegate::sizeHint(const QStyleOptionViewItem& option, const QM
|
||||||
|
|
||||||
ComboBoxDelegate::ComboBoxDelegate(QAbstractItemModel *model, QObject* parent): QStyledItemDelegate(parent), model(model)
|
ComboBoxDelegate::ComboBoxDelegate(QAbstractItemModel *model, QObject* parent): QStyledItemDelegate(parent), model(model)
|
||||||
{
|
{
|
||||||
|
connect(this, SIGNAL(closeEditor(QWidget*,QAbstractItemDelegate::EndEditHint)),
|
||||||
|
this, SLOT(revertModelData(QWidget*, QAbstractItemDelegate::EndEditHint)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ComboBoxDelegate::setEditorData(QWidget* editor, const QModelIndex& index) const
|
void ComboBoxDelegate::setEditorData(QWidget* editor, const QModelIndex& index) const
|
||||||
|
@ -172,8 +174,6 @@ void TankInfoDelegate::setModelData(QWidget* editor, QAbstractItemModel* model,
|
||||||
|
|
||||||
TankInfoDelegate::TankInfoDelegate(QObject* parent): ComboBoxDelegate(TankInfoModel::instance(), parent)
|
TankInfoDelegate::TankInfoDelegate(QObject* parent): ComboBoxDelegate(TankInfoModel::instance(), parent)
|
||||||
{
|
{
|
||||||
connect(this, SIGNAL(closeEditor(QWidget*,QAbstractItemDelegate::EndEditHint)),
|
|
||||||
this, SLOT(revertModelData(QWidget*, QAbstractItemDelegate::EndEditHint)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TankInfoDelegate::revertModelData(QWidget* widget, QAbstractItemDelegate::EndEditHint hint)
|
void TankInfoDelegate::revertModelData(QWidget* widget, QAbstractItemDelegate::EndEditHint hint)
|
||||||
|
@ -199,6 +199,20 @@ QWidget* TankInfoDelegate::createEditor(QWidget* parent, const QStyleOptionViewI
|
||||||
return delegate;
|
return delegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct RevertWeigthData {
|
||||||
|
QString type;
|
||||||
|
int weigth;
|
||||||
|
} currWeigth;
|
||||||
|
|
||||||
|
void WSInfoDelegate::revertModelData(QWidget* widget, QAbstractItemDelegate::EndEditHint hint)
|
||||||
|
{
|
||||||
|
if (hint == QAbstractItemDelegate::NoHint || hint == QAbstractItemDelegate::RevertModelCache){
|
||||||
|
WeightModel *mymodel = qobject_cast<WeightModel *>(currCombo.model);
|
||||||
|
mymodel->setData(IDX(WeightModel::TYPE), currWeigth.type, Qt::EditRole);
|
||||||
|
mymodel->passInData(IDX(WeightModel::WEIGHT), currWeigth.weigth);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void WSInfoDelegate::setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& thisindex) const
|
void WSInfoDelegate::setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& thisindex) const
|
||||||
{
|
{
|
||||||
WeightModel *mymodel = qobject_cast<WeightModel *>(currCombo.model);
|
WeightModel *mymodel = qobject_cast<WeightModel *>(currCombo.model);
|
||||||
|
@ -231,5 +245,11 @@ WSInfoDelegate::WSInfoDelegate(QObject* parent): ComboBoxDelegate(WSInfoModel::i
|
||||||
|
|
||||||
QWidget* WSInfoDelegate::createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const
|
QWidget* WSInfoDelegate::createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const
|
||||||
{
|
{
|
||||||
return ComboBoxDelegate::createEditor(parent, option, index);
|
/* First, call the combobox-create editor, it will setup our globals. */
|
||||||
|
QWidget *editor = ComboBoxDelegate::createEditor(parent, option, index);
|
||||||
|
WeightModel *mymodel = qobject_cast<WeightModel *>(currCombo.model);
|
||||||
|
weightsystem_t *ws = mymodel->weightSystemAt(index);
|
||||||
|
currWeigth.type = ws->description;
|
||||||
|
currWeigth.weigth = ws->weight.grams;
|
||||||
|
return editor;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@ public:
|
||||||
virtual bool eventFilter(QObject* object, QEvent* event);
|
virtual bool eventFilter(QObject* object, QEvent* event);
|
||||||
public slots:
|
public slots:
|
||||||
void testActivation(const QString& s);
|
void testActivation(const QString& s);
|
||||||
|
virtual void revertModelData(QWidget* widget, QAbstractItemDelegate::EndEditHint hint) = 0;
|
||||||
protected:
|
protected:
|
||||||
QAbstractItemModel *model;
|
QAbstractItemModel *model;
|
||||||
};
|
};
|
||||||
|
@ -44,6 +45,8 @@ public:
|
||||||
explicit WSInfoDelegate(QObject* parent = 0);
|
explicit WSInfoDelegate(QObject* parent = 0);
|
||||||
virtual void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
|
virtual void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
|
||||||
virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
||||||
|
public slots:
|
||||||
|
void revertModelData(QWidget* widget, QAbstractItemDelegate::EndEditHint hint);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -348,6 +348,11 @@ WeightModel::WeightModel(QObject* parent): QAbstractTableModel(parent), current(
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
weightsystem_t* WeightModel::weightSystemAt(const QModelIndex& index)
|
||||||
|
{
|
||||||
|
return ¤t->weightsystem[index.row()];
|
||||||
|
}
|
||||||
|
|
||||||
void WeightModel::remove(const QModelIndex& index)
|
void WeightModel::remove(const QModelIndex& index)
|
||||||
{
|
{
|
||||||
if (index.column() != REMOVE) {
|
if (index.column() != REMOVE) {
|
||||||
|
|
|
@ -114,6 +114,8 @@ public:
|
||||||
void clear();
|
void clear();
|
||||||
void update();
|
void update();
|
||||||
void setDive(struct dive *d);
|
void setDive(struct dive *d);
|
||||||
|
weightsystem_t *weightSystemAt(const QModelIndex& index);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void remove(const QModelIndex& index);
|
void remove(const QModelIndex& index);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue