Code

Added gnome-vfs patch by Ed Catmur so we can save/open/export to non-local
authorkidproto <kidproto@users.sourceforge.net>
Sun, 11 Feb 2007 04:32:58 +0000 (04:32 +0000)
committerkidproto <kidproto@users.sourceforge.net>
Sun, 11 Feb 2007 04:32:58 +0000 (04:32 +0000)
GNOME-VFS URIs. We could do before on commandline, but this allows us to with
the gui! Yeah! This is useful for the plans for webdav and Open Clip Art Library.

src/dialogs/export.cpp
src/main.cpp
src/ui/dialog/filedialog.cpp

index 80aaf9c9114858b2d29d55a6ae853e32ce791e69..c4bea0e1d24c6a44828564d61e73489147f5d09d 100644 (file)
@@ -1164,6 +1164,10 @@ sp_export_browse_clicked (GtkButton *button, gpointer userdata)
                                       GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
                                       NULL );
 
+#ifdef WITH_GNOME_VFS
+    gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER (fs), false);
+#endif
+
     fe = (GtkWidget *)g_object_get_data (G_OBJECT (dlg), "filename");
 
     sp_transientize (fs);
index f7e9cdadc64b5fb2f29544a4c8275d3ab5a49713..877f4df9f1f1814513a1fb2c18ce36b6a26e2bfd 100644 (file)
@@ -135,6 +135,7 @@ enum {
     SP_ARG_EXPORT_FONT,
     SP_ARG_EXPORT_BBOX_PAGE,
     SP_ARG_EXTENSIONDIR,
+    SP_ARG_FIT_PAGE_TO_DRAWING,
     SP_ARG_SLIDESHOW,
     SP_ARG_QUERY_X,
     SP_ARG_QUERY_Y,
@@ -320,6 +321,11 @@ struct poptOption options[] = {
      N_("Export files with the bounding box set to the page size (EPS)"),
      NULL},
 
+    {"fit-page-to-drawing", 'S',
+     POPT_ARG_NONE, &sp_export_bbox_page, SP_ARG_FIT_PAGE_TO_DRAWING,
+     N_("Fits page to drawing and saves changes in place"),
+     NULL},
+
     {"query-x", 'X',
      POPT_ARG_NONE, &sp_query_x, SP_ARG_QUERY_X,
      // TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
index 1b3467847200291e101b858d763e37bce7e936e9..b51793d126b884356f275a61c381164bbf1d8af6 100644 (file)
@@ -802,6 +802,10 @@ private:
 void FileOpenDialogImpl::updatePreviewCallback()
 {
     Glib::ustring fileName = get_preview_filename();
+#ifdef WITH_GNOME_VFS
+    if (fileName.length() < 1)
+        fileName = get_preview_uri();
+#endif
     if (fileName.length() < 1)
         return;
     svgPreview.set(fileName, dialogType);
@@ -880,6 +884,10 @@ FileOpenDialogImpl::FileOpenDialogImpl(const Glib::ustring &dir,
     /* And also Multiple Files */
     set_select_multiple(true);
 
+#ifdef WITH_GNOME_VFS
+    set_local_only(false);
+#endif
+
     /* Initalize to Autodetect */
     extension = NULL;
     /* No filename to start out with */
@@ -973,6 +981,10 @@ FileOpenDialogImpl::show()
             extension = extensionMap[gtk_file_filter_get_name(filter)];
             }
         myFilename = get_filename();
+#ifdef WITH_GNOME_VFS
+        if (myFilename.length() < 1)
+            myFilename = get_uri();
+#endif
         return TRUE;
         }
     else
@@ -1010,6 +1022,10 @@ FileOpenDialogImpl::getFilename (void)
 std::vector<Glib::ustring>FileOpenDialogImpl::getFilenames()
 {    
     std::vector<Glib::ustring> result = get_filenames();
+#ifdef WITH_GNOME_VFS
+    if (result.empty())
+        result = get_uris();
+#endif
     return result;
 }
 
@@ -1140,6 +1156,10 @@ private:
 void FileSaveDialogImpl::updatePreviewCallback()
 {
     Glib::ustring fileName = get_preview_filename();
+#ifdef WITH_GNOME_VFS
+    if (fileName.length() < 1)
+        fileName = get_preview_uri();
+#endif
     if (!fileName.c_str())
         return;
     bool retval = svgPreview.set(fileName, dialogType);
@@ -1255,6 +1275,10 @@ FileSaveDialogImpl::FileSaveDialogImpl(const Glib::ustring &dir,
     /* One file at a time */
     set_select_multiple(false);
 
+#ifdef WITH_GNOME_VFS
+    set_local_only(false);
+#endif
+
     /* Initalize to Autodetect */
     extension = NULL;
     /* No filename to start out with */
@@ -1387,6 +1411,10 @@ FileSaveDialogImpl::show()
             extension = type.extension;
             }
         myFilename = get_filename();
+#ifdef WITH_GNOME_VFS
+        if (myFilename.length() < 1)
+            myFilename = get_uri();
+#endif
 
         /*
 
@@ -1698,6 +1726,10 @@ private:
 void FileExportDialogImpl::updatePreviewCallback()
 {
     Glib::ustring fileName = get_preview_filename();
+#ifdef WITH_GNOME_VFS
+    if (fileName.length() < 1)
+        fileName = get_preview_uri();
+#endif
     if (!fileName.c_str())
         return;
     bool retval = svgPreview.set(fileName, dialogType);
@@ -1820,6 +1852,10 @@ FileExportDialogImpl::FileExportDialogImpl(const Glib::ustring &dir,
     /* One file at a time */
     set_select_multiple(false);
 
+#ifdef WITH_GNOME_VFS
+    set_local_only(false);
+#endif
+
     /* Initalize to Autodetect */
     extension = NULL;
     /* No filename to start out with */
@@ -2035,6 +2071,10 @@ FileExportDialogImpl::show()
             extension = type.extension;
             }
         myFilename = get_filename();
+#ifdef WITH_GNOME_VFS
+        if (myFilename.length() < 1)
+            myFilename = get_uri();
+#endif
 
         /*