summaryrefslogtreecommitdiff
path: root/src/plugins/mercurial/commiteditor.cpp
diff options
context:
space:
mode:
authorBrian McGillion <brian.mcgillion@flander.com>2009-09-15 13:03:13 +0300
committerBrian McGillion <brian.mcgillion@flander.com>2009-09-21 12:29:31 +0300
commit989e1b5acfb2c97ceb9dc38f6f1d795362924a6c (patch)
treeb1c8baf0106bac117c83c764833eca87bf806106 /src/plugins/mercurial/commiteditor.cpp
parent0915342d15b55b611c80993d524a91920255b436 (diff)
downloadqt-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.cpp68
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();
+}