From aed53a70ee5fc1ea12c17cf74f21e481e83c9034 Mon Sep 17 00:00:00 2001
From: Orgad Shaneh <orgad.shaneh@audiocodes.com>
Date: Tue, 25 Dec 2012 10:00:28 +0200
Subject: [PATCH] Git: Place conflicted files last in submit editor

Change-Id: Ie4c7423d85f3f568d04d6c86e8b8123c73dab5fb
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
---
 src/plugins/git/commitdata.cpp | 10 ++++++++++
 src/plugins/git/commitdata.h   |  2 ++
 2 files changed, 12 insertions(+)

diff --git a/src/plugins/git/commitdata.cpp b/src/plugins/git/commitdata.cpp
index 5796198fa6d..b31a260d653 100644
--- a/src/plugins/git/commitdata.cpp
+++ b/src/plugins/git/commitdata.cpp
@@ -108,6 +108,15 @@ static FileStates stateFor(const QChar &c)
     }
 }
 
+bool operator<(const CommitData::StateFilePair &a, const CommitData::StateFilePair &b)
+{
+    if ((a.first & UnmergedFile) && !(b.first & UnmergedFile))
+        return false;
+    if ((b.first & UnmergedFile) && !(a.first & UnmergedFile))
+        return true;
+    return a.second < b.second;
+}
+
 bool CommitData::checkLine(const QString &stateInfo, const QString &file)
 {
     QTC_ASSERT(stateInfo.count() == 2, return false);
@@ -147,6 +156,7 @@ bool CommitData::checkLine(const QString &stateInfo, const QString &file)
             files.append(qMakePair(yState, newFile));
         }
     }
+    qSort(files);
     return true;
 }
 
diff --git a/src/plugins/git/commitdata.h b/src/plugins/git/commitdata.h
index 8be3ad3993e..40fb452313c 100644
--- a/src/plugins/git/commitdata.h
+++ b/src/plugins/git/commitdata.h
@@ -109,6 +109,8 @@ private:
     bool checkLine(const QString &stateInfo, const QString &file);
 };
 
+bool operator<(const CommitData::StateFilePair &a, const CommitData::StateFilePair &b);
+
 } // namespace Internal
 } // namespace Git
 
-- 
GitLab