catch errors when loading css
This commit is contained in:
13
abaddon.cpp
13
abaddon.cpp
@@ -27,8 +27,10 @@ int Abaddon::StartGTK() {
|
|||||||
|
|
||||||
// tmp css stuff
|
// tmp css stuff
|
||||||
m_css_provider = Gtk::CssProvider::create();
|
m_css_provider = Gtk::CssProvider::create();
|
||||||
m_css_provider->load_from_path("./css/main.css");
|
m_css_provider->signal_parsing_error().connect([this](const Glib::RefPtr<const Gtk::CssSection> §ion, const Glib::Error &error) {
|
||||||
Gtk::StyleContext::add_provider_for_screen(Gdk::Screen::get_default(), m_css_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
|
Gtk::MessageDialog dlg(*m_main_window, "main.css failed parsing (" + error.what() + ")", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
|
||||||
|
dlg.run();
|
||||||
|
});
|
||||||
|
|
||||||
m_main_window = std::make_unique<MainWindow>();
|
m_main_window = std::make_unique<MainWindow>();
|
||||||
m_main_window->SetAbaddon(this);
|
m_main_window->SetAbaddon(this);
|
||||||
@@ -36,6 +38,8 @@ int Abaddon::StartGTK() {
|
|||||||
m_main_window->show();
|
m_main_window->show();
|
||||||
m_main_window->UpdateComponents();
|
m_main_window->UpdateComponents();
|
||||||
|
|
||||||
|
ActionReloadCSS();
|
||||||
|
|
||||||
m_gtk_app->signal_shutdown().connect([&]() {
|
m_gtk_app->signal_shutdown().connect([&]() {
|
||||||
StopDiscord();
|
StopDiscord();
|
||||||
});
|
});
|
||||||
@@ -226,9 +230,14 @@ void Abaddon::ActionChatEditMessage(Snowflake channel_id, Snowflake id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Abaddon::ActionReloadCSS() {
|
void Abaddon::ActionReloadCSS() {
|
||||||
|
try {
|
||||||
Gtk::StyleContext::remove_provider_for_screen(Gdk::Screen::get_default(), m_css_provider);
|
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("./css/main.css");
|
||||||
Gtk::StyleContext::add_provider_for_screen(Gdk::Screen::get_default(), m_css_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
|
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);
|
||||||
|
dlg.run();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
|
Reference in New Issue
Block a user