Mercurial > hg > easyhg
changeset 278:f7cdd5b31aed new-branches
Add "Start new branch" function. I'm not quite satisfied with the location of this one
author | Chris Cannam |
---|---|
date | Wed, 09 Feb 2011 12:03:15 +0000 |
parents | b6e4643d6c05 |
children | 5b4aa1c24407 |
files | changesetitem.cpp changesetitem.h changesetscene.cpp changesetscene.h hgaction.h hgtabwidget.cpp hgtabwidget.h historywidget.cpp historywidget.h mainwindow.cpp mainwindow.h |
diffstat | 11 files changed, 56 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/changesetitem.cpp Wed Feb 09 12:02:53 2011 +0000 +++ b/changesetitem.cpp Wed Feb 09 12:03:15 2011 +0000 @@ -153,6 +153,10 @@ menu->addSeparator(); + QAction *branch = menu->addAction(tr("Start new branch...")); + branch->setEnabled(m_current); + connect(branch, SIGNAL(triggered()), this, SLOT(newBranchActivated())); + QAction *tag = menu->addAction(tr("Add tag...")); connect(tag, SIGNAL(triggered()), this, SLOT(tagActivated())); @@ -190,6 +194,7 @@ void ChangesetItem::diffToCurrentActivated() { emit diffToCurrent(getId()); } void ChangesetItem::mergeActivated() { emit mergeFrom(getId()); } void ChangesetItem::tagActivated() { emit tag(getId()); } +void ChangesetItem::newBranchActivated() { emit newBranch(getId()); } void ChangesetItem::paint(QPainter *paint, const QStyleOptionGraphicsItem *option,
--- a/changesetitem.h Wed Feb 09 12:02:53 2011 +0000 +++ b/changesetitem.h Wed Feb 09 12:03:15 2011 +0000 @@ -64,6 +64,7 @@ void diffToCurrent(QString); void diffToParent(QString child, QString parent); void mergeFrom(QString); + void newBranch(QString); void tag(QString); public slots: @@ -77,6 +78,7 @@ void diffToCurrentActivated(); void mergeActivated(); void tagActivated(); + void newBranchActivated(); protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *);
--- a/changesetscene.cpp Wed Feb 09 12:02:53 2011 +0000 +++ b/changesetscene.cpp Wed Feb 09 12:03:15 2011 +0000 @@ -48,6 +48,9 @@ connect(item, SIGNAL(mergeFrom(QString)), this, SIGNAL(mergeFrom(QString))); + connect(item, SIGNAL(newBranch(QString)), + this, SIGNAL(newBranch(QString))); + connect(item, SIGNAL(tag(QString)), this, SIGNAL(tag(QString))); }
--- a/changesetscene.h Wed Feb 09 12:02:53 2011 +0000 +++ b/changesetscene.h Wed Feb 09 12:03:15 2011 +0000 @@ -46,6 +46,7 @@ void diffToParent(QString id, QString parent); void diffToCurrent(QString id); void mergeFrom(QString id); + void newBranch(QString id); void tag(QString id); private slots:
--- a/hgaction.h Wed Feb 09 12:02:53 2011 +0000 +++ b/hgaction.h Wed Feb 09 12:03:15 2011 +0000 @@ -53,6 +53,7 @@ ACT_RESOLVE_MARK, ACT_RETRY_MERGE, ACT_TAG, + ACT_NEW_BRANCH, ACT_HG_IGNORE, };
--- a/hgtabwidget.cpp Wed Feb 09 12:02:53 2011 +0000 +++ b/hgtabwidget.cpp Wed Feb 09 12:03:15 2011 +0000 @@ -72,6 +72,9 @@ connect(m_historyWidget, SIGNAL(mergeFrom(QString)), this, SIGNAL(mergeFrom(QString))); + connect(m_historyWidget, SIGNAL(newBranch(QString)), + this, SIGNAL(newBranch(QString))); + connect(m_historyWidget, SIGNAL(tag(QString)), this, SIGNAL(tag(QString))); }
--- a/hgtabwidget.h Wed Feb 09 12:02:53 2011 +0000 +++ b/hgtabwidget.h Wed Feb 09 12:03:15 2011 +0000 @@ -93,6 +93,7 @@ void diffToParent(QString id, QString parent); void diffToCurrent(QString id); void mergeFrom(QString id); + void newBranch(QString id); void tag(QString id); public slots:
--- a/historywidget.cpp Wed Feb 09 12:02:53 2011 +0000 +++ b/historywidget.cpp Wed Feb 09 12:03:15 2011 +0000 @@ -280,6 +280,9 @@ connect(scene, SIGNAL(mergeFrom(QString)), this, SIGNAL(mergeFrom(QString))); + connect(scene, SIGNAL(newBranch(QString)), + this, SIGNAL(newBranch(QString))); + connect(scene, SIGNAL(tag(QString)), this, SIGNAL(tag(QString))); }
--- a/historywidget.h Wed Feb 09 12:02:53 2011 +0000 +++ b/historywidget.h Wed Feb 09 12:03:15 2011 +0000 @@ -56,6 +56,7 @@ void diffToParent(QString id, QString parent); void diffToCurrent(QString id); void mergeFrom(QString id); + void newBranch(QString id); void tag(QString id); private:
--- a/mainwindow.cpp Wed Feb 09 12:02:53 2011 +0000 +++ b/mainwindow.cpp Wed Feb 09 12:03:15 2011 +0000 @@ -447,14 +447,11 @@ QString MainWindow::filterTag(QString tag) { - for(int i = 0; i < tag.size(); i++) - { - if (tag[i].isLower() || tag[i].isUpper() || tag[i].isDigit() || (tag[i] == QChar('.'))) - { + for(int i = 0; i < tag.size(); i++) { + if (tag[i].isLower() || tag[i].isUpper() || + tag[i].isDigit() || (tag[i] == QChar('.'))) { //ok - } - else - { + } else { tag[i] = QChar('_'); } } @@ -462,6 +459,26 @@ } +void MainWindow::hgNewBranch(QString id) +{ + QStringList params; + QString branch; + + if (ConfirmCommentDialog::confirmAndGetShortComment + (this, + tr("New Branch"), + tr("Enter new branch name:"), + branch, + tr("Start Branch"))) { + if (!branch.isEmpty()) {//!!! do something better if it is empty + + params << "branch" << filterTag(branch); + runner->requestAction(HgAction(ACT_NEW_BRANCH, workFolderPath, params)); + } + } +} + + void MainWindow::hgTag(QString id) { QStringList params; @@ -1695,6 +1712,9 @@ case ACT_INCOMING: // returns non-zero code and no output if the check was // successful but there are no changes pending + + //!!! -- won't do, there may legitimately be warnings, + //!!! -- e.g. certificate not verified if (output.trimmed() == "") { showIncoming(""); return; @@ -1897,6 +1917,11 @@ shouldHgStat = true; break; + case ACT_NEW_BRANCH: + shouldHgStat = true; + hgTabs->showWorkTab(); + break; + case ACT_DIFF_SUMMARY: QMessageBox::information(this, tr("Change summary"), format3(tr("Summary of uncommitted changes"), @@ -2082,6 +2107,9 @@ connect(hgTabs, SIGNAL(mergeFrom(QString)), this, SLOT(hgMergeFrom(QString))); + connect(hgTabs, SIGNAL(newBranch(QString)), + this, SLOT(hgNewBranch(QString))); + connect(hgTabs, SIGNAL(tag(QString)), this, SLOT(hgTag(QString))); }