# # # patch "src/view/dialogs/UpdateWorkspace.cpp" # from [1b20d2af62d2df7ba3bcb05062fa7679cf0adbfd] # to [9d353b9afac0edd6df5b39834a11bd20e34cde7c] # # patch "src/view/dialogs/UpdateWorkspace.h" # from [e84c1072dc7c37aa6b0d12480d7328d100f01f29] # to [6765da7bd5234328ac89863f69cb23fcb4bcb6e3] # ============================================================ --- src/view/dialogs/UpdateWorkspace.cpp 1b20d2af62d2df7ba3bcb05062fa7679cf0adbfd +++ src/view/dialogs/UpdateWorkspace.cpp 9d353b9afac0edd6df5b39834a11bd20e34cde7c @@ -20,55 +20,57 @@ #include "UpdateWorkspace.h" #include "SelectRevision.h" -#include "MonotoneDelegate.h" +#include "MonotoneUtil.h" #include "Settings.h" #include -UpdateWorkspace::UpdateWorkspace(QWidget* parent) - : Dialog(parent) +UpdateWorkspace::UpdateWorkspace(QWidget * parent, const WorkspacePath & ws) + : Dialog(parent), workspacePath(ws) { setupUi(this); Dialog::init(); - + // OSX sheet-alike dialog setWindowFlags(Qt::Sheet); - + updateToLatest->setText( - updateToLatest->text().arg(MonotoneDelegate::getBranchName(this)) + updateToLatest->text().arg(MonotoneUtil::getBranchName(workspacePath)) ); - - branchesModel = new Branches(this, false); + + DatabaseFile db = MonotoneUtil::getDatabaseFile(workspacePath); + + branchesModel = new Branches(this, db, false); branchesModel->readBranches(); branchList->setModel(branchesModel); - - tagsModel = new Tags(this); + + tagsModel = new Tags(this, db); tagsModel->readTags(QString()); tagList->setModel(tagsModel); - + selectorCompleter = new QCompleter( Settings::getItemList("RecentUpdateSelectors"), this ); - + selectorCompleter->setCaseSensitivity(Qt::CaseInsensitive); selectedRevision->setCompleter(selectorCompleter); - + connect( selectRevision, SIGNAL(clicked()), this, SLOT(slotSelectRevision()) ); - + connect( branchList, SIGNAL(activated(int)), this, SLOT(selectBranchOption()) ); - + connect( tagList, SIGNAL(activated(int)), this, SLOT(selectTagOption()) ); - + connect( selectedRevision, SIGNAL(textChanged(const QString &)), this, SLOT(selectSelectorOption()) @@ -85,12 +87,12 @@ void UpdateWorkspace::accept() void UpdateWorkspace::accept() { QString selector; - + if (updateToLatest->isChecked()) { - selector = "h:" + MonotoneDelegate::getBranchName(this); + selector = "h:" + MonotoneUtil::getBranchName(workspacePath); } - + if (updateToBranch->isChecked()) { QString selection(branchList->currentText()); @@ -106,7 +108,7 @@ void UpdateWorkspace::accept() } selector = "h:" + selection; } - + if (updateToTag->isChecked()) { QString selection(tagList->currentText()); @@ -122,7 +124,7 @@ void UpdateWorkspace::accept() } selector = "t:" + selection; } - + if (updateToRevision->isChecked()) { QString selection = selectedRevision->text(); @@ -139,9 +141,12 @@ void UpdateWorkspace::accept() selector = selection; Settings::addItemToList("RecentUpdateSelectors", selection, 10); } - - QStringList revList(MonotoneDelegate::resolveSelector(this, selector)); - + + QStringList revList = MonotoneUtil::resolveSelector( + MonotoneUtil::getDatabaseFile(workspacePath), + selector + ); + if (revList.size() == 0) { QMessageBox::warning( @@ -152,7 +157,7 @@ void UpdateWorkspace::accept() ); return; } - + if (revList.size() > 1) { QMessageBox::information( @@ -161,11 +166,11 @@ void UpdateWorkspace::accept() tr("Your selection matched multiple revisions. Please choose one."), QMessageBox::Ok ); - - openSelectRevision(selector); + + emit selectRevisionFromSelector(selector); return; } - + selectedRevisionId = revList.at(0); D(QString("Selected %1 as update revision").arg(selectedRevisionId)); done(0); @@ -173,26 +178,12 @@ void UpdateWorkspace::slotSelectRevision void UpdateWorkspace::slotSelectRevision() { - openSelectRevision(QString()); + emit selectRevisionFromSelector(QString()); } -void UpdateWorkspace::openSelectRevision(const QString & selector) +void UpdateWorkspace::setSelectedRevision(const QString & revision) { - hide(); - - SelectRevision dlg(parentWidget()); - - if (selector.size() > 0) - { - dlg.queryRevisions(selector); - } - - if (dlg.execDocumentModal() == QDialog::Accepted) - { - selectedRevision->setText(dlg.getSelectedRevision()); - } - - show(); + selectedRevision->setText(revision); } void UpdateWorkspace::selectBranchOption() ============================================================ --- src/view/dialogs/UpdateWorkspace.h e84c1072dc7c37aa6b0d12480d7328d100f01f29 +++ src/view/dialogs/UpdateWorkspace.h 6765da7bd5234328ac89863f69cb23fcb4bcb6e3 @@ -31,20 +31,24 @@ class UpdateWorkspace : public Dialog, p class UpdateWorkspace : public Dialog, private Ui::UpdateWorkspace { - Q_OBJECT - + Q_OBJECT public: - UpdateWorkspace(QWidget *); - ~UpdateWorkspace(); + UpdateWorkspace(QWidget *, const WorkspacePath &); + ~UpdateWorkspace(); inline QString getSelectedRevision() const { return selectedRevisionId; } +public slots: + void setSelectedRevision(const QString &); + +signals: + void selectRevisionFromSelector(const QString &); + private: - void openSelectRevision(const QString &); - - Branches * branchesModel; - Tags * tagsModel; - QCompleter * selectorCompleter; - QString selectedRevisionId; + Branches * branchesModel; + Tags * tagsModel; + QCompleter * selectorCompleter; + QString selectedRevisionId; + WorkspacePath workspacePath; private slots: void slotSelectRevision(); @@ -53,5 +57,5 @@ private slots: void selectTagOption(); void selectSelectorOption(); }; - + #endif