forked from OpenGamers/abaddon
reload settings + custom css path
This commit is contained in:
parent
387dd31039
commit
712eba816e
11
abaddon.cpp
11
abaddon.cpp
@ -66,7 +66,7 @@ int Abaddon::StartGTK() {
|
||||
// tmp css stuff
|
||||
m_css_provider = Gtk::CssProvider::create();
|
||||
m_css_provider->signal_parsing_error().connect([this](const Glib::RefPtr<const Gtk::CssSection> §ion, const Glib::Error &error) {
|
||||
Gtk::MessageDialog dlg(*m_main_window, "main.css failed parsing (" + error.what() + ")", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
|
||||
Gtk::MessageDialog dlg(*m_main_window, "css failed parsing (" + error.what() + ")", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
|
||||
dlg.run();
|
||||
});
|
||||
|
||||
@ -99,6 +99,7 @@ int Abaddon::StartGTK() {
|
||||
m_main_window->signal_action_reload_css().connect(sigc::mem_fun(*this, &Abaddon::ActionReloadCSS));
|
||||
m_main_window->signal_action_join_guild().connect(sigc::mem_fun(*this, &Abaddon::ActionJoinGuildDialog));
|
||||
m_main_window->signal_action_set_status().connect(sigc::mem_fun(*this, &Abaddon::ActionSetStatus));
|
||||
m_main_window->signal_action_reload_settings().connect(sigc::mem_fun(*this, &Abaddon::ActionReloadSettings));
|
||||
|
||||
m_main_window->signal_action_show_user_menu().connect(sigc::mem_fun(*this, &Abaddon::ShowUserMenu));
|
||||
|
||||
@ -454,13 +455,17 @@ void Abaddon::ActionReactionRemove(Snowflake id, const Glib::ustring ¶m) {
|
||||
m_discord.RemoveReaction(id, param);
|
||||
}
|
||||
|
||||
void Abaddon::ActionReloadSettings() {
|
||||
m_settings.Reload();
|
||||
}
|
||||
|
||||
void Abaddon::ActionReloadCSS() {
|
||||
try {
|
||||
Gtk::StyleContext::remove_provider_for_screen(Gdk::Screen::get_default(), m_css_provider);
|
||||
m_css_provider->load_from_path("./css/main.css");
|
||||
m_css_provider->load_from_path(m_settings.GetMainCSS());
|
||||
Gtk::StyleContext::add_provider_for_screen(Gdk::Screen::get_default(), m_css_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||
} catch (Glib::Error &e) {
|
||||
Gtk::MessageDialog dlg(*m_main_window, "main.css failed to load (" + e.what() + ")", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
|
||||
Gtk::MessageDialog dlg(*m_main_window, "css failed to load (" + e.what() + ")", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
|
||||
dlg.run();
|
||||
}
|
||||
}
|
||||
|
@ -46,6 +46,7 @@ public:
|
||||
void ActionReactionAdd(Snowflake id, const Glib::ustring ¶m);
|
||||
void ActionReactionRemove(Snowflake id, const Glib::ustring ¶m);
|
||||
|
||||
void ActionReloadSettings();
|
||||
void ActionReloadCSS();
|
||||
|
||||
ImageManager &GetImageManager();
|
||||
|
@ -14,6 +14,10 @@ SettingsManager::SettingsManager(std::string filename)
|
||||
m_ok = rc == SI_OK;
|
||||
}
|
||||
|
||||
void SettingsManager::Reload() {
|
||||
m_ok = m_ini.LoadFile(m_filename.c_str()) == SI_OK;
|
||||
}
|
||||
|
||||
std::string SettingsManager::GetSettingString(const std::string §ion, const std::string &key, std::string fallback) const {
|
||||
return m_ini.GetValue(section.c_str(), key.c_str(), fallback.c_str());
|
||||
}
|
||||
@ -65,3 +69,7 @@ int SettingsManager::GetCacheHTTPConcurrency() const {
|
||||
bool SettingsManager::GetPrefetch() const {
|
||||
return GetSettingBool("discord", "prefetch", false);
|
||||
}
|
||||
|
||||
std::string SettingsManager::GetMainCSS() const {
|
||||
return GetSettingString("gui", "css", "./css/main.css");
|
||||
}
|
||||
|
@ -6,6 +6,7 @@
|
||||
class SettingsManager {
|
||||
public:
|
||||
SettingsManager(std::string filename);
|
||||
void Reload();
|
||||
|
||||
void Close();
|
||||
bool GetUseMemoryDB() const;
|
||||
@ -16,6 +17,7 @@ public:
|
||||
std::string GetLinkColor() const;
|
||||
int GetCacheHTTPConcurrency() const;
|
||||
bool GetPrefetch() const;
|
||||
std::string GetMainCSS() const;
|
||||
|
||||
bool IsValid() const;
|
||||
|
||||
|
@ -28,7 +28,9 @@ MainWindow::MainWindow()
|
||||
|
||||
m_menu_file.set_label("File");
|
||||
m_menu_file.set_submenu(m_menu_file_sub);
|
||||
m_menu_file_reload_settings.set_label("Reload Settings");
|
||||
m_menu_file_reload_css.set_label("Reload CSS");
|
||||
m_menu_file_sub.append(m_menu_file_reload_settings);
|
||||
m_menu_file_sub.append(m_menu_file_reload_css);
|
||||
|
||||
m_menu_bar.append(m_menu_file);
|
||||
@ -58,6 +60,10 @@ MainWindow::MainWindow()
|
||||
m_signal_action_set_status.emit();
|
||||
});
|
||||
|
||||
m_menu_file_reload_settings.signal_activate().connect([this] {
|
||||
m_signal_action_reload_settings.emit();
|
||||
});
|
||||
|
||||
m_content_box.set_hexpand(true);
|
||||
m_content_box.set_vexpand(true);
|
||||
|
||||
@ -258,3 +264,7 @@ MainWindow::type_signal_action_set_status MainWindow::signal_action_set_status()
|
||||
MainWindow::type_signal_action_show_user_menu MainWindow::signal_action_show_user_menu() {
|
||||
return m_signal_action_show_user_menu;
|
||||
}
|
||||
|
||||
MainWindow::type_signal_action_reload_settings MainWindow::signal_action_reload_settings() {
|
||||
return m_signal_action_reload_settings;
|
||||
}
|
||||
|
@ -41,6 +41,7 @@ public:
|
||||
typedef sigc::signal<void> type_signal_action_join_guild;
|
||||
typedef sigc::signal<void> type_signal_action_set_status;
|
||||
typedef sigc::signal<void, const GdkEvent *, Snowflake, Snowflake> type_signal_action_show_user_menu;
|
||||
typedef sigc::signal<void> type_signal_action_reload_settings;
|
||||
|
||||
type_signal_action_connect signal_action_connect();
|
||||
type_signal_action_disconnect signal_action_disconnect();
|
||||
@ -49,6 +50,7 @@ public:
|
||||
type_signal_action_join_guild signal_action_join_guild();
|
||||
type_signal_action_set_status signal_action_set_status();
|
||||
type_signal_action_show_user_menu signal_action_show_user_menu();
|
||||
type_signal_action_reload_settings signal_action_reload_settings();
|
||||
|
||||
protected:
|
||||
type_signal_action_connect m_signal_action_connect;
|
||||
@ -58,6 +60,7 @@ protected:
|
||||
type_signal_action_join_guild m_signal_action_join_guild;
|
||||
type_signal_action_set_status m_signal_action_set_status;
|
||||
type_signal_action_show_user_menu m_signal_action_show_user_menu;
|
||||
type_signal_action_reload_settings m_signal_action_reload_settings;
|
||||
|
||||
protected:
|
||||
Gtk::Box m_main_box;
|
||||
@ -80,5 +83,6 @@ protected:
|
||||
|
||||
Gtk::MenuItem m_menu_file;
|
||||
Gtk::Menu m_menu_file_sub;
|
||||
Gtk::MenuItem m_menu_file_reload_settings;
|
||||
Gtk::MenuItem m_menu_file_reload_css;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user