Skip to content

Commit

Permalink
kconfig: qconf: refactor icon setups
Browse files Browse the repository at this point in the history
These icon data are used by ConfigItem, but stored in each instance
of ConfigView. There is no point to keep the same data in each of 3
instances, "menu", "config", and "search".

Move the icon data to the more relevant ConfigItem class, and make
them static members.

Signed-off-by: Masahiro Yamada <[email protected]>
  • Loading branch information
masahir0y committed Aug 14, 2020
1 parent 4fa91f5 commit 5cb255f
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 14 deletions.
33 changes: 23 additions & 10 deletions scripts/kconfig/qconf.cc
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,13 @@ bool ConfigSettings::writeSizes(const QString& key, const QList<int>& value)
return true;
}

QIcon ConfigItem::symbolYesIcon;
QIcon ConfigItem::symbolModIcon;
QIcon ConfigItem::symbolNoIcon;
QIcon ConfigItem::choiceYesIcon;
QIcon ConfigItem::choiceNoIcon;
QIcon ConfigItem::menuIcon;
QIcon ConfigItem::menubackIcon;

/*
* set the new data
Expand All @@ -97,7 +104,7 @@ void ConfigItem::updateMenu(void)

list = listView();
if (goParent) {
setIcon(promptColIdx, list->menuBackPix);
setIcon(promptColIdx, menubackIcon);
prompt = "..";
goto set_prompt;
}
Expand All @@ -114,7 +121,7 @@ void ConfigItem::updateMenu(void)
*/
if (sym && list->rootEntry == menu)
break;
setIcon(promptColIdx, list->menuPix);
setIcon(promptColIdx, menuIcon);
} else {
if (sym)
break;
Expand Down Expand Up @@ -149,22 +156,22 @@ void ConfigItem::updateMenu(void)
switch (expr) {
case yes:
if (sym_is_choice_value(sym) && type == S_BOOLEAN)
setIcon(promptColIdx, list->choiceYesPix);
setIcon(promptColIdx, choiceYesIcon);
else
setIcon(promptColIdx, list->symbolYesPix);
setIcon(promptColIdx, symbolYesIcon);
setText(yesColIdx, "Y");
ch = 'Y';
break;
case mod:
setIcon(promptColIdx, list->symbolModPix);
setIcon(promptColIdx, symbolModIcon);
setText(modColIdx, "M");
ch = 'M';
break;
default:
if (sym_is_choice_value(sym) && type == S_BOOLEAN)
setIcon(promptColIdx, list->choiceNoPix);
setIcon(promptColIdx, choiceNoIcon);
else
setIcon(promptColIdx, list->symbolNoPix);
setIcon(promptColIdx, symbolNoIcon);
setText(noColIdx, "N");
ch = 'N';
break;
Expand Down Expand Up @@ -289,9 +296,6 @@ void ConfigLineEdit::keyPressEvent(QKeyEvent* e)
ConfigList::ConfigList(ConfigView* p, const char *name)
: Parent(p),
updateAll(false),
symbolYesPix(xpm_symbol_yes), symbolModPix(xpm_symbol_mod), symbolNoPix(xpm_symbol_no),
choiceYesPix(xpm_choice_yes), choiceNoPix(xpm_choice_no),
menuPix(xpm_menu), menuBackPix(xpm_menuback),
showName(false), showRange(false), showData(false), mode(singleMode), optMode(normalOpt),
rootEntry(0), headerPopup(0)
{
Expand Down Expand Up @@ -1396,6 +1400,15 @@ ConfigMainWindow::ConfigMainWindow(void)
if ((x.isValid())&&(y.isValid()))
move(x.toInt(), y.toInt());

// set up icons
ConfigItem::symbolYesIcon = QIcon(QPixmap(xpm_symbol_yes));
ConfigItem::symbolModIcon = QIcon(QPixmap(xpm_symbol_mod));
ConfigItem::symbolNoIcon = QIcon(QPixmap(xpm_symbol_no));
ConfigItem::choiceYesIcon = QIcon(QPixmap(xpm_choice_yes));
ConfigItem::choiceNoIcon = QIcon(QPixmap(xpm_choice_no));
ConfigItem::menuIcon = QIcon(QPixmap(xpm_menu));
ConfigItem::menubackIcon = QIcon(QPixmap(xpm_menuback));

QWidget *widget = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(widget);
setCentralWidget(widget);
Expand Down
8 changes: 4 additions & 4 deletions scripts/kconfig/qconf.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,6 @@ public slots:

bool updateAll;

QPixmap symbolYesPix, symbolModPix, symbolNoPix;
QPixmap choiceYesPix, choiceNoPix;
QPixmap menuPix, menuBackPix;

bool showName, showRange, showData;
enum listMode mode;
enum optionMode optMode;
Expand Down Expand Up @@ -162,6 +158,10 @@ class ConfigItem : public QTreeWidgetItem {
struct menu *menu;
bool visible;
bool goParent;

static QIcon symbolYesIcon, symbolModIcon, symbolNoIcon;
static QIcon choiceYesIcon, choiceNoIcon;
static QIcon menuIcon, menubackIcon;
};

class ConfigLineEdit : public QLineEdit {
Expand Down

0 comments on commit 5cb255f

Please sign in to comment.