diff --git a/src/inkview.cpp b/src/inkview.cpp
index 51b54bb6d8d3e5c143c0d7e12ad5ba93e27dbc71..c151991dd8f469721d6c6b6bd9176f944bc0fbf0 100644 (file)
--- a/src/inkview.cpp
+++ b/src/inkview.cpp
#include "svg-view-widget.h"
#ifdef WITH_INKJAR
-#include "inkjar/jar.h"
+#include "io/inkjar.h"
#endif
#include "inkscape-private.h"
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:
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;
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;
LIBXML_TEST_VERSION
Inkscape::GC::init();
- Inkscape::Preferences::loadSkeleton();
+ Inkscape::Preferences::get(); // ensure preferences are initialized
gtk_init (&argc, (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++) {
}
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
}
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);
}
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;
}
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;
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);
- if (ss->doc) {
- delete ss->doc;
- }
+ reinterpret_cast<SPSVGView*>(SP_VIEW_WIDGET_VIEW (ss->view))->setDocument (doc);
ss->doc = doc;
ss->current = current;
}
sp_svgview_set_document(ss, doc, current);
sp_svgview_normal_cursor(ss);
-}
+}
static void
sp_svgview_show_prev (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);
}
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);
}
#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);
}
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