[gnome-control-center/wip/feborges/new-printers-panel: 29/30] printers: Make the printers panel a single column



commit 4b688438ebf2c064e9ffb98e223f4b9bd69cdc06
Author: Felipe Borges <felipeborges gnome org>
Date:   Wed Jan 25 14:24:04 2017 +0100

    printers: Make the printers panel a single column
    
    This patch purges all the former TreeView machinery and makes the
    Printers panel have the printers listed in a scrolled window, as
    designed at https://wiki.gnome.org/Design/SystemSettings/Printers
    
    https://bugzilla.gnome.org/show_bug.cgi?id=767600

 panels/printers/cc-printers-panel.c |  563 +----------------------------------
 panels/printers/printers.ui         |   71 +----
 2 files changed, 17 insertions(+), 617 deletions(-)
---
diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c
index de97396..d1f2fc8 100644
--- a/panels/printers/cc-printers-panel.c
+++ b/panels/printers/cc-printers-panel.c
@@ -70,12 +70,7 @@ struct _CcPrintersPanelPrivate
   GtkBuilder *builder;
 
   cups_dest_t *dests;
-  gchar **dest_model_names;
-  gchar **ppd_file_names;
   int num_dests;
-  int current_dest;
-
-  int num_jobs;
 
   GPermission *permission;
   gboolean is_authorized;
@@ -93,12 +88,7 @@ struct _CcPrintersPanelPrivate
   guint            dbus_subscription_id;
 
   GtkWidget    *headerbar_buttons;
-  GtkWidget    *popup_menu;
-  GList        *driver_change_list;
-  GCancellable *get_ppd_name_cancellable;
-  gboolean      getting_ppd_names;
   PPDList      *all_ppds_list;
-  GHashTable   *preferred_drivers;
   GCancellable *get_all_ppds_cancellable;
   GCancellable *subscription_renew_cancellable;
 
@@ -222,12 +212,6 @@ cc_printers_panel_dispose (GObject *object)
       priv->all_ppds_list = NULL;
     }
 
-  if (priv->preferred_drivers)
-    {
-      g_hash_table_unref (priv->preferred_drivers);
-      priv->preferred_drivers = NULL;
-    }
-
   if (priv->get_all_ppds_cancellable)
     {
       g_cancellable_cancel (priv->get_all_ppds_cancellable);
@@ -235,24 +219,6 @@ cc_printers_panel_dispose (GObject *object)
       priv->get_all_ppds_cancellable = NULL;
     }
 
-  if (priv->driver_change_list)
-    {
-      GList *iter;
-
-      for (iter = priv->driver_change_list; iter; iter = iter->next)
-        {
-          SetPPDItem *item = (SetPPDItem *) iter->data;
-
-          g_cancellable_cancel (item->cancellable);
-          g_object_unref (item->cancellable);
-          g_free (item->printer_name);
-          g_free (item);
-        }
-
-      g_list_free (priv->driver_change_list);
-      priv->driver_change_list = NULL;
-    }
-
   G_OBJECT_CLASS (cc_printers_panel_parent_class)->dispose (object);
 }
 
@@ -490,41 +456,17 @@ static void
 free_dests (CcPrintersPanel *self)
 {
   CcPrintersPanelPrivate *priv;
-  gint                    i;
 
   priv = PRINTERS_PANEL_PRIVATE (self);
 
   if (priv->num_dests > 0)
     {
-      for (i = 0; i < priv->num_dests; i++)
-        {
-          g_free (priv->dest_model_names[i]);
-          if (priv->ppd_file_names[i]) {
-            g_unlink (priv->ppd_file_names[i]);
-            g_free (priv->ppd_file_names[i]);
-          }
-        }
-      g_free (priv->dest_model_names);
-      g_free (priv->ppd_file_names);
       cupsFreeDests (priv->num_dests, priv->dests);
     }
   priv->dests = NULL;
   priv->num_dests = 0;
-  priv->current_dest = -1;
-  priv->dest_model_names = NULL;
-  priv->ppd_file_names = NULL;
 }
 
-enum
-{
-  PRINTER_ID_COLUMN,
-  PRINTER_NAME_COLUMN,
-  PRINTER_PAUSED_COLUMN,
-  PRINTER_DEFAULT_ICON_COLUMN,
-  PRINTER_ICON_COLUMN,
-  PRINTER_N_COLUMNS
-};
-
 static void
 on_printer_changed (PpPrinterEntry *printer_entry,
                     gpointer        user_data)
@@ -555,13 +497,6 @@ add_printer_entry (CcPrintersPanel *self,
 }
 
 static void
-clear_all_printer_entries (GtkWidget       *widget,
-                           GtkWidget       *container)
-{
-  gtk_container_remove (GTK_CONTAINER (container), widget);
-}
-
-static void
 set_current_page (GObject      *source_object,
                   GAsyncResult *result,
                   gpointer      user_data)
@@ -580,106 +515,19 @@ set_current_page (GObject      *source_object,
 }
 
 static void
-printer_selection_changed_cb (GtkTreeSelection *selection,
-                              gpointer          user_data)
-{
-  CcPrintersPanelPrivate *priv;
-  CcPrintersPanel        *self = (CcPrintersPanel*) user_data;
-  GtkTreeModel           *model;
-  GtkTreeIter             iter;
-  GtkWidget              *widget;
-  PpCups                 *cups;
-  gchar                  *printer_name = NULL;
-  gchar                  *printer_icon = NULL;
-  int                     id = -1;
-
-  priv = PRINTERS_PANEL_PRIVATE (self);
-
-  if (gtk_tree_selection_get_selected (selection, &model, &iter))
-    {
-      gtk_tree_model_get (model, &iter,
-                         PRINTER_ID_COLUMN, &id,
-                         PRINTER_NAME_COLUMN, &printer_name,
-                         PRINTER_ICON_COLUMN, &printer_icon,
-                         -1);
-    }
-  else
-    id = -1;
-
-  priv->current_dest = id;
-  cups = pp_cups_new ();
-
-  widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "main-vbox");
-  if (priv->num_dests == 0 && !priv->new_printer_name)
-    pp_cups_connection_test_async (g_object_ref (cups), set_current_page, widget);
-  else
-    gtk_stack_set_visible_child_name (GTK_STACK (widget), "printers-list");
-
-  widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "content");
-
-  gtk_container_foreach (GTK_CONTAINER (widget), (GtkCallback)clear_all_printer_entries, widget);
-
-  add_printer_entry (self, priv->dests[priv->current_dest]);
-}
-
-static void
 actualize_printers_list_cb (GObject      *source_object,
                             GAsyncResult *result,
                             gpointer      user_data)
 {
   CcPrintersPanelPrivate *priv;
-  GtkTreeSelection       *selection;
   CcPrintersPanel        *self = (CcPrintersPanel*) user_data;
-  GtkListStore           *store;
-  cups_ptype_t            printer_type = 0;
-  GtkTreeModel           *model;
-  GtkTreeIter             selected_iter;
-  GtkTreeView            *treeview;
-  GtkTreeIter             iter;
-  cups_job_t             *jobs = NULL;
   GtkWidget              *widget;
-  gboolean                paused = FALSE;
-  gboolean                selected_iter_set = FALSE;
-  gboolean                valid = FALSE;
   PpCups                 *cups = PP_CUPS (source_object);
   PpCupsDests            *cups_dests;
-  gchar                  *current_printer_name = NULL;
-  gchar                  *printer_icon_name = NULL;
-  gchar                  *default_icon_name = NULL;
-  gchar                  *device_uri = NULL;
-  gint                    new_printer_position = 0;
-  int                     current_dest = -1;
-  int                     i, j;
-  int                     num_jobs = 0;
+  int                     i;
 
   priv = PRINTERS_PANEL_PRIVATE (self);
 
-  treeview = (GtkTreeView*)
-    gtk_builder_get_object (priv->builder, "printers-treeview");
-
-  if ((selection = gtk_tree_view_get_selection (treeview)) != NULL &&
-      gtk_tree_selection_get_selected (selection, &model, &iter))
-    {
-      gtk_tree_model_get (model, &iter,
-                         PRINTER_NAME_COLUMN, &current_printer_name,
-                         -1);
-    }
-
-  if (priv->renamed_printer_name != NULL)
-    {
-      g_free (current_printer_name);
-      current_printer_name = priv->renamed_printer_name;
-      priv->renamed_printer_name = NULL;
-    }
-
-  if (priv->new_printer_name &&
-      priv->select_new_printer)
-    {
-      g_free (current_printer_name);
-      current_printer_name = g_strdup (priv->new_printer_name);
-      priv->select_new_printer = FALSE;
-    }
-
   free_dests (self);
   cups_dests = pp_cups_get_dests_finish (cups, result, NULL);
 
@@ -687,198 +535,16 @@ actualize_printers_list_cb (GObject      *source_object,
   priv->num_dests = cups_dests->num_of_dests;
   g_free (cups_dests);
 
-  priv->dest_model_names = g_new0 (gchar *, priv->num_dests);
-  priv->ppd_file_names = g_new0 (gchar *, priv->num_dests);
-
-  store = gtk_list_store_new (PRINTER_N_COLUMNS,
-                              G_TYPE_INT,
-                              G_TYPE_STRING,
-                              G_TYPE_BOOLEAN,
-                              G_TYPE_STRING,
-                              G_TYPE_STRING);
-
+  widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "main-vbox");
   if (priv->num_dests == 0 && !priv->new_printer_name)
-    {
-      widget = (GtkWidget*)
-        gtk_builder_get_object (priv->builder, "main-vbox");
-
-      pp_cups_connection_test_async (g_object_ref (cups), set_current_page, widget);
-
-      gtk_widget_set_sensitive (GTK_WIDGET (treeview), FALSE);
-    }
+    pp_cups_connection_test_async (g_object_ref (cups), set_current_page, widget);
   else
-    gtk_widget_set_sensitive (GTK_WIDGET (treeview), TRUE);
-
-  g_object_unref (cups);
+    gtk_stack_set_visible_child_name (GTK_STACK (widget), "printers-list");
 
+  widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "content");
+  gtk_container_foreach (GTK_CONTAINER (widget), (GtkCallback) gtk_widget_destroy, NULL);
   for (i = 0; i < priv->num_dests; i++)
-    {
-      gchar *instance;
-
-      if (priv->new_printer_name && new_printer_position >= 0)
-        {
-          gint comparison_result = g_ascii_strcasecmp (priv->dests[i].name, priv->new_printer_name);
-
-          if (comparison_result < 0)
-            new_printer_position = i + 1;
-          else if (comparison_result == 0)
-            new_printer_position = -1;
-        }
-
-      gtk_list_store_append (store, &iter);
-
-      if (priv->dests[i].instance)
-        {
-          instance = g_strdup_printf ("%s / %s", priv->dests[i].name, priv->dests[i].instance);
-        }
-      else
-        {
-          instance = g_strdup (priv->dests[i].name);
-        }
-
-      for (j = 0; j < priv->dests[i].num_options; j++)
-        {
-          if (g_strcmp0 (priv->dests[i].options[j].name, "printer-state") == 0)
-            paused = (g_strcmp0 (priv->dests[i].options[j].value, "5") == 0);
-          else if (g_strcmp0 (priv->dests[i].options[j].name, "device-uri") == 0)
-            device_uri = priv->dests[i].options[j].value;
-          else if (g_strcmp0 (priv->dests[i].options[j].name, "printer-type") == 0)
-            printer_type = atoi (priv->dests[i].options[j].value);
-        }
-
-      if (priv->dests[i].is_default)
-        default_icon_name = g_strdup ("object-select-symbolic");
-      else
-        default_icon_name = NULL;
-
-      if (printer_is_local (printer_type, device_uri))
-        printer_icon_name = g_strdup ("printer");
-      else
-        printer_icon_name = g_strdup ("printer-network");
-
-      gtk_list_store_set (store, &iter,
-                          PRINTER_ID_COLUMN, i,
-                          PRINTER_NAME_COLUMN, instance,
-                          PRINTER_PAUSED_COLUMN, paused,
-                          PRINTER_DEFAULT_ICON_COLUMN, default_icon_name,
-                          PRINTER_ICON_COLUMN, printer_icon_name,
-                          -1);
-
-      if (g_strcmp0 (current_printer_name, instance) == 0)
-        {
-          current_dest = i;
-          selected_iter = iter;
-          selected_iter_set = TRUE;
-        }
-
-      g_free (instance);
-      g_free (printer_icon_name);
-      g_free (default_icon_name);
-    }
-
-  if (priv->new_printer_name && new_printer_position >= 0)
-    {
-      gtk_list_store_insert (store, &iter, new_printer_position);
-      gtk_list_store_set (store, &iter,
-                          PRINTER_ID_COLUMN, -1,
-                          PRINTER_NAME_COLUMN, priv->new_printer_name,
-                          PRINTER_PAUSED_COLUMN, TRUE,
-                          PRINTER_DEFAULT_ICON_COLUMN, NULL,
-                          PRINTER_ICON_COLUMN, priv->new_printer_on_network ?
-                            "printer-network" : "printer",
-                          -1);
-
-      if (g_strcmp0 (current_printer_name, priv->new_printer_name) == 0)
-        {
-          selected_iter = iter;
-          selected_iter_set = TRUE;
-        }
-    }
-
-  g_signal_handlers_block_by_func (
-    G_OBJECT (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview))),
-    printer_selection_changed_cb,
-    self);
-
-  gtk_tree_view_set_model (treeview, GTK_TREE_MODEL (store));
-
-  g_signal_handlers_unblock_by_func (
-    G_OBJECT (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview))),
-    printer_selection_changed_cb,
-    self);
-
-  if (selected_iter_set)
-    {
-      priv->current_dest = current_dest;
-      gtk_tree_selection_select_iter (
-        gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
-        &selected_iter);
-    }
-  else
-    {
-      num_jobs = cupsGetJobs (&jobs, NULL, 1, CUPS_WHICHJOBS_ALL);
-
-      /* Select last used printer */
-      if (num_jobs > 0)
-        {
-          for (i = 0; i < priv->num_dests; i++)
-            if (g_strcmp0 (priv->dests[i].name, jobs[num_jobs - 1].dest) == 0)
-              {
-                priv->current_dest = i;
-                break;
-              }
-          cupsFreeJobs (num_jobs, jobs);
-        }
-
-      /* Select default printer */
-      if (priv->current_dest < 0)
-        {
-          for (i = 0; i < priv->num_dests; i++)
-            if (priv->dests[i].is_default)
-              {
-                priv->current_dest = i;
-                break;
-              }
-        }
-
-      if (priv->current_dest >= 0)
-        {
-          gint id;
-          valid = gtk_tree_model_get_iter_first ((GtkTreeModel *) store,
-                                                 &selected_iter);
-
-          while (valid)
-            {
-              gtk_tree_model_get ((GtkTreeModel *) store, &selected_iter,
-                                  PRINTER_ID_COLUMN, &id,
-                                  -1);
-              if (id == priv->current_dest)
-                break;
-
-              valid = gtk_tree_model_iter_next ((GtkTreeModel *) store,
-                                                &selected_iter);
-            }
-
-          gtk_tree_selection_select_iter (
-            gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
-            &selected_iter);
-        }
-      else if (priv->num_dests > 0)
-        {
-          /* Select first printer */
-          gtk_tree_model_get_iter_first ((GtkTreeModel *) store,
-                                         &selected_iter);
-
-          gtk_tree_selection_select_iter (
-            gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
-            &selected_iter);
-        }
-    }
-
-  g_free (current_printer_name);
-  g_object_unref (store);
-
-  update_sensitivity (self);
+    add_printer_entry (self, priv->dests[i]);
 }
 
 static void
@@ -891,104 +557,6 @@ actualize_printers_list (CcPrintersPanel *self)
 }
 
 static void
-set_cell_sensitivity_func (GtkTreeViewColumn *tree_column,
-                           GtkCellRenderer   *cell,
-                           GtkTreeModel      *tree_model,
-                           GtkTreeIter       *iter,
-                           gpointer           func_data)
-{
-  CcPrintersPanelPrivate *priv;
-  CcPrintersPanel        *self = (CcPrintersPanel*) func_data;
-  gboolean                paused = FALSE;
-
-  priv = PRINTERS_PANEL_PRIVATE (self);
-
-  gtk_tree_model_get (tree_model, iter, PRINTER_PAUSED_COLUMN, &paused, -1);
-
-  if (priv->num_dests == 0)
-    g_object_set (G_OBJECT (cell),
-                  "ellipsize", PANGO_ELLIPSIZE_NONE,
-                  "width-chars", -1,
-                  NULL);
-  else
-    g_object_set (G_OBJECT (cell),
-                  "ellipsize", PANGO_ELLIPSIZE_END,
-                  "width-chars", 18,
-                  NULL);
-
-  g_object_set (cell, "sensitive", !paused, NULL);
-}
-
-static void
-set_pixbuf_cell_sensitivity_func (GtkTreeViewColumn *tree_column,
-                                  GtkCellRenderer   *cell,
-                                  GtkTreeModel      *tree_model,
-                                  GtkTreeIter       *iter,
-                                  gpointer           func_data)
-{
-  gboolean paused = FALSE;
-
-  gtk_tree_model_get (tree_model, iter, PRINTER_PAUSED_COLUMN, &paused, -1);
-  g_object_set (cell, "sensitive", !paused, NULL);
-}
-
-static void
-populate_printers_list (CcPrintersPanel *self)
-{
-  CcPrintersPanelPrivate *priv;
-  GtkTreeViewColumn      *column;
-  GtkCellRenderer        *icon_renderer;
-  GtkCellRenderer        *icon_renderer2;
-  GtkCellRenderer        *renderer;
-  GtkWidget              *treeview;
-  int                     icon_width;
-
-  priv = PRINTERS_PANEL_PRIVATE (self);
-
-  treeview = (GtkWidget*)
-    gtk_builder_get_object (priv->builder, "printers-treeview");
-
-  g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
-                    "changed", G_CALLBACK (printer_selection_changed_cb), self);
-
-  actualize_printers_list (self);
-
-
-  icon_renderer = gtk_cell_renderer_pixbuf_new ();
-  g_object_set (icon_renderer, "stock-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
-  gtk_cell_renderer_set_padding (icon_renderer, 4, 4);
-  column = gtk_tree_view_column_new_with_attributes ("Icon", icon_renderer,
-                                                     "icon-name", PRINTER_ICON_COLUMN, NULL);
-  gtk_tree_view_column_set_cell_data_func (column, icon_renderer, set_pixbuf_cell_sensitivity_func,
-                                           self, NULL);
-  gtk_tree_view_column_set_expand (column, FALSE);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
-
-
-  renderer = gtk_cell_renderer_text_new ();
-  g_object_set (G_OBJECT (renderer),
-                "ellipsize", PANGO_ELLIPSIZE_MIDDLE,
-                "max-width-chars", 18, NULL);
-  column = gtk_tree_view_column_new_with_attributes ("Printer", renderer,
-                                                     "text", PRINTER_NAME_COLUMN, NULL);
-  gtk_tree_view_column_set_cell_data_func (column, renderer, set_cell_sensitivity_func,
-                                           self, NULL);
-  gtk_tree_view_column_set_expand (column, FALSE);
-  gtk_tree_view_column_set_min_width (column, 120);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
-
-
-  icon_renderer2 = gtk_cell_renderer_pixbuf_new ();
-  g_object_set (G_OBJECT (icon_renderer2), "follow-state", TRUE, NULL);
-  column = gtk_tree_view_column_new_with_attributes ("Default", icon_renderer2,
-                                                     "icon-name", PRINTER_DEFAULT_ICON_COLUMN, NULL);
-  gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &icon_width, NULL);
-  gtk_cell_renderer_set_fixed_size (icon_renderer2, icon_width, -1);
-  gtk_tree_view_column_set_expand (column, FALSE);
-  gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
-}
-
-static void
 new_printer_dialog_pre_response_cb (PpNewPrinterDialog *dialog,
                                     const gchar        *device_name,
                                     const gchar        *device_location,
@@ -1074,47 +642,14 @@ printer_add_cb (GtkToolButton *toolbutton,
 }
 
 static void
-printer_remove_cb (GtkToolButton *toolbutton,
-                   gpointer       user_data)
-{
-  CcPrintersPanelPrivate *priv;
-  CcPrintersPanel        *self = (CcPrintersPanel*) user_data;
-  char                   *printer_name = NULL;
-
-  priv = PRINTERS_PANEL_PRIVATE (self);
-
-  if (priv->current_dest >= 0 &&
-      priv->current_dest < priv->num_dests &&
-      priv->dests != NULL)
-    printer_name = priv->dests[priv->current_dest].name;
-
-  if (printer_name && printer_delete (printer_name))
-    actualize_printers_list (self);
-}
-
-static void
 update_sensitivity (gpointer user_data)
 {
   CcPrintersPanelPrivate  *priv;
-  GtkTreeSelection        *selection;
   CcPrintersPanel         *self = (CcPrintersPanel*) user_data;
-  cups_ptype_t             type = 0;
-  GtkTreeModel            *model;
-  GtkTreeView             *treeview;
-  GtkTreeIter              tree_iter;
   const char              *cups_server = NULL;
   GtkWidget               *widget;
-  gboolean                 is_discovered = FALSE;
-  gboolean                 is_class = FALSE;
-  gboolean                 is_changing_driver = FALSE;
-  gboolean                 printer_selected;
   gboolean                 local_server = TRUE;
   gboolean                 no_cups = FALSE;
-  gboolean                 is_new = FALSE;
-  gboolean                 already_present_local;
-  GList                   *iter;
-  gchar                   *current_printer_name = NULL;
-  gint                     i;
 
   priv = PRINTERS_PANEL_PRIVATE (self);
 
@@ -1127,56 +662,9 @@ update_sensitivity (gpointer user_data)
   gtk_stack_set_visible_child_name (GTK_STACK (priv->headerbar_buttons),
     priv->is_authorized ? PAGE_ADDPRINTER : PAGE_LOCK);
 
-  printer_selected = priv->current_dest >= 0 &&
-                     priv->current_dest < priv->num_dests &&
-                     priv->dests != NULL;
-
-  if (printer_selected)
-    {
-      for (i = 0; i < priv->dests[priv->current_dest].num_options; i++)
-        {
-          if (g_strcmp0 (priv->dests[priv->current_dest].options[i].name, "printer-type") == 0)
-            {
-              type = atoi (priv->dests[priv->current_dest].options[i].value);
-              is_discovered = type & CUPS_PRINTER_DISCOVERED;
-              is_class = type & CUPS_PRINTER_CLASS;
-              break;
-            }
-        }
-
-      for (iter = priv->driver_change_list; iter; iter = iter->next)
-        {
-          SetPPDItem *item = (SetPPDItem *) iter->data;
-
-          if (g_strcmp0 (item->printer_name, priv->dests[priv->current_dest].name) == 0)
-            {
-              is_changing_driver = TRUE;
-            }
-        }
-    }
-
-  treeview = (GtkTreeView*)
-    gtk_builder_get_object (priv->builder, "printers-treeview");
-
-  selection = gtk_tree_view_get_selection (treeview);
-  if (selection &&
-      gtk_tree_selection_get_selected (selection, &model, &tree_iter))
-    {
-      gtk_tree_model_get (model, &tree_iter,
-                          PRINTER_NAME_COLUMN, &current_printer_name,
-                          -1);
-    }
-
-  if (priv->new_printer_name &&
-      g_strcmp0 (priv->new_printer_name, current_printer_name) == 0)
-    {
-      printer_selected = TRUE;
-      is_discovered = FALSE;
-      is_class = FALSE;
-      is_new = TRUE;
-    }
-
-  g_free (current_printer_name);
+  widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "main-vbox");
+  if (g_strcmp0 (gtk_stack_get_visible_child_name (GTK_STACK (widget)), "no-cups-page") == 0)
+    no_cups = TRUE;
 
   cups_server = cupsServer ();
   if (cups_server &&
@@ -1186,26 +674,11 @@ update_sensitivity (gpointer user_data)
       cups_server[0] != '/')
     local_server = FALSE;
 
-  widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "main-vbox");
-  if (g_strcmp0 (gtk_stack_get_visible_child_name (GTK_STACK (widget)), "no-cups-page") == 0)
-    no_cups = TRUE;
-
-  already_present_local = local_server && !is_discovered && priv->is_authorized && !is_new;
-
   widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "printer-add-button");
   gtk_widget_set_sensitive (widget, local_server && priv->is_authorized && !no_cups && 
!priv->new_printer_name);
 
   widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "printer-add-button2");
   gtk_widget_set_sensitive (widget, local_server && priv->is_authorized && !no_cups && 
!priv->new_printer_name);
-
-  widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "printer-remove-button");
-  gtk_widget_set_sensitive (widget, already_present_local && printer_selected && !no_cups);
-
-  widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "main-vbox");
-  if (is_changing_driver)
-    {
-      gtk_stack_set_visible_child_name (GTK_STACK (widget), "loading-page");
-    }
 }
 
 static void
@@ -1341,12 +814,7 @@ cc_printers_panel_init (CcPrintersPanel *self)
   /* initialize main data structure */
   priv->builder = gtk_builder_new ();
   priv->dests = NULL;
-  priv->dest_model_names = NULL;
-  priv->ppd_file_names = NULL;
   priv->num_dests = 0;
-  priv->current_dest = -1;
-
-  priv->num_jobs = 0;
 
   priv->pp_new_printer_dialog = NULL;
 
@@ -1368,12 +836,7 @@ cc_printers_panel_init (CcPrintersPanel *self)
   priv->permission = NULL;
   priv->lockdown_settings = NULL;
 
-  priv->getting_ppd_names = FALSE;
-
   priv->all_ppds_list = NULL;
-  priv->get_all_ppds_cancellable = NULL;
-
-  priv->preferred_drivers = NULL;
 
   builder_result = gtk_builder_add_objects_from_resource (priv->builder,
                                                           "/org/gnome/control-center/printers/printers.ui",
@@ -1404,10 +867,6 @@ cc_printers_panel_init (CcPrintersPanel *self)
     gtk_builder_get_object (priv->builder, "printer-add-button2");
   g_signal_connect (widget, "clicked", G_CALLBACK (printer_add_cb), self);
 
-  widget = (GtkWidget*)
-    gtk_builder_get_object (priv->builder, "printer-remove-button");
-  g_signal_connect (widget, "clicked", G_CALLBACK (printer_remove_cb), self);
-
   priv->lockdown_settings = g_settings_new ("org.gnome.desktop.lockdown");
   if (priv->lockdown_settings)
     g_signal_connect_object (priv->lockdown_settings,
@@ -1435,7 +894,7 @@ Please check your installation");
 
   priv->subscription_renew_cancellable = g_cancellable_new ();
 
-  populate_printers_list (self);
+  actualize_printers_list (self);
   attach_to_cups_notifier (self);
 
   priv->get_all_ppds_cancellable = g_cancellable_new ();
diff --git a/panels/printers/printers.ui b/panels/printers/printers.ui
index b9d03e1..832b821 100644
--- a/panels/printers/printers.ui
+++ b/panels/printers/printers.ui
@@ -28,10 +28,6 @@
     </child>
   </object>
   <object class="GtkStack" id="main-vbox">
-    <property name="margin-start">6</property>
-    <property name="margin-end">6</property>
-    <property name="margin-top">6</property>
-    <property name="margin-bottom">6</property>
     <child>
       <object class="GtkBox">
         <property name="visible">True</property>
@@ -48,72 +44,17 @@
       </packing>
     </child>
     <child>
-      <object class="GtkBox" id="hbox1">
+      <object class="GtkScrolledWindow">
         <property name="visible">True</property>
-        <property name="spacing">20</property>
-        <property name="border_width">10</property>
-        <child>
-          <object class="GtkBox" id="vbox4">
-            <property name="visible">True</property>
-            <property name="orientation">vertical</property>
-            <child>
-              <object class="GtkScrolledWindow" id="printers-scrolledwindow">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="hscrollbar_policy">never</property>
-                <property name="vscrollbar_policy">automatic</property>
-                <property name="shadow_type">in</property>
-                <child>
-                  <object class="GtkTreeView" id="printers-treeview">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="headers_visible">False</property>
-                    <property name="width-request">200</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkToolbar" id="printers-toolbar">
-                <property name="visible">True</property>
-                <property name="icon_size">1</property>
-                <property name="icon_size_set">True</property>
-                <property name="toolbar-style">icons</property>
-                <style>
-                  <class name="inline-toolbar"/>
-                </style>
-                <child>
-                  <object class="GtkToolButton" id="printer-remove-button">
-                    <property name="visible">True</property>
-                    <property name="use_underline">True</property>
-                    <property name="icon_name">list-remove-symbolic</property>
-                    <property name="label" translatable="yes">Remove Printer</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="homogeneous">True</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
         <child>
           <object class="GtkBox" id="content">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
+            <property name="border-width">30</property>
+           <property name="margin-start">30</property>
+            <property name="margin-end">30</property>
+            <property name="spacing">20</property>
           </object>
         </child>
       </object>


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