void BranchDialog::rename() { QModelIndex selected = selectedIndex(); QTC_CHECK(selected != m_model->currentBranch()); // otherwise the button would not be enabled! const bool isTag = m_model->isTag(selected); QTC_CHECK(m_model->isLocal(selected) || isTag); QString oldName = m_model->fullName(selected); QStringList localNames; if (!isTag) localNames = m_model->localBranchNames(); BranchAddDialog branchAddDialog(localNames, false, this); if (isTag) branchAddDialog.setWindowTitle(tr("Rename Tag")); branchAddDialog.setBranchName(oldName); branchAddDialog.setTrackedBranchName(QString(), false); branchAddDialog.exec(); if (branchAddDialog.result() == QDialog::Accepted) { if (branchAddDialog.branchName() == oldName) return; if (isTag) m_model->renameTag(oldName, branchAddDialog.branchName()); else m_model->renameBranch(oldName, branchAddDialog.branchName()); refresh(); } enableButtons(); }
bool BranchUtils::rename() { const QModelIndex selected = selectedIndex(); QTC_CHECK(selected != m_model->currentBranch()); const bool isTag = m_model->isTag(selected); QTC_CHECK(m_model->isLocal(selected) || isTag); QString oldName = m_model->fullName(selected); QStringList localNames; if (!isTag) localNames = m_model->localBranchNames(); BranchAddDialog branchAddDialog(localNames, false, m_widget); if (isTag) branchAddDialog.setWindowTitle(tr("Rename Tag")); branchAddDialog.setBranchName(oldName); branchAddDialog.setTrackedBranchName(QString(), false); branchAddDialog.exec(); if (branchAddDialog.result() == QDialog::Accepted) { if (branchAddDialog.branchName() == oldName) return false; if (isTag) m_model->renameTag(oldName, branchAddDialog.branchName()); else m_model->renameBranch(oldName, branchAddDialog.branchName()); return true; } if (QTC_GUARD(m_branchView)) m_branchView->selectionModel()->clear(); return false; }
void BranchDialog::add() { QModelIndex trackedIndex = selectedIndex(); QString trackedBranch = m_model->fullName(trackedIndex); if (trackedBranch.isEmpty()) { trackedIndex = m_model->currentBranch(); trackedBranch = m_model->fullName(trackedIndex); } const bool isLocal = m_model->isLocal(trackedIndex); const bool isTag = m_model->isTag(trackedIndex); QStringList localNames = m_model->localBranchNames(); QString suggestedNameBase = trackedBranch.mid(trackedBranch.lastIndexOf(QLatin1Char('/')) + 1); QString suggestedName = suggestedNameBase; int i = 2; while (localNames.contains(suggestedName)) { suggestedName = suggestedNameBase + QString::number(i); ++i; } BranchAddDialog branchAddDialog(localNames, true, this); branchAddDialog.setBranchName(suggestedName); branchAddDialog.setTrackedBranchName(isTag ? QString() : trackedBranch, !isLocal); if (branchAddDialog.exec() == QDialog::Accepted) { QModelIndex idx = m_model->addBranch(branchAddDialog.branchName(), branchAddDialog.track(), trackedIndex); if (!idx.isValid()) return; m_ui->branchView->selectionModel()->select(idx, QItemSelectionModel::Clear | QItemSelectionModel::Select | QItemSelectionModel::Current); m_ui->branchView->scrollTo(idx); if (QMessageBox::question(this, tr("Checkout"), tr("Checkout branch?"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) checkout(); } }