Code

Make curvature work again by fixing a minor omission
[inkscape.git] / src / inkview.cpp
index 51b54bb6d8d3e5c143c0d7e12ad5ba93e27dbc71..5cfde2c814a793d1365d32549300ff58394f4902 100644 (file)
@@ -113,14 +113,14 @@ int sp_main_gui (int, char const**) { return 0; }
 int sp_main_console (int, char const**) { return 0; }
 
 static int
-sp_svgview_main_delete (GtkWidget *widget, GdkEvent *event, struct SPSlideShow *ss)
+sp_svgview_main_delete (GtkWidget */*widget*/, GdkEvent */*event*/, struct SPSlideShow */*ss*/)
 {
     gtk_main_quit ();
     return FALSE;
 }
 
 static int
-sp_svgview_main_key_press (GtkWidget *widget, GdkEventKey *event, struct SPSlideShow *ss)
+sp_svgview_main_key_press (GtkWidget */*widget*/, GdkEventKey *event, struct SPSlideShow *ss)
 {
     switch (event->keyval) {
     case GDK_Up:
@@ -178,6 +178,9 @@ main (int argc, const char **argv)
        usage();
     }
 
+    // Prevents errors like "Unable to wrap GdkPixbuf..." (in nr-filter-image.cpp for example)
+    Gtk::Main::init_gtkmm_internals();
+
     Gtk::Main main_instance (&argc, const_cast<char ***>(&argv));
 
     struct SPSlideShow ss;
@@ -186,20 +189,20 @@ main (int argc, const char **argv)
         num_parsed_options = 0;
 
     // the list of arguments is in the net line
-    while ((option = getopt(argc, (char* const* )argv, "t:")) != -1) 
+    while ((option = getopt(argc, (char* const* )argv, "t:")) != -1)
     {
         switch(option) {
            case 't': // for timer
                 // fprintf(stderr, "set timer arg %s\n", optarg );
-               ss.timer = atoi(optarg);        
+               ss.timer = atoi(optarg);
                num_parsed_options += 2; // 2 because of flag + option
                 break;
             case '?':
             default:
                usage();
-        }      
+        }
     }
-   
+
     GtkWidget *w;
     int i;
 
@@ -210,7 +213,7 @@ main (int argc, const char **argv)
     LIBXML_TEST_VERSION
 
     Inkscape::GC::init();
-    Inkscape::Preferences::loadSkeleton();
+    Inkscape::Preferences::get(); // ensure preferences are initialized
 
     gtk_init (&argc, (char ***) &argv);
 
@@ -234,8 +237,7 @@ main (int argc, const char **argv)
     ss.fullscreen = false;
 
     inkscape = (Inkscape::Application *)g_object_new (SP_TYPE_INKSCAPE, NULL);
-    Inkscape::Preferences::load();
-    
+
     // starting at where the commandline options stopped parsing because
     // we want all the files to be in the list
     for (i = num_parsed_options + 1 ; i < argc; i++) {
@@ -295,11 +297,11 @@ main (int argc, const char **argv)
                }
 
                ss.slides[ss.length++] = strdup (argv[i]);
-               ss.doc = sp_document_new (ss.slides[ss.current], TRUE, false);
 
-               if (!ss.doc && ++ss.current >= ss.length) {
-                   /* No loadable documents */
-                   return 1;
+                if (!ss.doc) {
+                    ss.doc = sp_document_new (ss.slides[ss.current], TRUE, false);
+                    if (!ss.doc)
+                        ++ss.current;
                }
 #ifdef WITH_INKJAR
            }
@@ -321,10 +323,11 @@ main (int argc, const char **argv)
     g_signal_connect (G_OBJECT (w), "delete_event", (GCallback) sp_svgview_main_delete, &ss);
     g_signal_connect (G_OBJECT (w), "key_press_event", (GCallback) sp_svgview_main_key_press, &ss);
 
-    ss.view = sp_svg_view_widget_new (ss.doc);
-    sp_svg_view_widget_set_resize (SP_SVG_VIEW_WIDGET (ss.view), FALSE, sp_document_width (ss.doc), sp_document_height (ss.doc));
     sp_document_ensure_up_to_date (ss.doc);
+    ss.view = sp_svg_view_widget_new (ss.doc);
     sp_document_unref (ss.doc);
+    sp_svg_view_widget_set_resize (SP_SVG_VIEW_WIDGET (ss.view), FALSE,
+                                   sp_document_width (ss.doc), sp_document_height (ss.doc));
     gtk_widget_show (ss.view);
     gtk_container_add (GTK_CONTAINER (w), ss.view);
 
@@ -336,7 +339,7 @@ main (int argc, const char **argv)
 }
 
 static int
-sp_svgview_ctrlwin_delete (GtkWidget *widget, GdkEvent *event, void *data)
+sp_svgview_ctrlwin_delete (GtkWidget */*widget*/, GdkEvent */*event*/, void */*data*/)
 {
     ctrlwin = NULL;
     return FALSE;
@@ -386,28 +389,28 @@ sp_svgview_control_show (struct SPSlideShow *ss)
 }
 
 static int
-sp_svgview_show_next_cb (GtkWidget *widget, void *data)
+sp_svgview_show_next_cb (GtkWidget */*widget*/, void *data)
 {
     sp_svgview_show_next(static_cast<struct SPSlideShow *>(data));
     return FALSE;
 }
 
 static int
-sp_svgview_show_prev_cb (GtkWidget *widget, void *data)
+sp_svgview_show_prev_cb (GtkWidget */*widget*/, void *data)
 {
     sp_svgview_show_prev(static_cast<struct SPSlideShow *>(data));
     return FALSE;
 }
 
 static int
-sp_svgview_goto_first_cb (GtkWidget *widget, void *data)
+sp_svgview_goto_first_cb (GtkWidget */*widget*/, void *data)
 {
     sp_svgview_goto_first(static_cast<struct SPSlideShow *>(data));
     return FALSE;
 }
 
 static int
-sp_svgview_goto_last_cb (GtkWidget *widget, void *data)
+sp_svgview_goto_last_cb (GtkWidget */*widget*/, void *data)
 {
     sp_svgview_goto_last(static_cast<struct SPSlideShow *>(data));
     return FALSE;
@@ -441,8 +444,8 @@ static void
 sp_svgview_set_document(struct SPSlideShow *ss, SPDocument *doc, int current)
 {
     if (doc && doc != ss->doc) {
-        reinterpret_cast<SPSVGView*>(SP_VIEW_WIDGET_VIEW (ss->view))->setDocument (doc);
         sp_document_ensure_up_to_date (doc);
+        reinterpret_cast<SPSVGView*>(SP_VIEW_WIDGET_VIEW (ss->view))->setDocument (doc);
         if (ss->doc) {
             delete ss->doc;
         }
@@ -465,7 +468,7 @@ sp_svgview_show_next (struct SPSlideShow *ss)
     sp_svgview_set_document(ss, doc, current);
 
     sp_svgview_normal_cursor(ss);
-} 
+}
 
 static void
 sp_svgview_show_prev (struct SPSlideShow *ss)
@@ -491,7 +494,7 @@ sp_svgview_goto_first (struct SPSlideShow *ss)
     SPDocument *doc = NULL;
     int current = 0;
     while ( !doc && (current < ss->length - 1)) {
-        if (current == ss->current) 
+        if (current == ss->current)
             break;
         doc = sp_document_new (ss->slides[current++], TRUE, false);
     }
@@ -509,7 +512,7 @@ sp_svgview_goto_last (struct SPSlideShow *ss)
     SPDocument *doc = NULL;
     int current = ss->length - 1;
     while (!doc && (current >= 0)) {
-        if (current == ss->current) 
+        if (current == ss->current)
             break;
         doc = sp_document_new (ss->slides[current--], TRUE, false);
     }
@@ -543,9 +546,6 @@ static void usage()
 #ifdef WITH_INKJAR
            " or archives of SVGs (.sxw, .jar)"
 #endif
-           "\n\n"
-           "Available options:\n"
-           "\t-t\t\tTimer for automatically changing slides in seconds.\n"
            "\n");
     exit(1);
 }
@@ -557,7 +557,6 @@ void inkscape_ref (void) {}
 void inkscape_unref (void) {}
 void inkscape_add_document (SPDocument *document) {}
 void inkscape_remove_document (SPDocument *document) {}
-Inkscape::XML::Node *inkscape_get_repr (Inkscape::Application *inkscape, const gchar *key) {return NULL;}
 #endif