From 8f43f83ddfbe6adbb04a2ba86e62797c0a313324 Mon Sep 17 00:00:00 2001 From: Yuriy Skalko Date: Fri, 7 Oct 2022 18:56:33 +0300 Subject: [PATCH] Show branches from master document in branch inset dialog --- src/frontends/qt/GuiBranch.cpp | 37 ++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/src/frontends/qt/GuiBranch.cpp b/src/frontends/qt/GuiBranch.cpp index 24b6977390..923d383358 100644 --- a/src/frontends/qt/GuiBranch.cpp +++ b/src/frontends/qt/GuiBranch.cpp @@ -22,9 +22,13 @@ #include "insets/InsetBranch.h" +#include "support/gettext.h" +#include "support/lstrings.h" + #include using namespace std; +using namespace lyx::support; namespace lyx { namespace frontend { @@ -40,20 +44,36 @@ GuiBranch::GuiBranch(QWidget * parent) : InsetParamsWidget(parent) void GuiBranch::paramsToDialog(Inset const * inset) { InsetBranch const * ib = static_cast(inset); - typedef BranchList::const_iterator const_iterator; - BranchList const & branchlist = ib->buffer().params().branchlist(); + Buffer const & buf = ib->buffer(); + BranchList const & branchlist = buf.params().branchlist(); docstring const cur_branch = ib->branch(); branchCO->clear(); - const_iterator const begin = branchlist.begin(); - const_iterator const end = branchlist.end(); int id = 0; int count = 0; - for (const_iterator it = begin; it != end; ++it, ++count) { - docstring const & branch = it->branch(); - branchCO->addItem(toqstr(branch)); + for (Branch const & it : branchlist) { + docstring const & branch = it.branch(); + branchCO->addItem(toqstr(branch), toqstr(branch)); if (cur_branch == branch) id = count; + ++count; + } + // Add branches from master + Buffer const * masterBuf = buf.masterBuffer(); + if (masterBuf != &buf) { + BranchList const & masterBranchlist = masterBuf->params().branchlist(); + for (Branch const & it : masterBranchlist) { + docstring const & branch = it.branch(); + if (!branchlist.find(branch)) { + branchCO->addItem( + toqstr(bformat(_("%1$s[[branch]] (%2$s)[[master]]"), + branch, _("master"))), + toqstr(branch)); + if (cur_branch == branch) + id = count; + ++count; + } + } } branchCO->setCurrentIndex(id); invertedCB->setChecked(ib->params().inverted); @@ -62,7 +82,8 @@ void GuiBranch::paramsToDialog(Inset const * inset) docstring GuiBranch::dialogToParams() const { - InsetBranchParams params(qstring_to_ucs4(branchCO->currentText()), invertedCB->isChecked()); + docstring branch = qstring_to_ucs4(branchCO->itemData(branchCO->currentIndex()).toString()); + InsetBranchParams params(branch, invertedCB->isChecked()); return from_utf8(InsetBranch::params2string(params)); } -- 2.39.5