From linux-kbuild Tue Nov 04 09:50:27 2014 From: =?UTF-8?q?Peter=20K=C3=BCmmel?= Date: Tue, 04 Nov 2014 09:50:27 +0000 To: linux-kbuild Subject: [PATCH] xconfig: Don't forget changed string value on focus lost Message-Id: <1415094627-18917-1-git-send-email-syntheticpp () gmx ! net> X-MARC-Message: https://marc.info/?l=linux-kbuild&m=141509465002965 Signed-off-by: Peter Kümmel --- scripts/kconfig/qconf.cc | 23 +++++++++++++++++++---- scripts/kconfig/qconf.h | 2 ++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc index 9d3b04b..f08472e 100644 --- a/scripts/kconfig/qconf.cc +++ b/scripts/kconfig/qconf.cc @@ -302,13 +302,18 @@ ConfigLineEdit::ConfigLineEdit(ConfigView* parent) connect(this, SIGNAL(lostFocus()), SLOT(hide())); } -void ConfigLineEdit::show(ConfigItem* i) +void ConfigLineEdit::updateLineEditText(ConfigItem* i) { - item = i; - if (sym_get_string_value(item->menu->sym)) - setText(QString::fromLocal8Bit(sym_get_string_value(item->menu->sym))); + if (sym_get_string_value(i->menu->sym)) + setText(QString::fromLocal8Bit(sym_get_string_value(i->menu->sym))); else setText(QString::null); +} + +void ConfigLineEdit::show(ConfigItem* i) +{ + item = i; + updateLineEditText(item); Parent::show(); setFocus(); } @@ -317,6 +322,7 @@ void ConfigLineEdit::keyPressEvent(QKeyEvent* e) { switch (e->key()) { case Qt::Key_Escape: + updateLineEditText(item); break; case Qt::Key_Return: case Qt::Key_Enter: @@ -332,6 +338,15 @@ void ConfigLineEdit::keyPressEvent(QKeyEvent* e) hide(); } +void ConfigLineEdit::focusOutEvent(QFocusEvent *e) +{ + if (e->lostFocus()) { + sym_set_string_value(item->menu->sym, text().latin1()); + parent()->updateList(item); + } + Parent::focusOutEvent(e); +} + ConfigList::ConfigList(ConfigView* p, const char *name) : Parent(p, name), updateAll(false), diff --git a/scripts/kconfig/qconf.h b/scripts/kconfig/qconf.h index bde0c6b..11efb71 100644 --- a/scripts/kconfig/qconf.h +++ b/scripts/kconfig/qconf.h @@ -209,8 +209,10 @@ public: { return (ConfigView*)Parent::parent(); } + void updateLineEditText(ConfigItem *i); void show(ConfigItem *i); void keyPressEvent(QKeyEvent *e); + void focusOutEvent(QFocusEvent *e); public: ConfigItem *item; -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html