- if (!branchlist.find(params_.branch)
- && buffer().params().branchlist().find(params_.branch))
- s = _("Branch (child only): ") + params_.branch;
- else if (!branchlist.find(params_.branch))
- s = _("Branch (undefined): ") + params_.branch;
- if (!params_.branch.empty()) {
- // FIXME UNICODE
- ColorCode c = lcolor.getFromLyXName(to_utf8(params_.branch));
- if (c == Color_none)
- s = _("Undef: ") + s;
- }
- s = char_type(isBranchSelected() ? 0x2714 : 0x2716) + s;
- if (decoration() == InsetLayout::CLASSIC)
- return isOpen(bv) ? s : getNewLabel(s);
- else
- return params_.branch + ": " + getNewLabel(s);
+ bool const inmaster = branchlist.find(params_.branch);
+ bool const inchild = buffer().params().branchlist().find(params_.branch);
+
+ bool const master_selected = producesOutput();
+ bool const child_selected = isBranchSelected(true) != params_.inverted;
+
+ docstring symb = docstring(1, master_selected ? tick : cross);
+ if (inchild && master_selected != child_selected)
+ symb += (child_selected ? tick : cross);
+
+ if (decoration() == InsetLayout::MINIMALISTIC)
+ return symb + params_.branch;
+
+ docstring s;
+ if (inmaster && inchild)
+ s = _("Branch: ");
+ else if (inchild) // && !inmaster
+ s = _("Branch (child): ");
+ else if (inmaster) // && !inchild
+ s = _("Branch (master): ");
+ else // !inmaster && !inchild
+ s = _("Branch (undefined): ");
+ s += params_.branch;
+
+ return symb + s;