From b9dfbd8ec309dc0417c23ad8e118fd835d74c7ec Mon Sep 17 00:00:00 2001
From: Aurindam Jana <aurindam.jana@nokia.com>
Date: Thu, 22 Mar 2012 12:00:47 +0100
Subject: [PATCH] QtMessageLogHandler: Sorting child items

Insert child items in sorted order if the "Sort Members and
Classes Alphabetically" is set in Locals And Expressions.

Change-Id: Ib21803326ec3f35c9541c08d876c4a38c0202a9f
Reviewed-by: hjk <qthjk@ovi.com>
---
 src/plugins/debugger/qml/qmlengine.cpp           | 4 ++--
 src/plugins/debugger/qml/qmlv8debuggerclient.cpp | 2 +-
 src/plugins/debugger/qtmessageloghandler.cpp     | 9 ++++++++-
 src/plugins/debugger/qtmessageloghandler.h       | 2 +-
 4 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index e9d5c42a902..abc050cf4c9 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -1309,7 +1309,7 @@ QtMessageLogItem *QmlEngine::constructLogItemTree(
             QtMessageLogItem *child = constructLogItemTree(item,
                                                            i.value(), i.key());
             if (child)
-                item->insertChildSorted(child);
+                item->insertChild(child);
         }
     } else if (result.type() == QVariant::List) {
         if (key.isEmpty())
@@ -1321,7 +1321,7 @@ QtMessageLogItem *QmlEngine::constructLogItemTree(
             QtMessageLogItem *child = constructLogItemTree(item, resultList.at(i),
                                                           QString::number(i));
             if (child)
-                item->insertChildSorted(child);
+                item->insertChild(child);
         }
     } else if (result.canConvert(QVariant::String)) {
         item->text = result.toString();
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
index 58121ddc072..01910e1bd5c 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
@@ -995,7 +995,7 @@ QtMessageLogItem *QmlV8DebuggerClientPrivate::constructLogItemTree(
         QtMessageLogItem *child = constructLogItemTree(
                     item, extractData(property, refsVal), refsVal);
         if (child)
-            item->insertChildSorted(child);
+            item->insertChild(child);
     }
 
     return item;
diff --git a/src/plugins/debugger/qtmessageloghandler.cpp b/src/plugins/debugger/qtmessageloghandler.cpp
index 5080d8efc95..3ca2d33bfa0 100644
--- a/src/plugins/debugger/qtmessageloghandler.cpp
+++ b/src/plugins/debugger/qtmessageloghandler.cpp
@@ -31,6 +31,8 @@
 **************************************************************************/
 
 #include "qtmessageloghandler.h"
+#include "debuggercore.h"
+#include "debuggeractions.h"
 
 #include <utils/qtcassert.h>
 
@@ -94,8 +96,13 @@ bool QtMessageLogItem::insertChildren(int position, int count)
     return true;
 }
 
-void QtMessageLogItem::insertChildSorted(QtMessageLogItem *item)
+void QtMessageLogItem::insertChild(QtMessageLogItem *item)
 {
+    if (!debuggerCore()->boolSetting(SortStructMembers)) {
+        m_childItems.insert(m_childItems.count(), item);
+        return;
+    }
+
     int i = 0;
     for (; i < m_childItems.count(); i++) {
         if (item->text < m_childItems[i]->text) {
diff --git a/src/plugins/debugger/qtmessageloghandler.h b/src/plugins/debugger/qtmessageloghandler.h
index b76d85d043b..6e84f67a189 100644
--- a/src/plugins/debugger/qtmessageloghandler.h
+++ b/src/plugins/debugger/qtmessageloghandler.h
@@ -126,7 +126,7 @@ public:
     QtMessageLogItem *child(int number);
     int childCount() const;
     bool insertChildren(int position, int count);
-    void insertChildSorted(QtMessageLogItem *item);
+    void insertChild(QtMessageLogItem *item);
     bool insertChild(int position, QtMessageLogItem *item);
     QtMessageLogItem *parent();
     bool removeChildren(int position, int count);
-- 
GitLab