bool DownloadRepoDialog::validateInputs() { setDirectoryText(mDirectory->text().trimmed()); if (mDirectory->text().isEmpty()) { seafApplet->warningBox(tr("Please choose the folder to sync.")); return false; } if (account_.hasDisableSyncWithAnyFolder() && !isPathInWorktree(seafApplet->configurator()->worktreeDir(), mDirectory->text())) { seafApplet->warningBox( tr("Your organization disables putting a library outside %1 folder.").arg(getBrand())); return false; } if (repo_.encrypted) { mPassword->setText(mPassword->text().trimmed()); if (mPassword->text().isEmpty()) { seafApplet->warningBox(tr("Please enter the password")); return false; } } if (manual_merge_mode_) { return validateInputsManualMergeMode(); } sync_with_existing_ = false; alternative_path_ = ""; QString path = QDir(mDirectory->text()).absoluteFilePath(repo_.name); QFileInfo fileinfo = QFileInfo(path); if (fileinfo.exists()) { sync_with_existing_ = true; // exist and but not a directory ? if (!fileinfo.isDir()) { seafApplet->warningBox( tr("Conflicting with existing file \"%1\", please choose a different folder.").arg(path)); return false; } // exist and but conflicting? QString repo_name; if (isPathConflictWithExistingRepo(path, &repo_name)) { seafApplet->warningBox( tr("Conflicting with existing library \"%1\", please choose a different folder.").arg(repo_name)); return false; } QMessageBox::StandardButton ret = merge_without_question_ ? QMessageBox::Yes : seafApplet->yesNoCancelBox( tr("The folder \"%1\" already exists. Are you sure to sync with it (contents will be merged)?") .arg(path) + QString("<br/><br/><small>%1</small>").arg(tr("Click No to sync with a new folder instead")), this, QMessageBox::Yes); if (ret == QMessageBox::Cancel) return false; if (ret == QMessageBox::No) { QString new_path = getAlternativePath(mDirectory->text(), repo_.name); if (new_path.isEmpty()) { seafApplet->warningBox(tr("Unable to find an alternative folder name").arg(path)); return false; } alternative_path_ = new_path; } } return true; }
bool DownloadRepoDialog::validateInputs() { if (has_manual_merge_mode_ && manual_merge_mode_) { return validateInputsManualMergeMode(); } setDirectoryText(mDirectory->text().trimmed()); if (mDirectory->text().isEmpty()) { QMessageBox::warning(this, getBrand(), tr("Please choose the folder to sync."), QMessageBox::Ok); return false; } sync_with_existing_ = false; alternative_path_ = QString(); QString path = QDir(mDirectory->text()).absoluteFilePath(repo_.name); QFileInfo fileinfo = QFileInfo(path); if (fileinfo.exists()) { sync_with_existing_ = true; // exist and but not a directory ? if (!fileinfo.isDir()) { QMessageBox::warning(this, getBrand(), tr("Conflicting with existing file \"%1\", please choose a different folder.").arg(path), QMessageBox::Ok); return false; } // exist and but conflicting? QString repo_name; if (isPathConflictWithExistingRepo(path, &repo_name)) { QMessageBox::warning(this, getBrand(), tr("Conflicting with existing library \"%1\", please choose a different folder.").arg(repo_name), QMessageBox::Ok); return false; } int ret = QMessageBox::question( this, getBrand(), tr("The folder \"%1\" already exists. Are you sure to sync with it (contents will be merged)?") .arg(path) + QString("<br/><br/><small>%1</small>").arg(tr("Click No to sync with a new folder instead")), QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel, QMessageBox::Yes); if (ret & QMessageBox::Cancel) return false; if (ret & QMessageBox::No) { QString new_path = getAlternativePath(mDirectory->text(), repo_.name); if (new_path.isEmpty()) { QMessageBox::warning(this, getBrand(), tr("Unable to find an alternative folder name").arg(path), QMessageBox::Ok); return false; } alternative_path_ = new_path; } } if (repo_.encrypted) { mPassword->setText(mPassword->text().trimmed()); if (mPassword->text().isEmpty()) { QMessageBox::warning(this, getBrand(), tr("Please enter the password"), QMessageBox::Ok); return false; } } return true; }