# # # patch "guitone/src/model/ContentDiff.cpp" # from [4cb868e9bf2d592db68a2988e25100cfb961a40e] # to [c64378c73f84227d3e03011d75d2e05705299375] # # patch "guitone/src/model/GetFile.cpp" # from [847161c06efe93bed700432f94b5e358b8d62ebf] # to [6a55362b1b5463d056daf8c455c11ca1d5c69d1b] # # patch "guitone/src/monotone/MonotoneDelegate.cpp" # from [4ebb6a0e87914d4dbe4b3e68be5b206661c08e49] # to [8ced325644429a3184ad3af3c8cff57935138140] # # patch "guitone/src/monotone/MonotoneDelegate.h" # from [63b9b9a1f636c8e6cded8e14250d90cb8c307628] # to [d8a29d33b3159cee8097a2e9dae0431d6e3fc077] # # patch "guitone/src/view/dialogs/UpdateWorkspace.cpp" # from [25d5930928059b8c5db520cb75f02bbac4d2d5b6] # to [8c45dee2130daca23cb09f526ca0578d8b40d323] # ============================================================ --- guitone/src/model/ContentDiff.cpp 4cb868e9bf2d592db68a2988e25100cfb961a40e +++ guitone/src/model/ContentDiff.cpp c64378c73f84227d3e03011d75d2e05705299375 @@ -56,8 +56,6 @@ bool ContentDiff::readDiff( // reset the view reset(); - Monotone *mtn = Monotone::singleton(); - QStringList cmd; cmd << "content_diff" << fileName; @@ -65,19 +63,7 @@ bool ContentDiff::readDiff( if (leftRevision.length() == 0) { - int commandNumber; - QStringList cmd; - cmd << "get_base_revision_id"; - - if (!mtn->executeCommand(cmd, commandNumber) || - mtn->getReturnCode(commandNumber) > 0) - { - qWarning("ContentDiff::readDiff: could not execute get_base_revision_id"); - return false; - } - - leftRevision = mtn->getDecodedData(commandNumber); - leftRevision.chop(1); + leftRevision = MonotoneDelegate::getBaseWorkspaceRevision(); } opts << "r" << leftRevision; ============================================================ --- guitone/src/model/GetFile.cpp 847161c06efe93bed700432f94b5e358b8d62ebf +++ guitone/src/model/GetFile.cpp 6a55362b1b5463d056daf8c455c11ca1d5c69d1b @@ -35,23 +35,7 @@ bool GetFile::readFileByName(QString fil bool GetFile::readFileByName(QString fileName) { - Monotone * mtn = Monotone::singleton(); - - int commandNumber; - QStringList cmd; - cmd << "get_base_revision_id"; - - if (!mtn->executeCommand(cmd, commandNumber) || - mtn->getReturnCode(commandNumber) > 0) - { - qWarning("GetFile::readFileByName: could not execute get_base_revision_id"); - return false; - } - - QString baseRevision = mtn->getDecodedData(commandNumber); - baseRevision.chop(1); - - return readFileByName(fileName, baseRevision); + return readFileByName(fileName, MonotoneDelegate::getBaseWorkspaceRevision()); } bool GetFile::readFileByName(QString fileName, QString revision) ============================================================ --- guitone/src/monotone/MonotoneDelegate.cpp 4ebb6a0e87914d4dbe4b3e68be5b206661c08e49 +++ guitone/src/monotone/MonotoneDelegate.cpp 8ced325644429a3184ad3af3c8cff57935138140 @@ -80,3 +80,71 @@ void MonotoneDelegate::commandFinished() qApp->restoreOverrideCursor(); } +QString MonotoneDelegate::getBaseWorkspaceRevision() +{ + Monotone * mtn = Monotone::singleton(); + + int commandNumber; + if (!mtn->executeCommand(QStringList() << "get_base_revision_id", commandNumber) || + mtn->getReturnCode(commandNumber) > 0) + { + qWarning("Could not execute get_base_revision_id"); + return false; + } + + QString baseRevision = mtn->getDecodedData(commandNumber); + baseRevision.chop(1); + return baseRevision; +} + +QString MonotoneDelegate::getOption(const QString & opt) +{ + Monotone * mtn = Monotone::singleton(); + + int cmdNum; + mtn->executeCommand(QStringList() << "get_option" << opt, cmdNum); + + QString data = mtn->getDecodedData(cmdNum); + + if (mtn->getReturnCode(cmdNum) > 0) + { + qCritical("Inventory::getOption: Couldn't retrieve option %s: %s", + qPrintable(opt), qPrintable(data)); + return QString(); + } + + if (data.length() > 1) + data.chop(1); + return data; +} + +QString MonotoneDelegate::getBranchName() +{ + QString branchName = getOption("branch"); + + if (branchName.size() == 0) + { + branchName = QString(tr("[unknown branch]")); + } + return branchName; +} + +QString MonotoneDelegate::getBranchNameShort() +{ + // FIXME: currently there is only support for the domain branch scheme + // tld.domain.project.branch + QString branchName = getBranchName(); + QStringList parts = branchName.split('.'); + if (parts.size() == 1) return branchName; + + QString shortBranchName; + for (int i=0, j=parts.size()-1; i @@ -32,6 +33,10 @@ UpdateWorkspace::UpdateWorkspace(QWidget // OSX sheet-alike dialog setWindowFlags(Qt::Sheet); + updateToLatest->setText( + updateToLatest->text().arg(MonotoneDelegate::getBranchName()) + ); + // create the models selectorModel = new Select(this); branchesModel = new Branches(false, this);