[f-spot] Only save import preferences when using the import dialog.



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]