From 35830f456cadaecf8b8e3944e3031a1a93f6cb41 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Wed, 3 Aug 2016 15:29:38 +0200 Subject: Removed unused includes, decreased compilation time. Once again (bzr r15034) --- src/inkscape.cpp | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'src/inkscape.cpp') diff --git a/src/inkscape.cpp b/src/inkscape.cpp index 888a64430..a88ef5947 100644 --- a/src/inkscape.cpp +++ b/src/inkscape.cpp @@ -15,7 +15,7 @@ */ #ifdef HAVE_CONFIG_H -# include "config.h" +#include #endif #include @@ -40,14 +40,10 @@ # include #endif -#include #include #include #include #include -#include -#include -#include #include "desktop.h" @@ -58,17 +54,12 @@ #include "extension/output.h" #include "extension/system.h" #include "helper/action-context.h" -#include "helper/sp-marshal.h" #include "inkscape.h" #include "io/sys.h" -#include "layer-model.h" #include "message-stack.h" -#include "preferences.h" #include "resource-manager.h" -#include "selection.h" #include "ui/tools/tool-base.h" #include "ui/dialog/debug.h" -#include "xml/repr.h" /* Backbones of configuration xml data */ #include "menus-skeleton.h" -- cgit v1.2.3 From 5198e76ee434bd68985181d26900d71c1675cc63 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Tue, 9 Aug 2016 12:32:55 +0100 Subject: Move some main functions to Application class (bzr r15048) --- src/inkscape.cpp | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) (limited to 'src/inkscape.cpp') diff --git a/src/inkscape.cpp b/src/inkscape.cpp index a88ef5947..48b921752 100644 --- a/src/inkscape.cpp +++ b/src/inkscape.cpp @@ -22,6 +22,10 @@ #include +#include + +#include +#include #include #include "debug/simple-event.h" #include "debug/event-tracker.h" @@ -57,6 +61,7 @@ #include "inkscape.h" #include "io/sys.h" #include "message-stack.h" +#include "path-prefix.h" #include "resource-manager.h" #include "ui/tools/tool-base.h" #include "ui/dialog/debug.h" @@ -379,6 +384,103 @@ void Application::argv0(char const* argv) _argv0 = g_strdup(argv); } +/** + * \brief Add our icon theme to the search path + */ +void +Application::add_icon_theme() +{ + // Get list of the possible folders containing the theme + auto dataDirs = Glib::get_system_data_dirs(); + dataDirs.insert(dataDirs.begin(), Glib::get_user_data_dir()); + + auto icon_theme = Gtk::IconTheme::get_default(); + + for (auto it : dataDirs) + { + std::vector listing; + listing.push_back(it); + listing.push_back("inkscape"); + listing.push_back("icons"); + auto dir = Glib::build_filename(listing); + icon_theme->append_search_path(dir); + } + + // Add our icon directory to the search path for icon theme lookups. + auto const usericondir = Inkscape::Application::profile_path("icons"); + icon_theme->append_search_path(usericondir); + icon_theme->append_search_path(INKSCAPE_PIXMAPDIR); +#ifdef INKSCAPE_THEMEDIR + icon_theme->append_search_path(INKSCAPE_THEMEDIR); + icon_theme->rescan_if_needed(); +#endif + g_free(usericondir); +} + +/** + * \brief Add our CSS style sheets + */ +void +Application::add_style_sheet() +{ + // Add style sheet (GTK3) + auto const screen = Gdk::Screen::get_default(); + + Glib::ustring inkscape_style = INKSCAPE_UIDIR; + inkscape_style += "/style.css"; + // std::cout << "CSS Stylesheet Inkscape: " << inkscape_style << std::endl; + + if (Glib::file_test(inkscape_style, Glib::FILE_TEST_EXISTS)) { + auto provider = Gtk::CssProvider::create(); + + // From 3.16, throws an error which we must catch. + try { + provider->load_from_path (inkscape_style); + } +#if GTK_CHECK_VERSION(3,16,0) + // Gtk::CssProviderError not defined until 3.16. + catch (const Gtk::CssProviderError& ex) + { + std::cerr << "CSSProviderError::load_from_path(): failed to load: " << inkscape_style + << "\n (" << ex.what() << ")" << std::endl; + } +#else + catch (...) + {} +#endif + + Gtk::StyleContext::add_provider_for_screen (screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + } else { + std::cerr << "sp_main_gui: Cannot find default style file:\n (" << inkscape_style + << ")" << std::endl; + } + + Glib::ustring user_style = Inkscape::Application::profile_path("ui/style.css"); + // std::cout << "CSS Stylesheet User: " << user_style << std::endl; + + if (Glib::file_test(user_style, Glib::FILE_TEST_EXISTS)) { + auto provider2 = Gtk::CssProvider::create(); + + // From 3.16, throws an error which we must catch. + try { + provider2->load_from_path (user_style); + } +#if GTK_CHECK_VERSION(3,16,0) + // Gtk::CssProviderError not defined until 3.16. + catch (const Gtk::CssProviderError& ex) + { + std::cerr << "CSSProviderError::load_from_path(): failed to load: " << user_style + << "\n (" << ex.what() << ")" << std::endl; + } +#else + catch (...) + {} +#endif + + Gtk::StyleContext::add_provider_for_screen (screen, provider2, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + } + +} /* \brief Constructor for the application. * Creates a new Inkscape::Application. * @@ -423,9 +525,12 @@ Application::Application(const char* argv, bool use_gui) : } if (use_gui) { + add_icon_theme(); + add_style_sheet(); load_menus(); Inkscape::DeviceManager::getManager().loadConfig(); } + Inkscape::ResourceManager::getManager(); /* set language for user interface according setting in preferences */ -- cgit v1.2.3 From 7f779f28e67eac1653e0f7751bb3f224b67894c7 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 15 Aug 2016 22:55:21 +0200 Subject: Fix a bunch of errors as reported at http://www.viva64.com/en/b/0419/ (bzr r15059) --- src/inkscape.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/inkscape.cpp') diff --git a/src/inkscape.cpp b/src/inkscape.cpp index 48b921752..6f8ea4324 100644 --- a/src/inkscape.cpp +++ b/src/inkscape.cpp @@ -656,6 +656,7 @@ Application::crash_handler (int /*signum*/) repr = doc->getReprRoot(); if (doc->isModifiedSinceSave()) { const gchar *docname; + char n[64]; /* originally, the document name was retrieved from * the sodipod:docname attribute */ @@ -671,7 +672,6 @@ Application::crash_handler (int /*signum*/) if (*d=='.') dots++; } if (*d=='.' && d>docname && dots==2) { - char n[64]; size_t len = MIN (d - docname, 63); memcpy (n, docname, len); n[len] = '\0'; -- cgit v1.2.3