summaryrefslogtreecommitdiffstats
path: root/qt-ui/modeldelegates.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/modeldelegates.cpp')
-rw-r--r--qt-ui/modeldelegates.cpp26
1 files changed, 23 insertions, 3 deletions
diff --git a/qt-ui/modeldelegates.cpp b/qt-ui/modeldelegates.cpp
index 16140bb8d..9ccf6608f 100644
--- a/qt-ui/modeldelegates.cpp
+++ b/qt-ui/modeldelegates.cpp
@@ -59,6 +59,8 @@ QSize StarWidgetsDelegate::sizeHint(const QStyleOptionViewItem& option, const QM
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
@@ -173,8 +175,6 @@ void TankInfoDelegate::setModelData(QWidget* editor, QAbstractItemModel* model,
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)
@@ -200,6 +200,20 @@ QWidget* TankInfoDelegate::createEditor(QWidget* parent, const QStyleOptionViewI
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
{
WeightModel *mymodel = qobject_cast<WeightModel *>(currCombo.model);
@@ -232,5 +246,11 @@ WSInfoDelegate::WSInfoDelegate(QObject* parent): ComboBoxDelegate(WSInfoModel::i
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;
}