summaryrefslogtreecommitdiffstats
path: root/qt-ui/modeldelegates.cpp
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-09-26 19:59:58 -0300
committerGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-09-26 19:59:58 -0300
commitb036a318c695ed5950b5a7c74c8fc081b81b5dab (patch)
tree020dc56d878e061a4e50c9cbbe3b196643dd2cff /qt-ui/modeldelegates.cpp
parent098aa6343b7b806c5c23f6e55c52b998bbe0c388 (diff)
downloadsubsurface-b036a318c695ed5950b5a7c74c8fc081b81b5dab.tar.gz
Fix the edition of cylinders and weigths by keypress
This patch fixes the cylinders and weigth edition by keypress. I don`t know when I broke this and linus found, most probably when I added the code for showing the cylinder size and working press while moving the mouse around the list - sorry guys. So, now this *seems* fixed, tested for a fairly good amount of time and everything seemed ok. I was unable to reproduce the behavior that linus got on two value overlapped on each other, tougth. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Diffstat (limited to 'qt-ui/modeldelegates.cpp')
-rw-r--r--qt-ui/modeldelegates.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/qt-ui/modeldelegates.cpp b/qt-ui/modeldelegates.cpp
index c75485788..5a55cad3c 100644
--- a/qt-ui/modeldelegates.cpp
+++ b/qt-ui/modeldelegates.cpp
@@ -95,6 +95,7 @@ QWidget* ComboBoxDelegate::createEditor(QWidget* parent, const QStyleOptionViewI
comboDelegate->lineEdit()->installEventFilter( const_cast<QObject*>(qobject_cast<const QObject*>(this)));
comboDelegate->view()->installEventFilter( const_cast<QObject*>(qobject_cast<const QObject*>(this)));
connect(comboDelegate, SIGNAL(highlighted(QString)), this, SLOT(testActivation(QString)));
+ connect(comboDelegate->lineEdit(), SIGNAL(editingFinished()), this, SLOT(testActivation()));
connect(comboDelegate, SIGNAL(activated(QString)), this, SLOT(fakeActivation()));
currCombo.comboEditor = comboDelegate;
currCombo.currRow = index.row();
@@ -102,9 +103,14 @@ QWidget* ComboBoxDelegate::createEditor(QWidget* parent, const QStyleOptionViewI
return comboDelegate;
}
-void ComboBoxDelegate::testActivation(const QString& s)
+/* This Method is being called when the user *writes* something and press enter or tab,
+ * and it`s also called when the mouse walks over the list of choices from the ComboBox,
+ * One thing is important, if the user writes a *new* cylinder or weigth type, it will
+ * be ADDED to the list, and the user will need to fill the other data.
+ */
+void ComboBoxDelegate::testActivation(const QString& currText)
{
- currCombo.activeText = s;
+ currCombo.activeText = currText.isEmpty() ? currCombo.comboEditor->currentText() : currText;
setModelData(currCombo.comboEditor, currCombo.model, QModelIndex());
}