Code

Remove trailing whitespace (fixes a warning)
[inkscape.git] / src / main.cpp
index eb060570f1ebd0e3d422622ec0a042e3c6ffa8bc..991a95adda6554cdfb1eee20e3f3145480c661f1 100644 (file)
@@ -28,6 +28,9 @@
 #endif
 #include "path-prefix.h"
 
+// This has to be included prior to anything that includes setjmp.h, it croaks otherwise
+#include <png.h>
+
 #include <gtk/gtkmessagedialog.h>
 
 #ifdef HAVE_IEEEFP_H
@@ -45,6 +48,7 @@
 
 #include <libxml/tree.h>
 #include <glib-object.h>
+#include <gtk/gtk.h>
 #include <gtk/gtkmain.h>
 #include <gtk/gtksignal.h>
 #include <gtk/gtkwindow.h>
@@ -68,8 +72,7 @@
 #include "svg/stringstream.h"
 
 #include "inkscape-private.h"
-#include "inkscape-stock.h"
-#include "inkscape_version.h"
+#include "inkscape-version.h"
 
 #include "sp-namedview.h"
 #include "sp-guide.h"
@@ -110,10 +113,10 @@ using Inkscape::Extension::Internal::PrintWin32;
 #endif
 
 #include "application/application.h"
-
 #include "main-cmdlineact.h"
+#include "widgets/icon.h"
+#include "ui/widget/panel.h"
 
-#include <png.h>
 #include <errno.h>
 
 enum {
@@ -167,7 +170,7 @@ static void do_export_ps_pdf(SPDocument* doc, gchar const* uri, char const *mime
 #ifdef WIN32
 static void do_export_emf(SPDocument* doc, gchar const* uri, char const *mime);
 #endif //WIN32
-static void do_query_dimension (SPDocument *doc, bool extent, NR::Dim2 const axis, const gchar *id);
+static void do_query_dimension (SPDocument *doc, bool extent, Geom::Dim2 const axis, const gchar *id);
 static void do_query_all (SPDocument *doc);
 static void do_query_all_recurse (SPObject *o);
 
@@ -562,6 +565,9 @@ main(int argc, char **argv)
     rt.setPathInfo();
 #endif
 
+    // Prevents errors like "Unable to wrap GdkPixbuf..." (in nr-filter-image.cpp for example)
+    Gtk::Main::init_gtkmm_internals();
+
     // Bug #197475
     set_extensions_env();
 
@@ -830,19 +836,20 @@ sp_main_gui(int argc, char const **argv)
     int retVal = sp_common_main( argc, argv, &fl );
     g_return_val_if_fail(retVal == 0, 1);
 
-    inkscape_gtk_stock_init();
+    // Add our icon directory to the search path for icon theme lookups.
+    gchar *usericondir = profile_path("icons");
+    gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), usericondir);
+    gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), INKSCAPE_PIXMAPDIR);
+    g_free(usericondir);
 
     gdk_event_handler_set((GdkEventFunc)snooper, NULL, NULL);
-
     Inkscape::Debug::log_display_config();
 
-    /* Set default icon */
-    gchar *filename = (gchar *) g_build_filename (INKSCAPE_APPICONDIR, "inkscape.png", NULL);
-    if (Inkscape::IO::file_test(filename, (GFileTest)(G_FILE_TEST_IS_REGULAR | G_FILE_TEST_IS_SYMLINK))) {
-        gtk_window_set_default_icon_from_file(filename, NULL);
-    }
-    g_free (filename);
-    filename = 0;
+    // Set default window icon. Obeys the theme.
+    gtk_window_set_default_icon_name("inkscape");
+    // Do things that were previously in inkscape_gtk_stock_init().
+    sp_icon_get_phys_size(GTK_ICON_SIZE_MENU);
+    Inkscape::UI::Widget::Panel::prep();
 
     gboolean create_new = TRUE;
 
@@ -922,9 +929,9 @@ void sp_process_file_list(GSList *fl)
             if (sp_query_all) {
                 do_query_all (doc);
             } else if (sp_query_width || sp_query_height) {
-                do_query_dimension (doc, true, sp_query_width? NR::X : NR::Y, sp_query_id);
+                do_query_dimension (doc, true, sp_query_width? Geom::X : Geom::Y, sp_query_id);
             } else if (sp_query_x || sp_query_y) {
-                do_query_dimension (doc, false, sp_query_x? NR::X : NR::Y, sp_query_id);
+                do_query_dimension (doc, false, sp_query_x? Geom::X : Geom::Y, sp_query_id);
             }
 
             delete doc;
@@ -948,7 +955,7 @@ int sp_main_shell(char const* command_name)
     gsize sizeLeft = buffer_size - offset;
     gchar *useme = command_line + offset;
 
-    fprintf(stdout, "Inkscape %s interactive shell mode. Type 'quit' to quit.\n", INKSCAPE_VERSION);
+    fprintf(stdout, "Inkscape %s interactive shell mode. Type 'quit' to quit.\n", Inkscape::version_string);
     fflush(stdout);
     char* linedata = 0;
     do {
@@ -1041,7 +1048,7 @@ int sp_main_console(int argc, char const **argv)
 }
 
 static void
-do_query_dimension (SPDocument *doc, bool extent, NR::Dim2 const axis, const gchar *id)
+do_query_dimension (SPDocument *doc, bool extent, Geom::Dim2 const axis, const gchar *id)
 {
     SPObject *o = NULL;
 
@@ -1191,7 +1198,7 @@ sp_do_export_png(SPDocument *doc)
             // write object bbox to area
             sp_document_ensure_up_to_date (doc);
             Geom::OptRect areaMaybe;
-            sp_item_invoke_bbox((SPItem *) o_area, areaMaybe, sp_item_i2r_affine((SPItem *) o_area), TRUE);
+            sp_item_invoke_bbox((SPItem *) o_area, areaMaybe, sp_item_i2d_affine((SPItem *) o_area), TRUE);
             if (areaMaybe) {
                 area = *areaMaybe;
             } else {
@@ -1721,7 +1728,7 @@ sp_process_args(poptContext ctx)
                 break;
             }
             case SP_ARG_VERSION: {
-                printf("Inkscape %s (%s)\n", INKSCAPE_VERSION, __DATE__);
+                printf("Inkscape %s (%s)\n", Inkscape::version_string, __DATE__);
                 exit(0);
                 break;
             }