}
}
- 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();
{
public:
FolderDefinition()
- : paused(false), ignoreHiddenFiles(false)
+ : paused(false)
+ , ignoreHiddenFiles(true)
{}
/// The name of the folder in the ui and internally
folderDefinition.localPath = path;
folderDefinition.targetPath = targetPath;
folderDefinition.paused = paused;
+ folderDefinition.ignoreHiddenFiles = ignoreHiddenFiles();
folder = addFolderInternal(folderDefinition);
if (folder) {
}
+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() ) {
*/
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.
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()
/* 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()
}
folderDefinition.localPath = localFolder;
folderDefinition.targetPath = _remoteFolder;
+ folderDefinition.ignoreHiddenFiles = folderMan->ignoreHiddenFiles();
+
auto f = folderMan->addFolder(account, folderDefinition);
if (f) {
f->journalDb()->setSelectiveSyncList(SyncJournalDb::SelectiveSyncBlackList,