diff --git a/src/qtgui/confgui/confguiindex.cpp b/src/qtgui/confgui/confguiindex.cpp index 75381f3c..580ab176 100644 --- a/src/qtgui/confgui/confguiindex.cpp +++ b/src/qtgui/confgui/confguiindex.cpp @@ -295,7 +295,14 @@ ConfSubPanelW::ConfSubPanelW(QWidget *parent, ConfNull *config) SLOT(subDirChanged(QListWidgetItem *, QListWidgetItem *))); connect(m_subdirs, SIGNAL(entryDeleted(QString)), this, SLOT(subDirDeleted(QString))); - list allkeydirs = config->getSubKeys(); + + // We only retrieve the subkeys from the user's config (shallow), + // no use to confuse the user by showing the subtrees which are + // customized in the system config like .thunderbird or + // .purple. This doesn't prevent them to add and customize them + // further. + list allkeydirs = config->getSubKeys(true); + QStringList qls; for (list::const_iterator it = allkeydirs.begin(); it != allkeydirs.end(); it++) { diff --git a/src/utils/conftree.h b/src/utils/conftree.h index 8c77d425..9489f05a 100644 --- a/src/utils/conftree.h +++ b/src/utils/conftree.h @@ -105,6 +105,7 @@ public: virtual int eraseKey(const string &) = 0; virtual void listall() {}; virtual list getSubKeys() = 0; + virtual list getSubKeys(bool) = 0; virtual bool holdWrites(bool) = 0; }; @@ -205,6 +206,7 @@ public: /** * Return all subkeys */ + virtual list getSubKeys(bool) {return getSubKeys();} virtual list getSubKeys(); virtual string getFilename() {return m_filename;} @@ -435,7 +437,8 @@ public: return nms; } - virtual list getSubKeys() + virtual list getSubKeys(){return getSubKeys(false);} + virtual list getSubKeys(bool shallow) { list sks; typename list::iterator it; @@ -443,6 +446,8 @@ public: list lst; lst = (*it)->getSubKeys(); sks.insert(sks.end(), lst.begin(), lst.end()); + if (shallow) + break; } sks.sort(); sks.unique();