#include "ui_BranchesUnknownUi.h"
+#include "frontends/alert.h"
+
#include "Buffer.h"
#include "BufferParams.h"
+#include "support/gettext.h"
#include "support/lstrings.h"
#include <QListWidget>
branchesTW->headerItem()->setText(0, qt_("Branch"));
branchesTW->headerItem()->setText(1, qt_("Activated"));
branchesTW->headerItem()->setText(2, qt_("Color"));
+ branchesTW->headerItem()->setText(3, qt_("Filename Suffix"));
branchesTW->setSortingEnabled(true);
+ branchesTW->resizeColumnToContents(1);
+ branchesTW->resizeColumnToContents(2);
undef_ = new BranchesUnknownDialog(this);
undef_bc_.setPolicy(ButtonPolicy::OkCancelPolicy);
coloritem.fill(itemcolor);
newItem->setIcon(2, QIcon(coloritem));
}
+ newItem->setText(3, it->hasFileNameSuffix() ? qt_("Yes") : qt_("No"));
// restore selected branch
if (bname == sel_branch) {
branchesTW->setCurrentItem(newItem);
}
}
unknownPB->setEnabled(!unknown_branches_.isEmpty());
+ bool const have_sel =
+ !branchesTW->selectedItems().isEmpty();
+ removePB->setEnabled(have_sel);
+ renamePB->setEnabled(have_sel);
+ colorPB->setEnabled(have_sel);
+ activatePB->setEnabled(have_sel);
+ suffixPB->setEnabled(have_sel);
// emit signal
changed();
}
}
+void GuiBranches::on_renamePB_pressed()
+{
+ QTreeWidgetItem * selItem = branchesTW->currentItem();
+ QString sel_branch;
+ if (selItem != 0)
+ sel_branch = selItem->text(0);
+ if (!sel_branch.isEmpty()) {
+ docstring newname;
+ docstring const oldname = qstring_to_ucs4(sel_branch);
+ bool success = false;
+ if (Alert::askForText(newname, _("Enter new branch name"), oldname)) {
+ if (newname.empty() || oldname == newname)
+ return;
+ if (branchlist_.find(newname)) {
+ docstring text = support::bformat(
+ _("A branch with the name \"%1$s\" already exists.\n"
+ "Do you want to merge branch \"%2$s\" with that one?"),
+ newname, oldname);
+ if (frontend::Alert::prompt(_("Branch already exists"),
+ text, 0, 1, _("&Merge"), _("&Cancel")) == 0)
+ success = branchlist_.rename(oldname, newname, true);
+ } else
+ success = branchlist_.rename(oldname, newname);
+ newBranchLE->clear();
+ updateView();
+
+ if (!success)
+ Alert::error(_("Renaming failed"),
+ _("The branch could not be renamed."));
+ else
+ // emit signal
+ renameBranches(oldname, newname);
+ }
+ }
+}
+
+
void GuiBranches::on_activatePB_pressed()
{
toggleBranch(branchesTW->currentItem());
}
+void GuiBranches::on_suffixPB_pressed()
+{
+ toggleSuffix(branchesTW->currentItem());
+}
+
+
void GuiBranches::on_branchesTW_itemDoubleClicked(QTreeWidgetItem * item, int col)
{
if (col < 2)
toggleBranch(item);
- else
+ else if (col == 2)
toggleColor(item);
+ else if (col == 3)
+ toggleSuffix(item);
+}
+
+
+void GuiBranches::on_branchesTW_itemSelectionChanged()
+{
+ bool const have_sel =
+ !branchesTW->selectedItems().isEmpty();
+ removePB->setEnabled(have_sel);
+ renamePB->setEnabled(have_sel);
+ colorPB->setEnabled(have_sel);
+ activatePB->setEnabled(have_sel);
+ suffixPB->setEnabled(have_sel);
}
if (sel_branch.isEmpty())
return;
- bool const selected = (item->text(1) == qt_("Yes"));
Branch * branch = branchlist_.find(qstring_to_ucs4(sel_branch));
- if (branch && branch->setSelected(!selected)) {
+ if (branch && branch->setSelected(!branch->isSelected())) {
newBranchLE->clear();
updateView();
}
}
+void GuiBranches::toggleSuffix(QTreeWidgetItem * item)
+{
+ if (item == 0)
+ return;
+
+ QString sel_branch = item->text(0);
+ if (sel_branch.isEmpty())
+ return;
+
+ Branch * branch = branchlist_.find(qstring_to_ucs4(sel_branch));
+ if (branch) {
+ branch->setFileNameSuffix(!branch->hasFileNameSuffix());
+ newBranchLE->clear();
+ updateView();
+ }
+}
+
+
void GuiBranches::on_unknownPB_pressed()
{
undef_->branchesLW->clear();
undef_->branchesLW->selectedItems();
QList<QListWidgetItem *>::const_iterator it = selItems.begin();
- for (it ; it != selItems.end() ; ++it) {
+ for (; it != selItems.end() ; ++it) {
QListWidgetItem const * new_branch = *it;
if (new_branch) {
branchlist_.add(qstring_to_ucs4(new_branch->text()));