[Pkg-owncloud-commits] [owncloud-client] 17/120: Ignore hidden: Default to enabled #2086

Sandro Knauß hefee-guest at moszumanska.debian.org
Mon Aug 24 00:02:38 UTC 2015


This is an automated email from the git hooks/post-receive script.

hefee-guest pushed a commit to branch master
in repository owncloud-client.

commit c2c924931b1f06d2c54208945b68bb95edac831b
Author: Christian Kamm <mail at ckamm.de>
Date:   Mon Aug 10 11:03:57 2015 +0200

    Ignore hidden: Default to enabled #2086
    
    It was 'false' for migrated folders and folders created by the OC
    setup wizard.
---
 src/gui/accountsettings.cpp     |  8 ++------
 src/gui/folder.h                |  3 ++-
 src/gui/folderman.cpp           | 19 +++++++++++++++++++
 src/gui/folderman.h             |  9 +++++++++
 src/gui/ignorelisteditor.cpp    | 12 ++----------
 src/gui/owncloudsetupwizard.cpp |  2 ++
 6 files changed, 36 insertions(+), 17 deletions(-)

diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp
index e8a0c34..3f9762b 100644
--- a/src/gui/accountsettings.cpp
+++ b/src/gui/accountsettings.cpp
@@ -212,15 +212,11 @@ void AccountSettings::slotFolderWizardAccepted()
         }
     }
 
-    bool ignoreHidden = true;
     /* take the value from the definition of already existing folders. All folders have
-     * the same setting so far, that's why it's ok to check the first one.
+     * the same setting so far.
      * The default is to not sync hidden files
      */
-    if( folderMan->map().count() > 0) {
-        ignoreHidden = folderMan->map().begin().value()->ignoreHiddenFiles();
-    }
-    definition.ignoreHiddenFiles = ignoreHidden;
+    definition.ignoreHiddenFiles = folderMan->ignoreHiddenFiles();
 
     auto selectiveSyncBlackList = folderWizard->property("selectiveSyncBlackList").toStringList();
 
diff --git a/src/gui/folder.h b/src/gui/folder.h
index cf72f06..fa48973 100644
--- a/src/gui/folder.h
+++ b/src/gui/folder.h
@@ -52,7 +52,8 @@ class FolderDefinition
 {
 public:
     FolderDefinition()
-        : paused(false), ignoreHiddenFiles(false)
+        : paused(false)
+        , ignoreHiddenFiles(true)
     {}
 
     /// The name of the folder in the ui and internally
diff --git a/src/gui/folderman.cpp b/src/gui/folderman.cpp
index d57c0cc..1d949e5 100644
--- a/src/gui/folderman.cpp
+++ b/src/gui/folderman.cpp
@@ -405,6 +405,7 @@ Folder* FolderMan::setupFolderFromOldConfigFile(const QString &file, AccountStat
     folderDefinition.localPath = path;
     folderDefinition.targetPath = targetPath;
     folderDefinition.paused = paused;
+    folderDefinition.ignoreHiddenFiles = ignoreHiddenFiles();
 
     folder = addFolderInternal(folderDefinition);
     if (folder) {
@@ -1176,6 +1177,24 @@ QString FolderMan::checkPathValidityForNewFolder(const QString& path, bool forNe
 
 }
 
+bool FolderMan::ignoreHiddenFiles() const
+{
+    if (_folderMap.empty()) {
+        return true;
+    }
+    return _folderMap.begin().value()->ignoreHiddenFiles();
+}
+
+void FolderMan::setIgnoreHiddenFiles(bool ignore)
+{
+    // Note that the setting will revert to 'true' if all folders
+    // are deleted...
+    foreach (Folder* folder, _folderMap) {
+        folder->setIgnoreHiddenFiles(ignore);
+        folder->saveToSettings();
+    }
+}
+
 void FolderMan::restartApplication()
 {
     if( Utility::isLinux() ) {
diff --git a/src/gui/folderman.h b/src/gui/folderman.h
index 167b82f..3244f72 100644
--- a/src/gui/folderman.h
+++ b/src/gui/folderman.h
@@ -99,6 +99,15 @@ public:
      */
     QString checkPathValidityForNewFolder(const QString &path, bool forNewDirectory = false);
 
+    /**
+     * While ignoring hidden files can theoretically be switched per folder,
+     * it's currently a global setting that users can only change for all folders
+     * at once.
+     * These helper functions can be removed once it's properly per-folder.
+     */
+    bool ignoreHiddenFiles() const;
+    void setIgnoreHiddenFiles(bool ignore);
+
 signals:
     /**
       * signal to indicate a folder has changed its sync state.
diff --git a/src/gui/ignorelisteditor.cpp b/src/gui/ignorelisteditor.cpp
index cd760e3..5423036 100644
--- a/src/gui/ignorelisteditor.cpp
+++ b/src/gui/ignorelisteditor.cpp
@@ -58,12 +58,7 @@ IgnoreListEditor::IgnoreListEditor(QWidget *parent) :
     ui->tableWidget->horizontalHeader()->setResizeMode(patternCol, QHeaderView::Stretch);
     ui->tableWidget->verticalHeader()->setVisible(false);
 
-    /* value for syncing hidden files */
-    bool ignoreHidden = true;
-    if( FolderMan::instance()->map().count() > 0 ) {
-        ignoreHidden = FolderMan::instance()->map().begin().value()->ignoreHiddenFiles();
-    }
-    ui->ignoreHiddenFilesCheckBox->setChecked( !ignoreHidden );
+    ui->ignoreHiddenFilesCheckBox->setChecked( !FolderMan::instance()->ignoreHiddenFiles() );
 }
 
 IgnoreListEditor::~IgnoreListEditor()
@@ -129,10 +124,7 @@ void IgnoreListEditor::slotUpdateLocalIgnoreList()
     /* the ignoreHiddenFiles flag is a folder specific setting, but for now, it is
      * handled globally. Save it to every folder that is defined.
      */
-    foreach (Folder* folder, FolderMan::instance()->map()) {
-        folder->setIgnoreHiddenFiles(ignoreHiddenFiles);
-        folder->saveToSettings();
-    }
+    FolderMan::instance()->setIgnoreHiddenFiles(ignoreHiddenFiles);
 }
 
 void IgnoreListEditor::slotAddPattern()
diff --git a/src/gui/owncloudsetupwizard.cpp b/src/gui/owncloudsetupwizard.cpp
index 151cf8e..64dbaf3 100644
--- a/src/gui/owncloudsetupwizard.cpp
+++ b/src/gui/owncloudsetupwizard.cpp
@@ -470,6 +470,8 @@ void OwncloudSetupWizard::slotAssistantFinished( int result )
             }
             folderDefinition.localPath = localFolder;
             folderDefinition.targetPath = _remoteFolder;
+            folderDefinition.ignoreHiddenFiles = folderMan->ignoreHiddenFiles();
+
             auto f = folderMan->addFolder(account, folderDefinition);
             if (f) {
                 f->journalDb()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList,

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git



More information about the Pkg-owncloud-commits mailing list