diff options
| author | Maximilian Albert <maximilian.albert@gmail.com> | 2009-08-09 14:23:52 +0000 |
|---|---|---|
| committer | cilix42 <cilix42@users.sourceforge.net> | 2009-08-09 14:23:52 +0000 |
| commit | 606ebb35498c3d750bb2906954195baaa0fbcad6 (patch) | |
| tree | a4b40cd970efc83525392a6a8164e2e6789029b8 /src/ui | |
| parent | Adding a Tinfoil bump, removing NR from Non realistic shaders names (diff) | |
| download | inkscape-606ebb35498c3d750bb2906954195baaa0fbcad6.tar.gz inkscape-606ebb35498c3d750bb2906954195baaa0fbcad6.zip | |
Fix remaining glitches in the behaviour of the Save dialogs (w.r.t. remembering the last file type and folder). As part of the cleanup inkscape:output_extension was removed, too.
(bzr r8454)
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/dialog/filedialog.cpp | 6 | ||||
| -rw-r--r-- | src/ui/dialog/filedialog.h | 6 | ||||
| -rw-r--r-- | src/ui/dialog/filedialogimpl-gtkmm.cpp | 18 | ||||
| -rw-r--r-- | src/ui/dialog/filedialogimpl-gtkmm.h | 8 | ||||
| -rw-r--r-- | src/ui/dialog/filedialogimpl-win32.cpp | 5 | ||||
| -rw-r--r-- | src/ui/dialog/filedialogimpl-win32.h | 2 | ||||
| -rw-r--r-- | src/ui/view/edit-widget.cpp | 2 |
7 files changed, 25 insertions, 22 deletions
diff --git a/src/ui/dialog/filedialog.cpp b/src/ui/dialog/filedialog.cpp index b1385195f..8e372c394 100644 --- a/src/ui/dialog/filedialog.cpp +++ b/src/ui/dialog/filedialog.cpp @@ -110,12 +110,12 @@ FileSaveDialog *FileSaveDialog::create(Gtk::Window& parentWindow, const char *title, const Glib::ustring &default_key, const gchar *docTitle, - const bool save_copy) + const Inkscape::Extension::FileSaveMethod save_method) { #ifdef WIN32 - FileSaveDialog *dialog = new FileSaveDialogImplWin32(parentWindow, path, fileTypes, title, default_key, docTitle, save_copy); + FileSaveDialog *dialog = new FileSaveDialogImplWin32(parentWindow, path, fileTypes, title, default_key, docTitle, save_method); #else - FileSaveDialog *dialog = new FileSaveDialogImplGtk(parentWindow, path, fileTypes, title, default_key, docTitle, save_copy); + FileSaveDialog *dialog = new FileSaveDialogImplGtk(parentWindow, path, fileTypes, title, default_key, docTitle, save_method); #endif return dialog; } diff --git a/src/ui/dialog/filedialog.h b/src/ui/dialog/filedialog.h index 6eab75a5b..f7be86ef3 100644 --- a/src/ui/dialog/filedialog.h +++ b/src/ui/dialog/filedialog.h @@ -21,6 +21,10 @@ #include <set> #include <gtkmm.h> +#include "extension/system.h" + +class SPDocument; + namespace Inkscape { namespace Extension { class Extension; @@ -164,7 +168,7 @@ public: const char *title, const Glib::ustring &default_key, const gchar *docTitle, - const bool save_copy); + const Inkscape::Extension::FileSaveMethod save_method); /** diff --git a/src/ui/dialog/filedialogimpl-gtkmm.cpp b/src/ui/dialog/filedialogimpl-gtkmm.cpp index 53faa075a..3e681bd3b 100644 --- a/src/ui/dialog/filedialogimpl-gtkmm.cpp +++ b/src/ui/dialog/filedialogimpl-gtkmm.cpp @@ -884,9 +884,10 @@ FileSaveDialogImplGtk::FileSaveDialogImplGtk( Gtk::Window &parentWindow, const Glib::ustring &title, const Glib::ustring &/*default_key*/, const gchar* docTitle, - const bool save_copy) : - FileDialogBaseGtk(parentWindow, title, Gtk::FILE_CHOOSER_ACTION_SAVE, fileTypes, save_copy ? "/dialogs/save_copy" : "/dialogs/save_as"), - is_copy(save_copy) + const Inkscape::Extension::FileSaveMethod save_method) : + FileDialogBaseGtk(parentWindow, title, Gtk::FILE_CHOOSER_ACTION_SAVE, fileTypes, + (save_method == Inkscape::Extension::FILE_SAVE_METHOD_SAVE_COPY) ? "/dialogs/save_copy" : "/dialogs/save_as"), + save_method(save_method) { FileSaveDialog::myDocTitle = docTitle; @@ -924,7 +925,7 @@ FileSaveDialogImplGtk::FileSaveDialogImplGtk( Gtk::Window &parentWindow, //###### Do we want the .xxx extension automatically added? Inkscape::Preferences *prefs = Inkscape::Preferences::get(); fileTypeCheckbox.set_label(Glib::ustring(_("Append filename extension automatically"))); - if (save_copy) { + if (save_method == Inkscape::Extension::FILE_SAVE_METHOD_SAVE_COPY) { fileTypeCheckbox.set_active(prefs->getBool("/dialogs/save_copy/append_extension", true)); } else { fileTypeCheckbox.set_active(prefs->getBool("/dialogs/save_as/append_extension", true)); @@ -1115,18 +1116,13 @@ FileSaveDialogImplGtk::show() Inkscape::Preferences *prefs = Inkscape::Preferences::get(); // Store changes of the "Append filename automatically" checkbox back to preferences. - if (is_copy) { + if (save_method == Inkscape::Extension::FILE_SAVE_METHOD_SAVE_COPY) { prefs->setBool("/dialogs/save_copy/append_extension", fileTypeCheckbox.get_active()); } else { prefs->setBool("/dialogs/save_as/append_extension", fileTypeCheckbox.get_active()); } - // Store the last used save-as filetype to preferences. - if (is_copy) { - prefs->setString("/dialogs/save_copy/default", ( extension != NULL ? extension->get_id() : "" )); - } else { - prefs->setString("/dialogs/save_as/default", ( extension != NULL ? extension->get_id() : "" )); - } + Inkscape::Extension::store_file_extension_in_prefs ((extension != NULL ? extension->get_id() : "" ), save_method); cleanup( true ); diff --git a/src/ui/dialog/filedialogimpl-gtkmm.h b/src/ui/dialog/filedialogimpl-gtkmm.h index 2a37aed2b..ac868fecc 100644 --- a/src/ui/dialog/filedialogimpl-gtkmm.h +++ b/src/ui/dialog/filedialogimpl-gtkmm.h @@ -18,6 +18,7 @@ #define __FILE_DIALOGIMPL_H__ #include "filedialog.h" +#include "extension/system.h" //General includes #include <unistd.h> @@ -286,7 +287,7 @@ public: const Glib::ustring &title, const Glib::ustring &default_key, const gchar* docTitle, - const bool save_copy); + const Inkscape::Extension::FileSaveMethod save_method); virtual ~FileSaveDialogImplGtk(); @@ -303,9 +304,10 @@ private: void updateNameAndExtension(); /** - * Whether the dialog was invoked by "Save as ..." or "Save a copy ..." + * The file save method (essentially whether the dialog was invoked by "Save as ..." or "Save a + * copy ..."), which is used to determine file extensions and save paths. */ - bool is_copy; + Inkscape::Extension::FileSaveMethod save_method; /** * Fix to allow the user to type the file name diff --git a/src/ui/dialog/filedialogimpl-win32.cpp b/src/ui/dialog/filedialogimpl-win32.cpp index c703d3c75..690c74004 100644 --- a/src/ui/dialog/filedialogimpl-win32.cpp +++ b/src/ui/dialog/filedialogimpl-win32.cpp @@ -1498,8 +1498,9 @@ FileSaveDialogImplWin32::FileSaveDialogImplWin32(Gtk::Window &parent, const char *title, const Glib::ustring &/*default_key*/, const char *docTitle, - const bool save_copy) : - FileDialogBaseWin32(parent, dir, title, fileTypes, save_copy ? "dialogs.save_copy" : "dialogs.save_as"), + const FileSaveMethod save_method) : + FileDialogBaseWin32(parent, dir, title, fileTypes, + (save_method == FILE_SAVE_METHOD_SAVE_COPY) ? "dialogs.save_copy" : "dialogs.save_as"), _title_label(NULL), _title_edit(NULL) { diff --git a/src/ui/dialog/filedialogimpl-win32.h b/src/ui/dialog/filedialogimpl-win32.h index f74d9fccf..1f4a417f2 100644 --- a/src/ui/dialog/filedialogimpl-win32.h +++ b/src/ui/dialog/filedialogimpl-win32.h @@ -311,7 +311,7 @@ public: const char *title, const Glib::ustring &default_key, const char *docTitle, - const bool save_copy); + const FileSaveMethod save_method); /// Destructor virtual ~FileSaveDialogImplWin32(); diff --git a/src/ui/view/edit-widget.cpp b/src/ui/view/edit-widget.cpp index 756f4df73..1d319f97f 100644 --- a/src/ui/view/edit-widget.cpp +++ b/src/ui/view/edit-widget.cpp @@ -1247,7 +1247,7 @@ EditWidget::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); Gtk::MessageDialog dlg (*this, markup, |
