void CreateRepoDialog::createSuccess(const RepoDownloadInfo& info) { QString error; int ret = seafApplet->rpcClient()->cloneRepo( info.repo_id, info.repo_version, info.relay_id, info.repo_name, path_, info.token, passwd_, info.magic, info.relay_addr, info.relay_port, info.email, info.random_key, info.enc_version, info.more_info, &error); if (ret < 0) { QMessageBox::warning(this, getBrand(), tr("Failed to add download task:\n %1").arg(error), QMessageBox::Ok); setAllInputsEnabled(true); } else { repos_tab_->refresh(); done(QDialog::Accepted); } }
void DownloadRepoDialog::onDownloadRepoRequestFailed(const ApiError& error) { QString msg = tr("Failed to get repo download information:\n%1").arg(error.toString()); seafApplet->warningBox(msg, this); setAllInputsEnabled(true); }
void CreateRepoDialog::createFailed(const ApiError& error) { mStatusText->setText(""); QString msg = tr("Failed to create library on the server:\n%1").arg(error.toString()); seafApplet->warningBox(msg, this); setAllInputsEnabled(true); }
void DownloadRepoDialog::onOkBtnClicked() { if (!validateInputs()) { return; } setAllInputsEnabled(false); DownloadRepoRequest *req = new DownloadRepoRequest(account_, repo_.id, repo_.readonly); connect(req, SIGNAL(success(const RepoDownloadInfo&)), this, SLOT(onDownloadRepoRequestSuccess(const RepoDownloadInfo&))); connect(req, SIGNAL(failed(const ApiError&)), this, SLOT(onDownloadRepoRequestFailed(const ApiError&))); req->send(); }
void DownloadRepoDialog::onDownloadRepoRequestSuccess(const RepoDownloadInfo& info) { QString worktree = mDirectory->text(); QString password = repo_.encrypted ? mPassword->text() : QString(); int ret = 0; QString error; if (sync_with_existing_) { if (alternative_path_.isEmpty()) worktree = QDir(worktree).absoluteFilePath(repo_.name); else worktree = alternative_path_; ret = seafApplet->rpcClient()->cloneRepo(info.repo_id, info.repo_version, info.relay_id, repo_.name, worktree, info.token, password, info.magic, info.relay_addr, info.relay_port, info.email, info.random_key, info.enc_version, info.more_info, &error); } else { ret = seafApplet->rpcClient()->downloadRepo(info.repo_id, info.repo_version, info.relay_id, repo_.name, worktree, info.token, password, info.magic, info.relay_addr, info.relay_port, info.email, info.random_key, info.enc_version, info.more_info, &error); } if (ret < 0) { if (error == "Worktree conflicts system path") { error = QObject::tr("The path \"%1\" conflicts with system path").arg(worktree); } else if (error == "Worktree conflicts existing repo") { error = QObject::tr("The path \"%1\" conflicts with an existing library").arg(worktree); } seafApplet->warningBox(tr("Failed to add download task:\n %1").arg(error), this); setAllInputsEnabled(true); } else { done(QDialog::Accepted); } }
void DownloadRepoDialog::onDownloadRepoRequestSuccess(const RepoDownloadInfo& info) { QString worktree = mDirectory->text(); QString password = repo_.encrypted ? mPassword->text() : QString(); int ret = 0; QString error; if (sync_with_existing_) { if (alternative_path_.isEmpty()) worktree = QDir(worktree).absoluteFilePath(repo_.name); else worktree = alternative_path_; ret = seafApplet->rpcClient()->cloneRepo(info.repo_id, info.repo_version, info.relay_id, repo_.name, worktree, info.token, password, info.magic, info.relay_addr, info.relay_port, info.email, info.random_key, info.enc_version, info.more_info, &error); } else { ret = seafApplet->rpcClient()->downloadRepo(info.repo_id, info.repo_version, info.relay_id, repo_.name, worktree, info.token, password, info.magic, info.relay_addr, info.relay_port, info.email, info.random_key, info.enc_version, info.more_info, &error); } if (ret < 0) { QMessageBox::warning(this, getBrand(), tr("Failed to add download task:\n %1").arg(error), QMessageBox::Ok); setAllInputsEnabled(true); } else { done(QDialog::Accepted); } }
void CreateRepoDialog::createAction() { if (!validateInputs()) { return; } mStatusText->setText(tr("Creating...")); setAllInputsEnabled(false); if (request_) { delete request_; } request_ = new CreateRepoRequest(account_, name_, desc_, passwd_); connect(request_, SIGNAL(success(const RepoDownloadInfo&)), this, SLOT(createSuccess(const RepoDownloadInfo&))); connect(request_, SIGNAL(failed(const ApiError&)), this, SLOT(createFailed(const ApiError&))); request_->send(); }