]> git.baikalelectronics.ru Git - kernel.git/commit
kconfig: qconf: allow to edit "int", "hex", "string" menus in-place
authorMasahiro Yamada <masahiroy@kernel.org>
Sat, 29 Aug 2020 08:14:12 +0000 (17:14 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Thu, 24 Sep 2020 15:37:13 +0000 (00:37 +0900)
commit1383726515de8e3649fa75e03f41b2237edf09e7
tree82b4a1da75c4cefa243d9436e12c008ab5d81ae0
parent34b2ca5a8368c75d7a986f2b4e5575179fd5a5d7
kconfig: qconf: allow to edit "int", "hex", "string" menus in-place

Previously, when you double-clicked the "int", "hex", or "string" menus,
a line-edit gadget showed up to allow you to input the value, which
looked clumsy.

Also, it was buggy; the editor opened even if the config option was not
editable. For example, just try to double-click CC_VERSION_TEXT, which
has no prompt.

This commit sub-classes QStyleItemDelegate to allow users to edit
"int", "hex", "string" menus in-place. Just double-click (or press
the F2 key) in the data column. Then, an editor widget is placed on
top of the item view.

The two methods are overridden:

 createEditor - process only when the data column is being accessed
 and the menu is visible. Otherwise, return nullptr to disallow editing.

 setModelData - take the new data from the editor, and set it to the
 addressed symbol. If it was successful, update all the list windows.
 Otherwise, (the reason for the failure is possibly the input data was
 out of range), set the old value back to the editor.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
scripts/kconfig/qconf.cc
scripts/kconfig/qconf.h