DownloadRepoDialog::DownloadRepoDialog(const Account& account, const ServerRepo& repo, const QString& password, QWidget *parent) : QDialog(parent), repo_(repo), account_(account), merge_without_question_(false) { manual_merge_mode_ = false; setupUi(this); if (!repo.isSubfolder()) { setWindowTitle(tr("Sync library \"%1\"").arg(repo_.name)); } else { setWindowTitle(tr("Sync folder \"%1\"").arg(repo.parent_path)); } mDirectory->setPlaceholderText(getOperatingText(repo_)); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); mRepoIcon->setPixmap(repo.getPixmap()); mRepoName->setText(repo_.name); mOperationText->setText(tr("Sync to folder:")); if (repo_.encrypted) { if (!password.isEmpty()) { mPassword->setText(password); mPassword->setReadOnly(true); } mPassword->setVisible(true); mPasswordLabel->setVisible(true); } else { mPassword->setVisible(false); mPasswordLabel->setVisible(false); } int height = 250; #if defined(Q_OS_MAC) layout()->setContentsMargins(8, 9, 9, 5); layout()->setSpacing(6); verticalLayout_3->setSpacing(6); #endif if (repo.encrypted) { height += 50; } setMinimumHeight(height); setMaximumHeight(height); setDirectoryText(seafApplet->configurator()->worktreeDir()); connect(mSwitchModeHint, SIGNAL(linkActivated(const QString &)), this, SLOT(switchMode())); updateSyncMode(); mMergeHint->hide(); connect(mChooseDirBtn, SIGNAL(clicked()), this, SLOT(chooseDirAction())); connect(mOkBtn, SIGNAL(clicked()), this, SLOT(onOkBtnClicked())); }
void DownloadRepoDialog::switchMode() { manual_merge_mode_ = !manual_merge_mode_; QString path = mDirectory->text().trimmed(); if (!path.isEmpty()) { // from download new to merge existing if (manual_merge_mode_) { setDirectoryText(::pathJoin(path, repo_.name)); } else { // from merge existing to download new if (::getBaseName(path) == repo_.name) { setDirectoryText(::getParentPath(path)); } } } updateSyncMode(); }
void DownloadRepoDialog::switchMode() { manual_merge_mode_ = !manual_merge_mode_; updateSyncMode(); }