summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorMaximilian Albert <maximilian.albert@gmail.com>2009-08-09 14:23:52 +0000
committercilix42 <cilix42@users.sourceforge.net>2009-08-09 14:23:52 +0000
commit606ebb35498c3d750bb2906954195baaa0fbcad6 (patch)
treea4b40cd970efc83525392a6a8164e2e6789029b8 /src/ui
parentAdding a Tinfoil bump, removing NR from Non realistic shaders names (diff)
downloadinkscape-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.cpp6
-rw-r--r--src/ui/dialog/filedialog.h6
-rw-r--r--src/ui/dialog/filedialogimpl-gtkmm.cpp18
-rw-r--r--src/ui/dialog/filedialogimpl-gtkmm.h8
-rw-r--r--src/ui/dialog/filedialogimpl-win32.cpp5
-rw-r--r--src/ui/dialog/filedialogimpl-win32.h2
-rw-r--r--src/ui/view/edit-widget.cpp2
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,