printers: Cache pointer to devices-treeview

Store device-treeview in PpNewPrinterDialogPrivate so we
don't need to search for it each time we need it.

https://bugzilla.gnome.org/show_bug.cgi?id=749830
This commit is contained in:
Marek Kasik 2015-07-17 11:32:57 +02:00
parent c26553ed3e
commit 68e92988a8

View file

@ -87,6 +87,8 @@ struct _PpNewPrinterDialogPrivate
GList *devices;
GList *local_cups_devices;
GtkTreeView *treeview;
cups_dest_t *dests;
gint num_of_dests;
@ -329,15 +331,10 @@ authenticate_samba_server (GtkButton *button,
GtkTreeModel *model;
GtkTreeIter iter;
AuthSMBData *data;
GtkWidget *treeview;
PpSamba *samba_host;
gchar *server_name = NULL;
treeview = WID ("devices-treeview");
if (treeview &&
gtk_tree_selection_get_selected (
gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), &model, &iter))
if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (priv->treeview), &model, &iter))
{
gtk_tree_model_get (model, &iter,
DEVICE_NAME_COLUMN, &server_name,
@ -395,6 +392,8 @@ pp_new_printer_dialog_init (PpNewPrinterDialog *dialog)
/* Construct dialog */
priv->dialog = WID ("dialog");
priv->treeview = GTK_TREE_VIEW (WID ("devices-treeview"));
/* Connect signals */
g_signal_connect (priv->dialog, "response", G_CALLBACK (new_printer_dialog_response_cb), dialog);
@ -478,17 +477,12 @@ device_selection_changed_cb (GtkTreeSelection *selection,
PpNewPrinterDialogPrivate *priv = dialog->priv;
GtkTreeModel *model;
GtkTreeIter iter;
GtkWidget *treeview = NULL;
GtkWidget *widget;
GtkWidget *notebook;
gboolean authentication_needed;
gboolean selected;
treeview = WID ("devices-treeview");
if (treeview)
{
selected = gtk_tree_selection_get_selected (
gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
selected = gtk_tree_selection_get_selected (gtk_tree_view_get_selection (priv->treeview),
&model,
&iter);
@ -512,7 +506,6 @@ device_selection_changed_cb (GtkTreeSelection *selection,
gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0);
}
}
}
static void
remove_device_from_list (PpNewPrinterDialog *dialog,
@ -1585,15 +1578,12 @@ actualize_devices_list (PpNewPrinterDialog *dialog)
GtkTreeSelection *selection;
PpPrintDevice *device;
GtkListStore *store;
GtkTreeView *treeview;
GtkTreeIter iter;
GtkWidget *widget;
gboolean no_device = TRUE;
GList *item;
gchar *description;
treeview = GTK_TREE_VIEW (WID ("devices-treeview"));
store = GTK_LIST_STORE (gtk_builder_get_object (priv->builder, "devices-liststore"));
gtk_list_store_clear (store);
@ -1673,7 +1663,7 @@ actualize_devices_list (PpNewPrinterDialog *dialog)
if (!no_device &&
gtk_tree_model_get_iter_first ((GtkTreeModel *) store, &iter) &&
(selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview))) != NULL)
(selection = gtk_tree_view_get_selection (priv->treeview)) != NULL)
gtk_tree_selection_select_iter (selection, &iter);
update_spinner_state (dialog);
@ -1740,17 +1730,12 @@ cell_data_func (GtkTreeViewColumn *tree_column,
{
PpNewPrinterDialog *dialog = (PpNewPrinterDialog *) user_data;
PpNewPrinterDialogPrivate *priv = dialog->priv;
GtkWidget *treeview;
gboolean selected = FALSE;
gchar *name = NULL;
gchar *description = NULL;
gchar *text;
treeview = WID ("devices-treeview");
if (treeview != NULL)
selected = gtk_tree_selection_iter_is_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
iter);
selected = gtk_tree_selection_iter_is_selected (gtk_tree_view_get_selection (priv->treeview), iter);
gtk_tree_model_get (tree_model, iter,
DEVICE_DISPLAY_NAME_COLUMN, &name,
@ -1792,18 +1777,15 @@ populate_devices_list (PpNewPrinterDialog *dialog)
{
PpNewPrinterDialogPrivate *priv = dialog->priv;
GtkTreeViewColumn *column;
GtkWidget *treeview;
PpSamba *samba;
GEmblem *emblem;
PpCups *cups;
GIcon *icon, *emblem_icon;
treeview = WID ("devices-treeview");
g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)),
g_signal_connect (gtk_tree_view_get_selection (priv->treeview),
"changed", G_CALLBACK (device_selection_changed_cb), dialog);
g_signal_connect (treeview,
g_signal_connect (priv->treeview,
"row-activated", G_CALLBACK (row_activated_cb), dialog);
priv->local_printer_icon = g_themed_icon_new ("printer");
@ -1827,7 +1809,7 @@ populate_devices_list (PpNewPrinterDialog *dialog)
"gicon", DEVICE_GICON_COLUMN, NULL);
gtk_tree_view_column_set_max_width (column, -1);
gtk_tree_view_column_set_min_width (column, 80);
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
gtk_tree_view_append_column (priv->treeview, column);
priv->text_renderer = gtk_cell_renderer_text_new ();
@ -1835,7 +1817,7 @@ populate_devices_list (PpNewPrinterDialog *dialog)
NULL);
gtk_tree_view_column_set_cell_data_func (column, priv->text_renderer, cell_data_func,
dialog, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
gtk_tree_view_append_column (priv->treeview, column);
cups = pp_cups_new ();
pp_cups_get_dests_async (cups, priv->cancellable, cups_get_dests_cb, dialog);
@ -1977,7 +1959,6 @@ new_printer_dialog_response_cb (GtkDialog *_dialog,
PpPrintDevice *tmp;
GtkTreeModel *model;
GtkTreeIter iter;
GtkWidget *treeview;
GList *list_iter;
gchar *device_name = NULL;
@ -1988,10 +1969,7 @@ new_printer_dialog_response_cb (GtkDialog *_dialog,
g_cancellable_cancel (priv->cancellable);
g_clear_object (&priv->cancellable);
treeview = WID ("devices-treeview");
if (treeview &&
gtk_tree_selection_get_selected (
gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), &model, &iter))
if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (priv->treeview), &model, &iter))
{
gtk_tree_model_get (model, &iter,
DEVICE_NAME_COLUMN, &device_name,