From f9b918fae678eacdeaad821db57a107fba6fe3a1 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Sat, 29 Aug 2020 17:14:10 +0900 Subject: kconfig: qconf: move ConfigView::updateList(All) to ConfigList class ConfigView::updateList() iterates over all views, and then calls updateList() against for its ConfigList instance. This means there is no point to implement it in the ConfigView class. Move and rename as follows: ConfigView::updateList() -> ConfigList::updateListForAll() ConfigView::updateListAll() -> ConfigList::updateListAllForAll() I used QList to contain all ConfigList instances. Signed-off-by: Masahiro Yamada --- scripts/kconfig/qconf.cc | 70 +++++++++++++++++++++++------------------------- scripts/kconfig/qconf.h | 11 ++++---- 2 files changed, 39 insertions(+), 42 deletions(-) (limited to 'scripts/kconfig') diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc index bf6c9187daf5..7cab996c3617 100644 --- a/scripts/kconfig/qconf.cc +++ b/scripts/kconfig/qconf.cc @@ -274,7 +274,7 @@ void ConfigLineEdit::keyPressEvent(QKeyEvent* e) case Qt::Key_Return: case Qt::Key_Enter: sym_set_string_value(item->menu->sym, text().toLatin1()); - parent()->updateList(); + ConfigList::updateListForAll(); break; default: Parent::keyPressEvent(e); @@ -315,9 +315,16 @@ ConfigList::ConfigList(ConfigView* p, const char *name) showColumn(promptColIdx); + allLists.append(this); + reinit(); } +ConfigList::~ConfigList() +{ + allLists.removeOne(this); +} + bool ConfigList::menuSkip(struct menu *menu) { if (optMode == normalOpt && menu_is_visible(menu)) @@ -454,6 +461,28 @@ update: resizeColumnToContents(0); } +void ConfigList::updateListForAll() +{ + QListIterator it(allLists); + + while (it.hasNext()) { + ConfigList *list = it.next(); + + list->updateList(); + } +} + +void ConfigList::updateListAllForAll() +{ + QListIterator it(allLists); + + while (it.hasNext()) { + ConfigList *list = it.next(); + + list->updateList(); + } +} + void ConfigList::setValue(ConfigItem* item, tristate val) { struct symbol* sym; @@ -474,7 +503,7 @@ void ConfigList::setValue(ConfigItem* item, tristate val) return; if (oldval == no && item->menu->list) item->setExpanded(true); - parent()->updateList(); + ConfigList::updateListForAll(); break; } } @@ -508,7 +537,7 @@ void ConfigList::changeValue(ConfigItem* item) item->setExpanded(true); } if (oldexpr != newexpr) - parent()->updateList(); + ConfigList::updateListForAll(); break; case S_INT: case S_HEX: @@ -904,7 +933,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e) e->accept(); } -ConfigView*ConfigView::viewList; +QList ConfigList::allLists; QAction *ConfigList::showNormalAction; QAction *ConfigList::showAllAction; QAction *ConfigList::showPromptAction; @@ -921,21 +950,6 @@ ConfigView::ConfigView(QWidget* parent, const char *name) lineEdit = new ConfigLineEdit(this); lineEdit->hide(); verticalLayout->addWidget(lineEdit); - - this->nextView = viewList; - viewList = this; -} - -ConfigView::~ConfigView(void) -{ - ConfigView** vp; - - for (vp = &viewList; *vp; vp = &(*vp)->nextView) { - if (*vp == this) { - *vp = nextView; - break; - } - } } void ConfigView::setShowName(bool b) @@ -976,22 +990,6 @@ void ConfigList::setAllOpen(bool open) } } -void ConfigView::updateList() -{ - ConfigView* v; - - for (v = viewList; v; v = v->nextView) - v->list->updateList(); -} - -void ConfigView::updateListAll(void) -{ - ConfigView* v; - - for (v = viewList; v; v = v->nextView) - v->list->updateListAll(); -} - ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name) : Parent(parent), sym(0), _menu(0) { @@ -1605,7 +1603,7 @@ void ConfigMainWindow::loadConfig(void) free(configname); configname = xstrdup(name); - ConfigView::updateListAll(); + ConfigList::updateListAllForAll(); } bool ConfigMainWindow::saveConfig(void) diff --git a/scripts/kconfig/qconf.h b/scripts/kconfig/qconf.h index d41670f322b3..818e00617ae3 100644 --- a/scripts/kconfig/qconf.h +++ b/scripts/kconfig/qconf.h @@ -44,6 +44,7 @@ class ConfigList : public QTreeWidget { typedef class QTreeWidget Parent; public: ConfigList(ConfigView* p, const char *name = 0); + ~ConfigList(); void reinit(void); ConfigItem* findConfigItem(struct menu *); ConfigView* parent(void) const @@ -108,6 +109,10 @@ public: QPalette inactivedColorGroup; QMenu* headerPopup; + static QList allLists; + static void updateListForAll(); + static void updateListAllForAll(); + static QAction *showNormalAction, *showAllAction, *showPromptAction; }; @@ -188,9 +193,6 @@ class ConfigView : public QWidget { typedef class QWidget Parent; public: ConfigView(QWidget* parent, const char *name = 0); - ~ConfigView(void); - static void updateList(); - static void updateListAll(void); bool showName(void) const { return list->showName; } bool showRange(void) const { return list->showRange; } @@ -206,9 +208,6 @@ signals: public: ConfigList* list; ConfigLineEdit* lineEdit; - - static ConfigView* viewList; - ConfigView* nextView; }; class ConfigInfoView : public QTextBrowser { -- cgit