From 2547d9a7d91b2b9fb8c61c063cdd7fb2fb261099 Mon Sep 17 00:00:00 2001
From: Eike Ziller <eike.ziller@nokia.com>
Date: Fri, 17 Feb 2012 08:55:17 +0100
Subject: [PATCH] Add ActionContainer::insertGroup

Change-Id: I1a7047e0ccc074bb38661ecd34e2c0e64469d843
Reviewed-by: Jarek Kobus <jaroslaw.kobus@nokia.com>
---
 .../coreplugin/actionmanager/actioncontainer.cpp     | 12 ++++++++++++
 .../coreplugin/actionmanager/actioncontainer.h       |  1 +
 .../coreplugin/actionmanager/actioncontainer_p.h     |  1 +
 3 files changed, 14 insertions(+)

diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
index 4cce3a656ca..ed771668b33 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
@@ -187,6 +187,18 @@ void ActionContainerPrivate::appendGroup(const Id &groupId)
     m_groups.append(Group(groupId));
 }
 
+void ActionContainerPrivate::insertGroup(const Id &before, const Id &groupId)
+{
+    QList<Group>::iterator it = m_groups.begin();
+    while (it != m_groups.end()) {
+        if (it->id == before) {
+            m_groups.insert(it, Group(groupId));
+            break;
+        }
+        ++it;
+    }
+}
+
 QList<Group>::const_iterator ActionContainerPrivate::findGroup(const Id &groupId) const
 {
     QList<Group>::const_iterator it = m_groups.constBegin();
diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.h b/src/plugins/coreplugin/actionmanager/actioncontainer.h
index c05e53dde71..6335d5a8422 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer.h
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer.h
@@ -68,6 +68,7 @@ public:
 
     virtual QAction *insertLocation(const Id &group) const = 0;
     virtual void appendGroup(const Id &group) = 0;
+    virtual void insertGroup(const Id &before, const Id &group) = 0;
     virtual void addAction(Command *action, const Id &group = Id()) = 0;
     virtual void addMenu(ActionContainer *menu, const Id &group = Id()) = 0;
     virtual void addMenu(ActionContainer *before, ActionContainer *menu, const Id &group = Id()) = 0;
diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer_p.h b/src/plugins/coreplugin/actionmanager/actioncontainer_p.h
index 2b6edf43ec7..1046e324643 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer_p.h
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer_p.h
@@ -61,6 +61,7 @@ public:
 
     QAction *insertLocation(const Id &groupId) const;
     void appendGroup(const Id &id);
+    void insertGroup(const Id &before, const Id &groupId);
     void addAction(Command *action, const Id &group = Id());
     void addMenu(ActionContainer *menu, const Id &group = Id());
     void addMenu(ActionContainer *before, ActionContainer *menu, const Id &group = Id());
-- 
GitLab