[f-spot] Only save import preferences when using the import dialog.
- From: Ruben Vermeersch <rubenv src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [f-spot] Only save import preferences when using the import dialog.
- Date: Fri, 23 Jul 2010 08:12:48 +0000 (UTC)
commit 93dab45d4f760b4b36fe3efa88332855bf2ba750
Author: Ruben Vermeersch <ruben savanne be>
Date: Fri Jul 23 10:11:39 2010 +0200
Only save import preferences when using the import dialog.
User preferences would get nuked with a headless import. As of now you
explicitly have to enable preference loading/saving. Added some sane
defaults.
src/Import/ImportController.cs | 22 +++++++++++++++++-----
src/MainWindow.cs | 5 +++--
2 files changed, 20 insertions(+), 7 deletions(-)
---
diff --git a/src/Import/ImportController.cs b/src/Import/ImportController.cs
index bce870c..21e0bfc 100644
--- a/src/Import/ImportController.cs
+++ b/src/Import/ImportController.cs
@@ -20,8 +20,13 @@ namespace FSpot.Import
{
public BrowsableCollectionProxy Photos { get; private set; }
- public ImportController ()
+ public ImportController (bool persist_preferences)
{
+ // This flag determines whether or not the chosen options will be
+ // saved. You don't want to overwrite user preferences when running
+ // headless.
+ this.persist_preferences = persist_preferences;
+
Photos = new BrowsableCollectionProxy ();
LoadPreferences ();
}
@@ -33,10 +38,11 @@ namespace FSpot.Import
#region Import Preferences
- private bool copy_files;
- private bool remove_originals;
- private bool recurse_subdirectories;
- private bool duplicate_detect;
+ private bool persist_preferences = false;
+ private bool copy_files = true;
+ private bool remove_originals = false;
+ private bool recurse_subdirectories = true;
+ private bool duplicate_detect = true;
public bool CopyFiles {
get { return copy_files; }
@@ -66,6 +72,9 @@ namespace FSpot.Import
void LoadPreferences ()
{
+ if (!persist_preferences)
+ return;
+
copy_files = Preferences.Get<bool> (Preferences.IMPORT_COPY_FILES);
recurse_subdirectories = Preferences.Get<bool> (Preferences.IMPORT_INCLUDE_SUBFOLDERS);
duplicate_detect = Preferences.Get<bool> (Preferences.IMPORT_CHECK_DUPLICATES);
@@ -74,6 +83,9 @@ namespace FSpot.Import
void SavePreferences ()
{
+ if (!persist_preferences)
+ return;
+
Preferences.Set(Preferences.IMPORT_COPY_FILES, copy_files);
Preferences.Set(Preferences.IMPORT_INCLUDE_SUBFOLDERS, recurse_subdirectories);
Preferences.Set(Preferences.IMPORT_CHECK_DUPLICATES, duplicate_detect);
diff --git a/src/MainWindow.cs b/src/MainWindow.cs
index 278629b..6a09393 100644
--- a/src/MainWindow.cs
+++ b/src/MainWindow.cs
@@ -1114,7 +1114,8 @@ namespace FSpot
public void ImportUriList (UriList list, bool copy)
{
- var controller = new ImportController ();
+ // Drag'n drop import.
+ var controller = new ImportController (false);
controller.StatusEvent += (evnt) => {
ThreadAssist.ProxyToMain (() => {
if (evnt == ImportEvent.ImportFinished) {
@@ -1150,7 +1151,7 @@ namespace FSpot
void StartImport (SafeUri uri)
{
- var controller = new ImportController ();
+ var controller = new ImportController (true);
controller.StatusEvent += (evnt) => {
if (evnt == ImportEvent.ImportFinished) {
if (controller.PhotosImported > 0) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]