From 0f853bb49875c2ec5fc461e6aac946d3da2da328 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Wed, 22 Feb 2012 14:13:53 +0100 Subject: [PATCH] TaskModel: Sort task by id Makes it easier to later find the task again, and does actually not change the order in the normal case Change-Id: I2f36f2e7a6ab52c06e35be22820438a809ecb012 Reviewed-by: Tobias Hunger --- src/plugins/projectexplorer/taskmodel.cpp | 11 +++++++++-- src/plugins/projectexplorer/taskmodel.h | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/plugins/projectexplorer/taskmodel.cpp b/src/plugins/projectexplorer/taskmodel.cpp index 0db5926e0fd..dcebb02f6b3 100644 --- a/src/plugins/projectexplorer/taskmodel.cpp +++ b/src/plugins/projectexplorer/taskmodel.cpp @@ -114,14 +114,21 @@ QList TaskModel::tasks(const Core::Id &categoryId) const return taskList; } +bool sortById(const Task &task, unsigned int id) +{ + return task.taskId < id; +} + void TaskModel::addTask(const Task &task) { Q_ASSERT(m_categories.keys().contains(task.category)); CategoryData &data = m_categories[task.category]; CategoryData &global = m_categories[Core::Id()]; - beginInsertRows(QModelIndex(), m_tasks.count(), m_tasks.count()); - m_tasks.append(task); + QList::iterator it = qLowerBound(m_tasks.begin(), m_tasks.end(),task.taskId, sortById); + int i = it - m_tasks.begin(); + beginInsertRows(QModelIndex(), i, i); + m_tasks.insert(it, task); data.addTask(task); global.addTask(task); endInsertRows(); diff --git a/src/plugins/projectexplorer/taskmodel.h b/src/plugins/projectexplorer/taskmodel.h index d977b2547f2..1dfb6733c93 100644 --- a/src/plugins/projectexplorer/taskmodel.h +++ b/src/plugins/projectexplorer/taskmodel.h @@ -116,7 +116,7 @@ private: }; QHash m_categories; // category id to data - QList m_tasks; // all tasks (in order of insertion) + QList m_tasks; // all tasks (in order of id) QHash m_fileNotFound; int m_maxSizeOfFileName;