Commit 57a6f04c authored by Orgad Shaneh's avatar Orgad Shaneh Committed by Orgad Shaneh

Git: Prevent tracking tags

Change-Id: Iea935aa226b70de936653b7637b4b9bb5e9c64cf
Reviewed-by: default avatarTobias Hunger <tobias.hunger@digia.com>
parent 11e7c706
...@@ -124,12 +124,14 @@ QString BranchAddDialog::branchName() const ...@@ -124,12 +124,14 @@ QString BranchAddDialog::branchName() const
void BranchAddDialog::setTrackedBranchName(const QString &name, bool remote) void BranchAddDialog::setTrackedBranchName(const QString &name, bool remote)
{ {
m_ui->trackingCheckBox->setVisible(true); m_ui->trackingCheckBox->setVisible(true);
if (!name.isEmpty()) if (!name.isEmpty()) {
m_ui->trackingCheckBox->setText(remote ? tr("Track remote branch \'%1\'").arg(name) : m_ui->trackingCheckBox->setText(remote ? tr("Track remote branch \'%1\'").arg(name) :
tr("Track local branch \'%1\'").arg(name)); tr("Track local branch \'%1\'").arg(name));
else m_ui->trackingCheckBox->setChecked(remote);
} else {
m_ui->trackingCheckBox->setVisible(false); m_ui->trackingCheckBox->setVisible(false);
m_ui->trackingCheckBox->setChecked(remote); m_ui->trackingCheckBox->setChecked(false);
}
} }
bool BranchAddDialog::track() bool BranchAddDialog::track()
......
...@@ -128,6 +128,7 @@ void BranchDialog::add() ...@@ -128,6 +128,7 @@ void BranchDialog::add()
trackedBranch = m_model->branchName(trackedIndex); trackedBranch = m_model->branchName(trackedIndex);
} }
const bool isLocal = m_model->isLocal(trackedIndex); const bool isLocal = m_model->isLocal(trackedIndex);
const bool isTag = m_model->isTag(trackedIndex);
QStringList localNames = m_model->localBranchNames(); QStringList localNames = m_model->localBranchNames();
...@@ -141,7 +142,7 @@ void BranchDialog::add() ...@@ -141,7 +142,7 @@ void BranchDialog::add()
BranchAddDialog branchAddDialog(true, this); BranchAddDialog branchAddDialog(true, this);
branchAddDialog.setBranchName(suggestedName); branchAddDialog.setBranchName(suggestedName);
branchAddDialog.setTrackedBranchName(trackedBranch, !isLocal); branchAddDialog.setTrackedBranchName(isTag ? QString() : trackedBranch, !isLocal);
if (branchAddDialog.exec() == QDialog::Accepted && m_model) { if (branchAddDialog.exec() == QDialog::Accepted && m_model) {
QModelIndex idx = m_model->addBranch(branchAddDialog.branchName(), branchAddDialog.track(), trackedIndex); QModelIndex idx = m_model->addBranch(branchAddDialog.branchName(), branchAddDialog.track(), trackedIndex);
......
...@@ -77,6 +77,18 @@ public: ...@@ -77,6 +77,18 @@ public:
return children.isEmpty(); return children.isEmpty();
} }
bool isTag() const
{
if (!parent)
return false;
for (const BranchNode *p = this; p->parent; p = p->parent) {
// find root child with name "tags"
if (!p->parent->parent && p->name == QLatin1String("tags"))
return true;
}
return false;
}
bool childOf(BranchNode *node) const bool childOf(BranchNode *node) const
{ {
if (this == node) if (this == node)
...@@ -435,6 +447,13 @@ bool BranchModel::isLeaf(const QModelIndex &idx) const ...@@ -435,6 +447,13 @@ bool BranchModel::isLeaf(const QModelIndex &idx) const
return node->isLeaf(); return node->isLeaf();
} }
bool BranchModel::isTag(const QModelIndex &idx) const
{
if (!idx.isValid())
return false;
return indexToNode(idx)->isTag();
}
void BranchModel::removeBranch(const QModelIndex &idx) void BranchModel::removeBranch(const QModelIndex &idx)
{ {
QString branch = branchName(idx); QString branch = branchName(idx);
......
...@@ -74,6 +74,7 @@ public: ...@@ -74,6 +74,7 @@ public:
QString sha(const QModelIndex &idx) const; QString sha(const QModelIndex &idx) const;
bool isLocal(const QModelIndex &idx) const; bool isLocal(const QModelIndex &idx) const;
bool isLeaf(const QModelIndex &idx) const; bool isLeaf(const QModelIndex &idx) const;
bool isTag(const QModelIndex &idx) const;
void removeBranch(const QModelIndex &idx); void removeBranch(const QModelIndex &idx);
void checkoutBranch(const QModelIndex &idx); void checkoutBranch(const QModelIndex &idx);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment