Messages in this thread Patch in this message | | | From | Masahiro Yamada <> | Date | Fri, 7 Aug 2020 22:54:40 +0900 | Subject | Re: [PATCH] kconfig qconf: Add grey background for hidden options |
| |
On Wed, Jul 8, 2020 at 10:30 PM Maxime Chretien <maxime.chretien@bootlin.com> wrote: > > This is useful to see which configuration parameters can be edited > or not when "Show All Options" is enabled. > > Signed-off-by: Maxime Chretien <maxime.chretien@bootlin.com> > --- > scripts/kconfig/qconf.cc | 7 +++++++ > scripts/kconfig/qconf.h | 4 ++++ > 2 files changed, 11 insertions(+)
I like the idea, but maybe this patch could be improved?
For example, in the following test code, BAR is correctly painted grey when CONFIG_FOO=n, but "my menu" is always white despite of "depends on FOO"
----(test code)------
config FOO bool "foo"
config BAR bool "bar" depends on FOO
menu "my menu" depends on FOO
endmenu
-------(test code end)----
> diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc > index c0ac8f7b5f1a..be9ff4651da1 100644 > --- a/scripts/kconfig/qconf.cc > +++ b/scripts/kconfig/qconf.cc > @@ -208,6 +208,13 @@ void ConfigItem::updateMenu(void) > } > if (!sym_has_value(sym) && visible) > prompt += " (NEW)"; > + > + if(!visible) { > + setBackground(promptColIdx, QBrush(QColor("#E0E0E0"))); > + } else { > + setBackground(promptColIdx, QBrush()); > + } > +
I think all the columns should be grey-grounded. Please note you can click other columns to toggle y/m/n.
How about something like this?
QBrush brush;
if (visible) brush = QBrush() else brush = QBrush(QColor("#E0E0E0")); setBackground(promptColIdx, brush); setBackground(nameColIdx, brush); setBackground(noColIdx, brush); setBackground(modColIdx, brush); setBackground(yesColIdx, brush); setBackground(dataColIdx, brush);
> set_prompt: > setText(promptColIdx, prompt); > } > diff --git a/scripts/kconfig/qconf.h b/scripts/kconfig/qconf.h > index c879d79ce817..79e47e8c1ae7 100644 > --- a/scripts/kconfig/qconf.h > +++ b/scripts/kconfig/qconf.h > @@ -174,6 +174,10 @@ class ConfigItem : public QTreeWidgetItem { > { > return Parent::text(idx); > } > + void setBackground(colIdx idx, const QBrush& brush) > + { > + Parent::setBackground(idx, brush); > + }
I do not understand why this wrapper is useful...
> void setPixmap(colIdx idx, const QIcon &icon) > { > Parent::setIcon(idx, icon); > -- > 2.27.0 >
-- Best Regards Masahiro Yamada
| |