diff --git a/data/glade/edit_groups_dialog.glade b/data/glade/edit_groups_dialog.glade
index 95d7b43ae..5cbdf5947 100644
--- a/data/glade/edit_groups_dialog.glade
+++ b/data/glade/edit_groups_dialog.glade
@@ -159,7 +159,7 @@
True
True
GTK_POLICY_AUTOMATIC
- GTK_POLICY_AUTOMATIC
+ GTK_POLICY_NEVER
GTK_SHADOW_IN
GTK_CORNER_TOP_LEFT
diff --git a/src/dialogs.py b/src/dialogs.py
index cc52684cd..c15e473a9 100644
--- a/src/dialogs.py
+++ b/src/dialogs.py
@@ -140,6 +140,7 @@ class EditGroupsDialog:
model.append((group, True))
self.add_group(group)
self.update_contact()
+ self.init_list() # Re-draw list to sort new item
def group_toggled_cb(self, cell, path):
self.changes_made = True
@@ -155,15 +156,21 @@ class EditGroupsDialog:
def init_list(self):
store = gtk.ListStore(str, bool)
self.list.set_model(store)
+ for column in self.list.get_columns(): # Clear treeview when re-drawing
+ self.list.remove_column(column)
+ groups = [] # Store accounts in a list so we can sort them
for g in gajim.groups[self.account].keys():
if g in helpers.special_groups:
continue
- iter = store.append()
- store.set(iter, 0, g)
+ in_group = False
if g in self.user.groups:
- store.set(iter, 1, True)
- else:
- store.set(iter, 1, False)
+ in_group = True
+ groups.append([g, in_group])
+ groups.sort()
+ for group in groups:
+ iter = store.append()
+ store.set(iter, 0, group[0]) # Group name
+ store.set(iter, 1, group[1]) # In group boolean
column = gtk.TreeViewColumn(_('Group'))
column.set_expand(True)
self.list.append_column(column)