diff options
author | Brian McGillion <brian.mcgillion@flander.com> | 2009-09-15 13:03:13 +0300 |
---|---|---|
committer | Brian McGillion <brian.mcgillion@flander.com> | 2009-09-21 12:29:31 +0300 |
commit | 989e1b5acfb2c97ceb9dc38f6f1d795362924a6c (patch) | |
tree | b1c8baf0106bac117c83c764833eca87bf806106 /src/plugins/mercurial/commiteditor.cpp | |
parent | 0915342d15b55b611c80993d524a91920255b436 (diff) | |
download | qt-creator-989e1b5acfb2c97ceb9dc38f6f1d795362924a6c.tar.gz |
Mercurial plugin, merge request with suggested fixes.
Diffstat (limited to 'src/plugins/mercurial/commiteditor.cpp')
-rw-r--r-- | src/plugins/mercurial/commiteditor.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/plugins/mercurial/commiteditor.cpp b/src/plugins/mercurial/commiteditor.cpp new file mode 100644 index 0000000000..4aae9008d3 --- /dev/null +++ b/src/plugins/mercurial/commiteditor.cpp @@ -0,0 +1,68 @@ +#include "commiteditor.h" +#include "mercurialcommitwidget.h" + +#include <vcsbase/submitfilemodel.h> + +#include <QtCore/QDebug> + +#include <QDir> //TODO REMOVE WHEN BASE FILE CHANGES ARE PULLED + +using namespace Mercurial::Internal; + +CommitEditor::CommitEditor(const VCSBase::VCSBaseSubmitEditorParameters *parameters, QWidget *parent) + : VCSBase::VCSBaseSubmitEditor(parameters, new MercurialCommitWidget(parent)), + fileModel(0) +{ + setDisplayName(tr("Commit Editor")); +} + +MercurialCommitWidget *CommitEditor::commitWidget() +{ + return static_cast<MercurialCommitWidget *>(widget()); +} + +void CommitEditor::setFields(const QFileInfo &repositoryRoot, const QString &branch, + const QString &userName, const QString &email, + const QList<QPair<QString, QString> > &repoStatus) +{ + MercurialCommitWidget *mercurialWidget = commitWidget(); + if (!mercurialWidget) + return; + + mercurialWidget->setFields(repositoryRoot.absoluteFilePath(), branch, userName, email); + + fileModel = new VCSBase::SubmitFileModel(this); + + //TODO Messy tidy this up + typedef QPair<QString, QString> PAIR; + QStringList shouldTrack; + + foreach (PAIR status, repoStatus) { + if (status.first == "Untracked") + shouldTrack.append(status.second); + else + fileModel->addFile(status.second, status.first, false); + } + + VCSBase::VCSBaseSubmitEditor::filterUntrackedFilesOfProject(repositoryRoot.absoluteFilePath(), + &shouldTrack); + + foreach (QString track, shouldTrack) { + foreach (PAIR status, repoStatus) { + if (status.second == track) + fileModel->addFile(status.second, status.first, false); + } + } + + setFileModel(fileModel); +} + +QString CommitEditor::committerInfo() +{ + return commitWidget()->committer(); +} + +QString CommitEditor::repoRoot() +{ + return commitWidget()->repoRoot(); +} |