X-Git-Url: http://cgit.babelmonkeys.de/?p=jubjub.git;a=blobdiff_plain;f=src%2Fgui%2Fgtk%2FJubGtkRosterUI.m;h=b3899e34a1d750edf1e57d0d6961d4a8f4baf326;hp=66a050ef4002b152a0fc7362542a4999da765e8a;hb=77e1d677232eeab371a8ac2da1e542bc62bbaea6;hpb=2bf25c7ceca5ebeaaedead71af159d43cc025a23 diff --git a/src/gui/gtk/JubGtkRosterUI.m b/src/gui/gtk/JubGtkRosterUI.m index 66a050e..b3899e3 100644 --- a/src/gui/gtk/JubGtkRosterUI.m +++ b/src/gui/gtk/JubGtkRosterUI.m @@ -80,14 +80,14 @@ static gboolean filter_roster_by_presence(GtkTreeModel *model, } @implementation JubGtkRosterUI -- initWithBuilder: (GtkBuilder*)builder_ - connection: (XMPPConnection*)connection_ +- initWithConnection: (XMPPConnection*)connection_ { self = [super init]; @try { GtkTreeView *roster_view; GtkComboBox *presence_combo; + GtkBuilder *builder; groupMap = [[OFMapTable alloc] initWithKeyFunctions: keyFunctions @@ -97,7 +97,14 @@ static gboolean filter_roster_by_presence(GtkTreeModel *model, presences = [[OFCountedSet alloc] init]; connection = [connection_ retain]; - builder = g_object_ref(builder_); + builder = gtk_builder_new(); + gtk_builder_add_from_file(builder, "data/gtk/roster.ui", NULL); + gtk_builder_connect_signals(builder, NULL); + + roster_window = + GTK_WIDGET(gtk_builder_get_object(builder, "RosterWindow")); + + gtk_widget_show(roster_window); roster_model = GTK_TREE_STORE(gtk_builder_get_object(builder, "RosterTreeStore")); @@ -119,6 +126,8 @@ static gboolean filter_roster_by_presence(GtkTreeModel *model, g_signal_connect(presence_combo, "changed", G_CALLBACK(presence_changed), connection); + + g_object_unref(G_OBJECT(builder)); } @catch (id e) { [self release]; @throw e; @@ -131,16 +140,11 @@ static gboolean filter_roster_by_presence(GtkTreeModel *model, { [groupMap release]; [contactMap release]; + [chatMap release]; [presences release]; [connection release]; - if (roster_model) - g_object_unref(roster_model); - - if (roster_filter) - g_object_unref(roster_filter); - - g_object_unref(builder); + gtk_widget_destroy(roster_window); [super dealloc]; }