[ekiga/ds-gtk-application] AddressBookWindow: First steps GTK3 & Ekiga::Action porting.



commit a25a386304506f299dbea00b05fdcbbf8c7567d1
Author: Damien Sandras <dsandras seconix com>
Date:   Sun Nov 16 15:52:32 2014 +0100

    AddressBookWindow: First steps GTK3 & Ekiga::Action porting.
    
    Menus have not be reimplemented yet.

 lib/engine/gui/gtk-frontend/addressbook-window.cpp |  351 ++++++++++----------
 1 files changed, 171 insertions(+), 180 deletions(-)
---
diff --git a/lib/engine/gui/gtk-frontend/addressbook-window.cpp 
b/lib/engine/gui/gtk-frontend/addressbook-window.cpp
index ea6f365..199424e 100644
--- a/lib/engine/gui/gtk-frontend/addressbook-window.cpp
+++ b/lib/engine/gui/gtk-frontend/addressbook-window.cpp
@@ -35,6 +35,7 @@
 #include <glib/gi18n.h>
 
 #include "ekiga-settings.h"
+#include "gmstockicons.h"
 
 #include "addressbook-window.h"
 #include "book-view-gtk.h"
@@ -55,8 +56,6 @@ struct _AddressBookWindowPrivate
   GtkWidget *tree_view;
   GtkWidget *notebook;
   GtkTreeSelection *selection;
-  GtkWidget *menu_item_core;
-  GtkWidget *menu_item_view;
   GtkAccelGroup *accel;
 };
 
@@ -81,14 +80,6 @@ G_DEFINE_TYPE (AddressBookWindow, addressbook_window, GM_TYPE_WINDOW);
  * Callbacks
  */
 
-/* DESCRIPTION  : Called when the ContactCore is updated, ie the core_updated
- *                signal has been emitted. 
- * BEHAVIOR     : Update the AddressBookWindow main menu with new functions.
- * PRE          : The given GtkWidget pointer must be an SearchBook GObject.
- */
-static void on_core_updated (gpointer data);
-
-
 /* DESCRIPTION  : Called at startup to populate the window
  * BEHAVIOR     :
  * PRE          : The given GtkWidget pointer must be an addressbook window.
@@ -97,7 +88,7 @@ static bool on_visit_sources (Ekiga::SourcePtr source,
                              gpointer data);
 
 /* DESCRIPTION  : Called at startup to populate the window
- * BEHAVIOR     : 
+ * BEHAVIOR     :
  * PRE          : The given GtkWidget pointer must be an SearchBook GObject.
  */
 static void on_source_added (Ekiga::SourcePtr source,
@@ -105,7 +96,7 @@ static void on_source_added (Ekiga::SourcePtr source,
 
 
 /* DESCRIPTION  : Called at startup to populate the window
- * BEHAVIOR     : 
+ * BEHAVIOR     :
  * PRE          : The given GtkWidget pointer must be an SearchBook GObject.
  */
 static bool visit_books (Ekiga::BookPtr book,
@@ -167,7 +158,7 @@ static void on_notebook_realize (GtkWidget *notebook,
 
 
 /* DESCRIPTION  : Called when the user has selected another Book.
- * BEHAVIOR     : Updates the general menu. 
+ * BEHAVIOR     : Updates the general menu.
  * PRE          : /
  */
 static void on_book_selection_changed (GtkTreeSelection *selection,
@@ -187,6 +178,27 @@ static gint on_book_clicked (GtkWidget *tree_view,
  */
 
 /* DESCRIPTION  : /
+ * BEHAVIOR     : Create and return the window GtkHeaderBar.
+ * PRE          : /
+ */
+static GtkWidget *addressbook_window_build_headerbar (AddressBookWindow *self);
+
+
+/* DESCRIPTION  : /
+ * BEHAVIOR     : Create and return the window GtkTreeView.
+ * PRE          : /
+ */
+static GtkWidget *addressbook_window_build_tree_view (AddressBookWindow *self);
+
+
+/* DESCRIPTION  : /
+ * BEHAVIOR     : Create and return the window GtkNotebook.
+ * PRE          : /
+ */
+static GtkWidget *addressbook_window_build_notebook (AddressBookWindow *self);
+
+
+/* DESCRIPTION  : /
  * BEHAVIOR     : Add a view of the given Book in the AddressBookWindow.
  * PRE          : /
  */
@@ -195,7 +207,7 @@ static void addressbook_window_add_book (AddressBookWindow * self,
 
 
 /* DESCRIPTION  : /
- * BEHAVIOR     : Update the Book description of the given Book 
+ * BEHAVIOR     : Update the Book description of the given Book
  *                in the AddressBookWindow.
  * PRE          : /
  */
@@ -224,35 +236,6 @@ static gboolean find_iter_for_book (AddressBookWindow *addressbook_window,
 
 
 /* Implementation of the callbacks */
-static void
-on_core_updated (gpointer data)
-{
-  AddressBookWindow *self = NULL;
-
-  GtkWidget *item = NULL;
-
-  MenuBuilderGtk menu_builder;
-
-  self = (AddressBookWindow *) data;
-
-  if (self->priv->core->populate_menu (menu_builder)) {
-
-    item = gtk_separator_menu_item_new ();
-    gtk_menu_shell_append (GTK_MENU_SHELL (menu_builder.menu), item);
-  }
-
-  item = gtk_image_menu_item_new_from_stock (GTK_STOCK_CLOSE, self->priv->accel);
-  gtk_menu_shell_append (GTK_MENU_SHELL (menu_builder.menu), item);
-  g_signal_connect_swapped (item, "activate",
-                            G_CALLBACK (gtk_widget_hide),
-                            (gpointer) self);
-
-  gtk_menu_item_set_submenu (GTK_MENU_ITEM (self->priv->menu_item_core),
-                             menu_builder.menu);
-
-  gtk_widget_show_all (menu_builder.menu);
-}
-
 static bool
 on_visit_sources (Ekiga::SourcePtr source,
                  gpointer data)
@@ -325,11 +308,6 @@ on_view_updated (BookViewGtk *view,
 
   self = ADDRESSBOOK_WINDOW (data);
 
-  menu = gtk_menu_new ();
-  book_view_gtk_populate_menu (view, menu);
-  gtk_menu_item_set_submenu (GTK_MENU_ITEM (self->priv->menu_item_view), menu);
-  gtk_widget_show_all (menu);
-  gtk_widget_set_sensitive (self->priv->menu_item_view, TRUE);
 }
 
 
@@ -364,18 +342,10 @@ on_book_selection_changed (GtkTreeSelection *selection,
     page = gtk_notebook_page_num (GTK_NOTEBOOK (self->priv->notebook), view);
     gtk_notebook_set_current_page (GTK_NOTEBOOK (self->priv-> notebook), page);
 
-    menu = gtk_menu_new ();
-    book_view_gtk_populate_menu (BOOK_VIEW_GTK (view), menu);
-    gtk_menu_item_set_submenu (GTK_MENU_ITEM (self->priv-> menu_item_view),
-                               menu);
-    gtk_widget_show_all (menu);
-    gtk_widget_set_sensitive (self->priv->menu_item_view, TRUE);
     g_object_unref (view);
-  } 
+  }
   else {
 
-    gtk_widget_set_sensitive (self->priv->menu_item_view, FALSE);
-    gtk_menu_item_set_submenu (GTK_MENU_ITEM (self->priv->menu_item_view), NULL);
   }
 }
 
@@ -430,6 +400,112 @@ on_book_clicked (GtkWidget *tree_view,
 
 
 /* Implementation of the private functions */
+static GtkWidget *
+addressbook_window_build_headerbar (AddressBookWindow *self)
+{
+  GtkWidget *image = NULL;
+  GtkWidget *button = NULL;
+
+  GtkWidget *headerbar = NULL;
+
+  /* Build it */
+  headerbar = gtk_header_bar_new ();
+  gtk_header_bar_set_title (GTK_HEADER_BAR (headerbar), _("Address Book"));
+  gtk_window_set_titlebar (GTK_WINDOW (self), headerbar);
+
+  /* Pack buttons */
+  button = gtk_button_new ();
+  image = gtk_image_new_from_icon_name ("call-start-symbolic", GTK_ICON_SIZE_MENU);
+  gtk_button_set_image (GTK_BUTTON (button), image);
+  gtk_widget_set_tooltip_text (GTK_WIDGET (button),
+                               _("Call the selected contact"));
+  gtk_actionable_set_detailed_action_name (GTK_ACTIONABLE (button), "win.call");
+  gtk_header_bar_pack_start (GTK_HEADER_BAR (headerbar), button);
+
+  button = gtk_menu_button_new ();
+  g_object_set (G_OBJECT (button), "use-popover", true, NULL);
+  image = gtk_image_new_from_icon_name ("open-menu-symbolic", GTK_ICON_SIZE_MENU);
+  gtk_button_set_image (GTK_BUTTON (button), image);
+  /*
+  gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button),
+                                  G_MENU_MODEL (gtk_builder_get_object (mw->priv->builder, "menubar")));
+  */
+  gtk_header_bar_pack_end (GTK_HEADER_BAR (headerbar), button);
+
+  gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (headerbar), TRUE);
+
+  return headerbar;
+}
+
+
+static GtkWidget *
+addressbook_window_build_tree_view (AddressBookWindow *self)
+{
+  GtkWidget *tree_view = NULL;
+
+  GtkListStore *store = NULL;
+
+  GtkTreeViewColumn *column = NULL;
+  GtkCellRenderer *cell = NULL;
+
+
+  /* The store listing the Books */
+  store = gtk_list_store_new (NUM_COLUMNS,
+                              G_TYPE_STRING,
+                              G_TYPE_STRING,
+                              G_TYPE_POINTER,
+                              G_TYPE_OBJECT);
+  tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
+  gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), FALSE);
+  g_object_unref (store);
+
+  /* Several renderers for one column */
+  column = gtk_tree_view_column_new ();
+  gtk_tree_view_column_set_spacing (column, 0);
+  gtk_tree_view_column_set_alignment (column, 0.0);
+
+  cell = gtk_cell_renderer_pixbuf_new ();
+  gtk_tree_view_column_pack_start (column, cell, FALSE);
+  gtk_tree_view_column_add_attribute (column, cell,
+                                      "icon-name", COLUMN_PIXBUF);
+  g_object_set (cell, "xalign", 0.0, "xpad", 6, "stock-size", 1, NULL);
+
+  cell = gtk_cell_renderer_text_new ();
+  gtk_tree_view_column_pack_end (column, cell, TRUE);
+  gtk_tree_view_column_add_attribute (column, cell,
+                                      "text", COLUMN_NAME);
+  g_object_set (cell, "ellipsize", PANGO_ELLIPSIZE_END, "width-chars", 30, NULL);
+
+  gtk_tree_view_column_set_sort_column_id (column, COLUMN_NAME);
+  gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN (column), FALSE);
+  gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),
+                               GTK_TREE_VIEW_COLUMN (column));
+
+  self->priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
+  gtk_tree_selection_set_mode (GTK_TREE_SELECTION (self->priv->selection),
+                               GTK_SELECTION_SINGLE);
+  g_signal_connect (self->priv->selection, "changed",
+                    G_CALLBACK (on_book_selection_changed), self);
+  g_signal_connect (tree_view, "event-after",
+                    G_CALLBACK (on_book_clicked), self);
+
+  return tree_view;
+}
+
+
+static GtkWidget *
+addressbook_window_build_notebook (AddressBookWindow *self)
+{
+  GtkWidget *notebook = gtk_notebook_new ();
+  gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE);
+
+  g_signal_connect (notebook, "realize",
+                    G_CALLBACK (on_notebook_realize), self);
+
+  return notebook;
+}
+
+
 static void
 addressbook_window_add_book (AddressBookWindow *self,
                              Ekiga::BookPtr book)
@@ -439,18 +515,16 @@ addressbook_window_add_book (AddressBookWindow *self,
   GtkWidget *view = NULL;
 
   view = book_view_gtk_new (book);
+  gtk_widget_show_all (view);
 
   gtk_notebook_append_page (GTK_NOTEBOOK (self->priv->notebook),
                            view, NULL);
 
-  if (gtk_widget_get_visible (GTK_WIDGET (self)))
-    gtk_widget_show_all (view);
-
   g_signal_connect (view, "updated", G_CALLBACK (on_view_updated), self);
 
   store = gtk_tree_view_get_model (GTK_TREE_VIEW (self->priv->tree_view));
-  gtk_tree_store_append (GTK_TREE_STORE (store), &iter, NULL);
-  gtk_tree_store_set (GTK_TREE_STORE (store), &iter,
+  gtk_list_store_append (GTK_LIST_STORE (store), &iter);
+  gtk_list_store_set (GTK_LIST_STORE (store), &iter,
                       COLUMN_NAME, book->get_name ().c_str (),
                       COLUMN_BOOK_POINTER, book.get (),
                       COLUMN_VIEW, view,
@@ -474,7 +548,7 @@ addressbook_window_update_book (AddressBookWindow *self,
 
   store = gtk_tree_view_get_model (GTK_TREE_VIEW (self->priv->tree_view));
   if (find_iter_for_book (self, book, &iter))
-    gtk_tree_store_set (GTK_TREE_STORE (store), &iter,
+    gtk_list_store_set (GTK_LIST_STORE (store), &iter,
                         COLUMN_NAME, book->get_name ().c_str (),
                         -1);
 }
@@ -490,8 +564,6 @@ addressbook_window_remove_book (AddressBookWindow *self,
   GtkTreeModel *store = NULL;
 
   gtk_notebook_set_current_page (GTK_NOTEBOOK (self->priv->notebook), 0);
-  gtk_widget_set_sensitive (self->priv->menu_item_view, FALSE);
-  gtk_menu_item_set_submenu (GTK_MENU_ITEM (self->priv->menu_item_view), NULL);
 
   store = gtk_tree_view_get_model (GTK_TREE_VIEW (self->priv->tree_view));
 
@@ -508,7 +580,7 @@ addressbook_window_remove_book (AddressBookWindow *self,
                                           NULL,        /* closure */
                                           NULL,        /* func */
                                           self); /* data */
-    gtk_tree_store_remove (GTK_TREE_STORE (store), &iter);
+    gtk_list_store_remove (GTK_LIST_STORE (store), &iter);
     page = gtk_notebook_page_num (GTK_NOTEBOOK (self->priv-> notebook), view);
     g_object_unref (view);
     if (page > 0)
@@ -529,7 +601,7 @@ find_iter_for_book (AddressBookWindow *self,
 
   if (gtk_tree_model_get_iter_first (store, iter)) {
 
-    while (gtk_tree_store_iter_is_valid (GTK_TREE_STORE (store), iter)) {
+    while (gtk_list_store_iter_is_valid (GTK_LIST_STORE (store), iter)) {
 
       gtk_tree_model_get (store, iter,
                           COLUMN_BOOK_POINTER, &book_iter,
@@ -544,8 +616,8 @@ find_iter_for_book (AddressBookWindow *self,
         return FALSE;
     }
 
-    return gtk_tree_store_iter_is_valid (GTK_TREE_STORE (store), iter);
-  } 
+    return gtk_list_store_iter_is_valid (GTK_LIST_STORE (store), iter);
+  }
 
   return FALSE;
 }
@@ -557,18 +629,6 @@ addressbook_window_dispose (GObject *obj)
 {
   AddressBookWindow *self = ADDRESSBOOK_WINDOW (obj);
 
-  if (self->priv->menu_item_view) {
-
-    g_object_unref (self->priv->menu_item_view);
-    self->priv->menu_item_view = NULL;
-  }
-
-  if (self->priv->menu_item_core) {
-
-    g_object_unref (self->priv->menu_item_core);
-    self->priv->menu_item_core = NULL;
-  }
-
   G_OBJECT_CLASS (addressbook_window_parent_class)->dispose (obj);
 }
 
@@ -583,12 +643,14 @@ addressbook_window_finalize (GObject *obj)
   G_OBJECT_CLASS (addressbook_window_parent_class)->finalize (obj);
 }
 
+
 static void
 addressbook_window_init (G_GNUC_UNUSED AddressBookWindow* self)
 {
   /* can't do anything here... we're waiting for a core :-/ */
 }
 
+
 static void
 addressbook_window_class_init (AddressBookWindowClass *klass)
 {
@@ -598,6 +660,7 @@ addressbook_window_class_init (AddressBookWindowClass *klass)
   gobject_class->finalize = addressbook_window_finalize;
 }
 
+
 /*
  * Public API
  */
@@ -608,15 +671,9 @@ addressbook_window_new (GmApplication *app)
 
   boost::signals2::connection conn;
 
-  GtkWidget *menu_bar = NULL;
-  GtkWidget *frame = NULL;
-  GtkWidget *vbox = NULL;
+  GtkWidget *headerbar = NULL;
   GtkWidget *hpaned = NULL;
 
-  GtkCellRenderer *cell = NULL;
-  GtkTreeViewColumn *column = NULL;
-  GtkTreeStore *store = NULL;
-
   Ekiga::ServiceCorePtr core = gm_application_get_core (app);
 
   self = (AddressBookWindow *) g_object_new (ADDRESSBOOK_WINDOW_TYPE,
@@ -629,113 +686,49 @@ addressbook_window_new (GmApplication *app)
     core->get<Ekiga::ContactCore> ("contact-core");
   self->priv = new AddressBookWindowPrivate (contact_core);
 
-  gtk_window_set_title (GTK_WINDOW (self), _("Address Book"));
   gtk_window_set_position (GTK_WINDOW (self), GTK_WIN_POS_CENTER);
+  gtk_window_set_icon_name (GTK_WINDOW (self), GM_ICON_LOGO);
 
-  gtk_window_set_icon_name (GTK_WINDOW (self), "x-office-address-book");
-
-  /* Start building the window */
-  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
-
-  /* The menu */
-  menu_bar = gtk_menu_bar_new ();
-
+  /* Accels */
   self->priv->accel = gtk_accel_group_new ();
   gtk_window_add_accel_group (GTK_WINDOW (self), self->priv->accel);
   g_object_unref (self->priv->accel);
 
-  self->priv->menu_item_core = 
-    gtk_menu_item_new_with_mnemonic (_("Address _Book"));
-  gtk_menu_shell_append (GTK_MENU_SHELL (menu_bar),
-                         self->priv->menu_item_core);
-  g_object_ref (self->priv->menu_item_core);
-  conn = contact_core->updated.connect (boost::bind (&on_core_updated,
-                                                     (gpointer) self));
-  self->priv->connections.add (conn);
-  on_core_updated (self); // This will add static and dynamic actions
-
-  self->priv->menu_item_view = gtk_menu_item_new_with_mnemonic (_("_Action"));
-  gtk_widget_set_sensitive (self->priv->menu_item_view, FALSE);
-  gtk_menu_shell_append (GTK_MENU_SHELL (menu_bar),
-                         self->priv->menu_item_view);
-  g_object_ref (self->priv->menu_item_view);
-
-  gtk_container_add (GTK_CONTAINER (vbox), menu_bar);
-  gtk_box_set_child_packing (GTK_BOX (vbox), menu_bar,
-                             FALSE, FALSE, 2, GTK_PACK_START);
-  gtk_container_add (GTK_CONTAINER (self), vbox);
-
+  /* Start building the window */
+  /* Headerbar */
+  headerbar = addressbook_window_build_headerbar (self);
+  gtk_widget_show_all (GTK_WIDGET (headerbar));
 
   /* A hpaned to put the list of Books and their content */
   hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
-  gtk_container_set_border_width (GTK_CONTAINER (hpaned), 6);
-  gtk_container_add (GTK_CONTAINER (vbox), hpaned);
-  gtk_box_set_child_packing (GTK_BOX (vbox), hpaned,
-                             TRUE, TRUE, 0, GTK_PACK_START);
-
-  /* The store listing the Books */
-  frame = gtk_frame_new (NULL);
-  gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
-  store = gtk_tree_store_new (NUM_COLUMNS,
-                              G_TYPE_STRING,
-                              G_TYPE_STRING,
-                              G_TYPE_POINTER,
-                              G_TYPE_OBJECT);
-  self->priv->tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
-  g_object_unref (store);
-  gtk_container_add (GTK_CONTAINER (frame), self->priv->tree_view);
-  gtk_widget_set_size_request (GTK_WIDGET (self->priv->tree_view), 185, -1);
-  gtk_paned_pack1 (GTK_PANED (hpaned), frame, TRUE, TRUE);
-
-  /* Several renderers for one column */
-  column = gtk_tree_view_column_new ();
-  cell = gtk_cell_renderer_pixbuf_new ();
-  gtk_tree_view_column_pack_start (column, cell, FALSE);
-  gtk_tree_view_column_add_attribute (column, cell,
-                                      "icon-name", COLUMN_PIXBUF);
+  gtk_container_add (GTK_CONTAINER (self), hpaned);
+  gtk_container_set_border_width (GTK_CONTAINER (hpaned), 0);
 
-  cell = gtk_cell_renderer_text_new ();
-  gtk_tree_view_column_pack_start (column, cell, FALSE);
-  gtk_tree_view_column_set_attributes (column, cell,
-                                       "text", COLUMN_NAME,
-                                       NULL);
-
-  gtk_tree_view_column_set_title (column, _("Category"));
-  gtk_tree_view_column_set_sort_column_id (column, COLUMN_NAME);
-  gtk_tree_view_column_set_sizing (GTK_TREE_VIEW_COLUMN (column),
-                                   GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-  gtk_tree_view_column_set_resizable (GTK_TREE_VIEW_COLUMN (column), true);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->tree_view),
-                               GTK_TREE_VIEW_COLUMN (column));
+  self->priv->tree_view = addressbook_window_build_tree_view (self);
+  gtk_widget_show_all (GTK_WIDGET (self->priv->tree_view));
+  gtk_paned_pack1 (GTK_PANED (hpaned), self->priv->tree_view, TRUE, TRUE);
 
-
-  self->priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self->priv->tree_view));
-  gtk_tree_selection_set_mode (GTK_TREE_SELECTION (self->priv->selection),
-                               GTK_SELECTION_SINGLE);
-  g_signal_connect (self->priv->selection, "changed",
-                    G_CALLBACK (on_book_selection_changed), self);
-  g_signal_connect (self->priv->tree_view, "event-after",
-                    G_CALLBACK (on_book_clicked), self);
-
-  /* The notebook containing the books */
-  self->priv->notebook = gtk_notebook_new ();
-  gtk_notebook_set_show_tabs (GTK_NOTEBOOK (self->priv->notebook), FALSE);
-  g_signal_connect (self->priv->notebook, "realize",
-                    G_CALLBACK (on_notebook_realize), self);
+  self->priv->notebook = addressbook_window_build_notebook (self);
+  gtk_widget_show_all (GTK_WIDGET (self->priv->notebook));
   gtk_paned_pack2 (GTK_PANED (hpaned), self->priv->notebook, TRUE, TRUE);
+  gtk_widget_show (GTK_WIDGET (hpaned));
 
-  conn = contact_core->source_added.connect (boost::bind (&on_source_added, _1, (gpointer) self));
+
+  /* Signals */
+  conn = contact_core->source_added.connect (boost::bind (&on_source_added,
+                                                          _1, (gpointer) self));
   self->priv->connections.add (conn);
 
-  conn = contact_core->book_updated.connect (boost::bind (&on_book_updated, _1, _2,
-                                                          (gpointer) self));
+  conn = contact_core->book_updated.connect (boost::bind (&on_book_updated,
+                                                          _1, _2, (gpointer) self));
   self->priv->connections.add (conn);
-  conn = contact_core->book_added.connect (boost::bind (&on_book_added, _1, _2,
-                                                        (gpointer) self));
+
+  conn = contact_core->book_added.connect (boost::bind (&on_book_added,
+                                                        _1, _2, (gpointer) self));
   self->priv->connections.add (conn);
-  conn =
-    contact_core->book_removed.connect (boost::bind (&on_book_removed, _1, _2,
-                                                     (gpointer) self));
+
+  conn = contact_core->book_removed.connect (boost::bind (&on_book_removed,
+                                                          _1, _2, (gpointer) self));
   self->priv->connections.add (conn);
 
   conn = contact_core->questions.connect (boost::bind (&on_handle_questions, _1, (gpointer) self));
@@ -743,7 +736,5 @@ addressbook_window_new (GmApplication *app)
 
   contact_core->visit_sources (boost::bind (on_visit_sources, _1, (gpointer) self));
 
-  gtk_widget_show_all (vbox);
-
   return GTK_WIDGET (self);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]