printers: Gray out paused printers in printers list
This commit is contained in:
parent
23faa29ffd
commit
0b5c0e03dc
1 changed files with 41 additions and 2 deletions
|
@ -118,6 +118,7 @@ enum
|
||||||
{
|
{
|
||||||
PRINTER_NAME_COLUMN,
|
PRINTER_NAME_COLUMN,
|
||||||
PRINTER_ID_COLUMN,
|
PRINTER_ID_COLUMN,
|
||||||
|
PRINTER_PAUSED_COLUMN,
|
||||||
PRINTER_N_COLUMNS
|
PRINTER_N_COLUMNS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -239,10 +240,11 @@ actualize_printers_list (CcPrintersPanel *self)
|
||||||
GtkTreeIter selected_iter;
|
GtkTreeIter selected_iter;
|
||||||
GtkTreeView *treeview;
|
GtkTreeView *treeview;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
gboolean paused = FALSE;
|
||||||
gchar *current_printer_instance = NULL;
|
gchar *current_printer_instance = NULL;
|
||||||
gchar *current_printer_name = NULL;
|
gchar *current_printer_name = NULL;
|
||||||
int current_dest = -1;
|
int current_dest = -1;
|
||||||
int i;
|
int i, j;
|
||||||
|
|
||||||
priv = PRINTERS_PANEL_PRIVATE (self);
|
priv = PRINTERS_PANEL_PRIVATE (self);
|
||||||
|
|
||||||
|
@ -261,7 +263,10 @@ actualize_printers_list (CcPrintersPanel *self)
|
||||||
treeview = (GtkTreeView*)
|
treeview = (GtkTreeView*)
|
||||||
gtk_builder_get_object (priv->builder, "printer-treeview");
|
gtk_builder_get_object (priv->builder, "printer-treeview");
|
||||||
|
|
||||||
store = gtk_list_store_new (PRINTER_N_COLUMNS, G_TYPE_STRING, G_TYPE_INT);
|
store = gtk_list_store_new (PRINTER_N_COLUMNS,
|
||||||
|
G_TYPE_STRING,
|
||||||
|
G_TYPE_INT,
|
||||||
|
G_TYPE_BOOLEAN);
|
||||||
|
|
||||||
for (i = 0; i < priv->num_dests; i++)
|
for (i = 0; i < priv->num_dests; i++)
|
||||||
{
|
{
|
||||||
|
@ -293,10 +298,16 @@ actualize_printers_list (CcPrintersPanel *self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
gtk_list_store_set (store, &iter,
|
gtk_list_store_set (store, &iter,
|
||||||
PRINTER_NAME_COLUMN, instance,
|
PRINTER_NAME_COLUMN, instance,
|
||||||
PRINTER_ID_COLUMN, i,
|
PRINTER_ID_COLUMN, i,
|
||||||
|
PRINTER_PAUSED_COLUMN, paused,
|
||||||
-1);
|
-1);
|
||||||
g_free (instance);
|
g_free (instance);
|
||||||
}
|
}
|
||||||
|
@ -324,6 +335,31 @@ 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 (paused)
|
||||||
|
g_object_set (cell,
|
||||||
|
"sensitive", FALSE,
|
||||||
|
NULL);
|
||||||
|
else
|
||||||
|
g_object_set (cell,
|
||||||
|
"sensitive", TRUE,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
populate_printers_list (CcPrintersPanel *self)
|
populate_printers_list (CcPrintersPanel *self)
|
||||||
{
|
{
|
||||||
|
@ -342,9 +378,12 @@ populate_printers_list (CcPrintersPanel *self)
|
||||||
|
|
||||||
actualize_printers_list (self);
|
actualize_printers_list (self);
|
||||||
|
|
||||||
|
|
||||||
renderer = gtk_cell_renderer_text_new ();
|
renderer = gtk_cell_renderer_text_new ();
|
||||||
column = gtk_tree_view_column_new_with_attributes ("Printer", renderer,
|
column = gtk_tree_view_column_new_with_attributes ("Printer", renderer,
|
||||||
"text", PRINTER_NAME_COLUMN, NULL);
|
"text", PRINTER_NAME_COLUMN, NULL);
|
||||||
|
gtk_tree_view_column_set_cell_data_func (column, renderer, set_cell_sensitivity_func,
|
||||||
|
self, NULL);
|
||||||
|
|
||||||
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
|
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue