Code

- new: Print Colors Preview Dialog and rendermode
[inkscape.git] / src / widgets / desktop-widget.cpp
index a2f88c16d184ae07597f58a706d2744199e1d980..b63992afe9a8ff22d0528533ffc0326f20646251 100644 (file)
@@ -555,6 +555,8 @@ sp_desktop_widget_init (SPDesktopWidget *dtw)
     gtk_box_pack_start (GTK_BOX (dtw->statusbar), dtw->select_status_eventbox, TRUE, TRUE, 0);
 
     gtk_widget_show_all (dtw->vbox);
+
+    gtk_widget_grab_focus (GTK_WIDGET(dtw->canvas));
 }
 
 /**
@@ -611,12 +613,20 @@ SPDesktopWidget::updateTitle(gchar const* uri)
         if (this->desktop->number > 1) {
             if (this->desktop->getMode() == Inkscape::RENDERMODE_OUTLINE) {
                 g_string_printf (name, _("%s: %d (outline) - Inkscape"), fname, this->desktop->number);
+            } else if (this->desktop->getMode() == Inkscape::RENDERMODE_NO_FILTERS) {
+                g_string_printf (name, _("%s: %d (no filters) - Inkscape"), fname, this->desktop->number);
+            } else if (this->desktop->getMode() == Inkscape::RENDERMODE_PRINT_COLORS_PREVIEW) {
+                g_string_printf (name, _("%s: %d (print colors preview) - Inkscape"), fname, this->desktop->number);
             } else {
                 g_string_printf (name, _("%s: %d - Inkscape"), fname, this->desktop->number);
             }
         } else {
             if (this->desktop->getMode() == Inkscape::RENDERMODE_OUTLINE) {
                 g_string_printf (name, _("%s (outline) - Inkscape"), fname);
+            } else if (this->desktop->getMode() == Inkscape::RENDERMODE_NO_FILTERS) {
+                g_string_printf (name, _("%s (no filters) - Inkscape"), fname);
+            } else if (this->desktop->getMode() == Inkscape::RENDERMODE_PRINT_COLORS_PREVIEW) {
+                g_string_printf (name, _("%s (print colors preview) - Inkscape"), fname);
             } else {
                 g_string_printf (name, _("%s - Inkscape"), fname);
             }
@@ -892,7 +902,7 @@ SPDesktopWidget::shutdown()
                 _("<span weight=\"bold\" size=\"larger\">The file \"%s\" was saved with a format (%s) that may cause data loss!</span>\n\n"
                   "Do you want to save this file as an Inkscape SVG?"),
                 SP_DOCUMENT_NAME(doc),
-                Inkscape::Extension::db.get(sp_document_repr_root(doc)->attribute("inkscape:output_extension"))->get_name());
+                SP_MODULE_KEY_OUTPUT_SVG_INKSCAPE);
             // fix for bug 1767940:
             GTK_WIDGET_UNSET_FLAGS(GTK_WIDGET(GTK_MESSAGE_DIALOG(dialog)->label), GTK_CAN_FOCUS);
 
@@ -919,7 +929,7 @@ SPDesktopWidget::shutdown()
 
                 Gtk::Window *window = (Gtk::Window*)gtk_object_get_data (GTK_OBJECT(this), "window");
 
-                if (sp_file_save_dialog(*window, doc)) {
+                if (sp_file_save_dialog(*window, doc, Inkscape::Extension::FILE_SAVE_METHOD_INKSCAPE_SVG)) {
                     sp_document_unref(doc);
                 } else { // save dialog cancelled or save failed
                     sp_document_unref(doc);
@@ -1281,11 +1291,19 @@ SPDesktopWidget::setToolboxFocusTo (const gchar* label)
 void
 SPDesktopWidget::setToolboxAdjustmentValue (gchar const *id, double value)
 {
+    GtkAdjustment *a = NULL;
     gpointer hb = sp_search_by_data_recursive (aux_toolbox, (gpointer) id);
-    if (hb && GTK_IS_WIDGET(hb) && GTK_IS_SPIN_BUTTON(hb)) {
-        GtkAdjustment *a = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON(hb));
-        gtk_adjustment_set_value (a, value);
+    if (hb && GTK_IS_WIDGET(hb)) {
+        if (GTK_IS_SPIN_BUTTON(hb))
+            a = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON(hb));
+        else if (GTK_IS_RANGE(hb))
+            a = gtk_range_get_adjustment (GTK_RANGE(hb));
     }
+
+    if (a)
+        gtk_adjustment_set_value (a, value);
+    else
+        g_warning ("Could not find GtkAdjustment for %s\n", id);
 }
 
 void
@@ -1329,8 +1347,7 @@ sp_desktop_widget_new (SPNamedView *namedview)
 
     dtw->desktop = new SPDesktop();
     dtw->stub = new SPDesktopWidget::WidgetStub (dtw);
-    dtw->desktop->registerEditWidget (dtw->stub);
-    dtw->desktop->init (namedview, dtw->canvas);
+    dtw->desktop->init (namedview, dtw->canvas, dtw->stub);
     inkscape_add_desktop (dtw->desktop);
 
     // Add the shape geometry to libavoid for autorouting connectors.