diff --git a/src/admc/main_window.cpp b/src/admc/main_window.cpp index 75ba182b..842b701e 100644 --- a/src/admc/main_window.cpp +++ b/src/admc/main_window.cpp @@ -187,12 +187,8 @@ MainWindow::MainWindow(AdInterface &ad, QWidget *parent) // // Setup theme action // - const QList name_theme_list = { - QIcon::fallbackThemeName(), - "Active-Directory-line", - "Active-Directory-duotone", - "Active-Directory-color" - }; + const QList name_theme_list = settings_get_themes(); + auto theme_group = new QActionGroup(this); for (const QString &name_theme : name_theme_list){ const auto action = new QAction(name_theme, theme_group); @@ -227,8 +223,6 @@ MainWindow::MainWindow(AdInterface &ad, QWidget *parent) update(); reload_scope_tree(); - - }); } diff --git a/src/admc/settings.cpp b/src/admc/settings.cpp index e218250e..74304c1a 100644 --- a/src/admc/settings.cpp +++ b/src/admc/settings.cpp @@ -112,3 +112,17 @@ void settings_set_variant(const QString setting, const QVariant &value) { settings.setValue(setting, value); } + +QList settings_get_themes (){ + QSettings::setPath(QSettings::NativeFormat, QSettings::SystemScope, "/etc/icon-theme-ActiveDirectory"); + QSettings set("icon-theme-ActiveDirectory"); + + QList name_theme_list; + name_theme_list.push_front(QIcon::fallbackThemeName()); + + QStringList all_themes = set.allKeys(); + for( QString &name_theme : all_themes ) + name_theme_list.push_back(set.value(name_theme).toString()); + + return name_theme_list; +} diff --git a/src/admc/settings.h b/src/admc/settings.h index 3c34b8cc..68713ebf 100644 --- a/src/admc/settings.h +++ b/src/admc/settings.h @@ -167,4 +167,7 @@ bool settings_restore_geometry(const QString setting, QWidget *widget); void settings_save_header_state(const QString setting, QHeaderView *header); bool settings_restore_header_state(const QString setting, QHeaderView *header); +// +QList settings_get_themes (); + #endif /* SETTINGS_H */