[gitg] Keep builtin elements in same order
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg] Keep builtin elements in same order
- Date: Wed, 3 Jul 2013 07:30:16 +0000 (UTC)
commit 7baeb3065a7c9e81a597e14833d9f71b9aaad323
Author: Jesse van den Kieboom <jessevdk gmail com>
Date: Wed Jul 3 09:26:27 2013 +0200
Keep builtin elements in same order
gitg/gitg-ui-elements.vala | 20 +++++++++++++++-----
1 files changed, 15 insertions(+), 5 deletions(-)
---
diff --git a/gitg/gitg-ui-elements.vala b/gitg/gitg-ui-elements.vala
index 16a1d2a..ae326bb 100644
--- a/gitg/gitg-ui-elements.vala
+++ b/gitg/gitg-ui-elements.vala
@@ -24,10 +24,10 @@ public class UIElements<T> : Object
{
private Peas.ExtensionSet d_extensions;
private Gee.HashMap<string, GitgExt.UIElement> d_elements;
- private Gee.HashSet<string> d_builtin_elements;
private List<GitgExt.UIElement> d_available_elements;
private GitgExt.UIElement? d_current;
private Gtk.Stack d_stack;
+ private Gee.HashMap<string, int> d_builtin_elements;
[Notify]
public T? current
@@ -146,14 +146,22 @@ public class UIElements<T> : Object
private bool order_after(GitgExt.UIElement a, GitgExt.UIElement b)
{
- var ab = a.id in d_builtin_elements;
- var bb = b.id in d_builtin_elements;
+ var ab = d_builtin_elements.has_key(a.id);
+ var bb = d_builtin_elements.has_key(b.id);
if (ab != bb)
{
return ab ? false : true;
}
+ if (ab && bb)
+ {
+ int ai = d_builtin_elements[a.id];
+ int bi = d_builtin_elements[b.id];
+
+ return ai > bi;
+ }
+
return a.negotiate_order(b) > 0;
}
@@ -253,15 +261,17 @@ public class UIElements<T> : Object
{
d_extensions = extensions;
d_stack = stack;
- d_builtin_elements = new Gee.HashSet<string>();
+ d_builtin_elements = new Gee.HashMap<string, int>();
d_elements = new Gee.HashMap<string, GitgExt.UIElement>();
+ int i = 0;
+
foreach (var b in builtin)
{
GitgExt.UIElement elem = (GitgExt.UIElement)b;
- d_builtin_elements.add(elem.id);
+ d_builtin_elements[elem.id] = i++;
add_ui_element(elem);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]