printers: Modify jobs list
Don't include owner's name in the list (it is actual user). Left align text in rows. Take into account system settings when showing time (12h/24h). Show headers.
This commit is contained in:
parent
8db5e051cd
commit
83056c17dc
2 changed files with 28 additions and 16 deletions
|
@ -26,6 +26,7 @@
|
||||||
#include <glib/gstdio.h>
|
#include <glib/gstdio.h>
|
||||||
#include <polkit/polkit.h>
|
#include <polkit/polkit.h>
|
||||||
#include <dbus/dbus-glib.h>
|
#include <dbus/dbus-glib.h>
|
||||||
|
#include <gsettings-desktop-schemas/gdesktop-enums.h>
|
||||||
|
|
||||||
#include <cups/cups.h>
|
#include <cups/cups.h>
|
||||||
|
|
||||||
|
@ -44,6 +45,9 @@ G_DEFINE_DYNAMIC_TYPE (CcPrintersPanel, cc_printers_panel, CC_TYPE_PANEL)
|
||||||
|
|
||||||
#define EMPTY_TEXT "\xe2\x80\x94"
|
#define EMPTY_TEXT "\xe2\x80\x94"
|
||||||
|
|
||||||
|
#define CLOCK_SCHEMA "org.gnome.desktop.interface"
|
||||||
|
#define CLOCK_FORMAT_KEY "clock-format"
|
||||||
|
|
||||||
struct _CcPrintersPanelPrivate
|
struct _CcPrintersPanelPrivate
|
||||||
{
|
{
|
||||||
GtkBuilder *builder;
|
GtkBuilder *builder;
|
||||||
|
@ -871,7 +875,6 @@ enum
|
||||||
JOB_ID_COLUMN,
|
JOB_ID_COLUMN,
|
||||||
JOB_TITLE_COLUMN,
|
JOB_TITLE_COLUMN,
|
||||||
JOB_STATE_COLUMN,
|
JOB_STATE_COLUMN,
|
||||||
JOB_USER_COLUMN,
|
|
||||||
JOB_CREATION_TIME_COLUMN,
|
JOB_CREATION_TIME_COLUMN,
|
||||||
JOB_N_COLUMNS
|
JOB_N_COLUMNS
|
||||||
};
|
};
|
||||||
|
@ -883,6 +886,7 @@ actualize_jobs_list (CcPrintersPanel *self)
|
||||||
GtkListStore *store;
|
GtkListStore *store;
|
||||||
GtkTreeView *treeview;
|
GtkTreeView *treeview;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
GSettings *settings;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
priv = PRINTERS_PANEL_PRIVATE (self);
|
priv = PRINTERS_PANEL_PRIVATE (self);
|
||||||
|
@ -901,16 +905,33 @@ actualize_jobs_list (CcPrintersPanel *self)
|
||||||
priv->dests != NULL)
|
priv->dests != NULL)
|
||||||
priv->num_jobs = cupsGetJobs (&priv->jobs, priv->dests[priv->current_dest].name, 1, CUPS_WHICHJOBS_ACTIVE);
|
priv->num_jobs = cupsGetJobs (&priv->jobs, priv->dests[priv->current_dest].name, 1, CUPS_WHICHJOBS_ACTIVE);
|
||||||
|
|
||||||
store = gtk_list_store_new (JOB_N_COLUMNS, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
|
store = gtk_list_store_new (JOB_N_COLUMNS, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
|
||||||
|
|
||||||
for (i = 0; i < priv->num_jobs; i++)
|
for (i = 0; i < priv->num_jobs; i++)
|
||||||
{
|
{
|
||||||
|
GDesktopClockFormat value;
|
||||||
|
GDateTime *time;
|
||||||
struct tm *ts;
|
struct tm *ts;
|
||||||
gchar *time_string;
|
gchar *time_string;
|
||||||
gchar *state = NULL;
|
gchar *state = NULL;
|
||||||
|
|
||||||
ts = localtime (&(priv->jobs[i].creation_time));
|
ts = localtime (&(priv->jobs[i].creation_time));
|
||||||
time_string = g_strdup_printf ("%02d:%02d:%02d", ts->tm_hour, ts->tm_min, ts->tm_sec);
|
time = g_date_time_new_local (ts->tm_year,
|
||||||
|
ts->tm_mon,
|
||||||
|
ts->tm_mday,
|
||||||
|
ts->tm_hour,
|
||||||
|
ts->tm_min,
|
||||||
|
ts->tm_sec);
|
||||||
|
|
||||||
|
settings = g_settings_new (CLOCK_SCHEMA);
|
||||||
|
value = g_settings_get_enum (settings, CLOCK_FORMAT_KEY);
|
||||||
|
|
||||||
|
if (value == G_DESKTOP_CLOCK_FORMAT_24H)
|
||||||
|
time_string = g_date_time_format (time, "%k:%M");
|
||||||
|
else
|
||||||
|
time_string = g_date_time_format (time, "%l:%M %p");
|
||||||
|
|
||||||
|
g_date_time_unref (time);
|
||||||
|
|
||||||
switch (priv->jobs[i].state)
|
switch (priv->jobs[i].state)
|
||||||
{
|
{
|
||||||
|
@ -949,7 +970,6 @@ actualize_jobs_list (CcPrintersPanel *self)
|
||||||
JOB_ID_COLUMN, i,
|
JOB_ID_COLUMN, i,
|
||||||
JOB_TITLE_COLUMN, priv->jobs[i].title,
|
JOB_TITLE_COLUMN, priv->jobs[i].title,
|
||||||
JOB_STATE_COLUMN, state,
|
JOB_STATE_COLUMN, state,
|
||||||
JOB_USER_COLUMN, priv->jobs[i].user,
|
|
||||||
JOB_CREATION_TIME_COLUMN, time_string,
|
JOB_CREATION_TIME_COLUMN, time_string,
|
||||||
-1);
|
-1);
|
||||||
|
|
||||||
|
@ -1019,9 +1039,8 @@ populate_jobs_list (CcPrintersPanel *self)
|
||||||
CcPrintersPanelPrivate *priv;
|
CcPrintersPanelPrivate *priv;
|
||||||
GtkTreeViewColumn *column;
|
GtkTreeViewColumn *column;
|
||||||
GtkCellRenderer *renderer;
|
GtkCellRenderer *renderer;
|
||||||
|
GtkCellRenderer *title_renderer;
|
||||||
GtkTreeView *treeview;
|
GtkTreeView *treeview;
|
||||||
gfloat x_align = 0.5;
|
|
||||||
gfloat y_align = 0.5;
|
|
||||||
|
|
||||||
priv = PRINTERS_PANEL_PRIVATE (self);
|
priv = PRINTERS_PANEL_PRIVATE (self);
|
||||||
|
|
||||||
|
@ -1031,12 +1050,12 @@ populate_jobs_list (CcPrintersPanel *self)
|
||||||
gtk_builder_get_object (priv->builder, "job-treeview");
|
gtk_builder_get_object (priv->builder, "job-treeview");
|
||||||
|
|
||||||
renderer = gtk_cell_renderer_text_new ();
|
renderer = gtk_cell_renderer_text_new ();
|
||||||
gtk_cell_renderer_get_alignment (renderer, &x_align, &y_align);
|
title_renderer = gtk_cell_renderer_text_new ();
|
||||||
gtk_cell_renderer_set_alignment (renderer, 0.5, y_align);
|
|
||||||
|
|
||||||
/* Translators: Name of column showing titles of print jobs */
|
/* Translators: Name of column showing titles of print jobs */
|
||||||
column = gtk_tree_view_column_new_with_attributes (_("Job Title"), renderer,
|
column = gtk_tree_view_column_new_with_attributes (_("Job Title"), title_renderer,
|
||||||
"text", JOB_TITLE_COLUMN, NULL);
|
"text", JOB_TITLE_COLUMN, NULL);
|
||||||
|
g_object_set (G_OBJECT (title_renderer), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
|
||||||
gtk_tree_view_column_set_fixed_width (column, 180);
|
gtk_tree_view_column_set_fixed_width (column, 180);
|
||||||
gtk_tree_view_column_set_min_width (column, 180);
|
gtk_tree_view_column_set_min_width (column, 180);
|
||||||
gtk_tree_view_column_set_max_width (column, 180);
|
gtk_tree_view_column_set_max_width (column, 180);
|
||||||
|
@ -1048,12 +1067,6 @@ populate_jobs_list (CcPrintersPanel *self)
|
||||||
gtk_tree_view_column_set_expand (column, TRUE);
|
gtk_tree_view_column_set_expand (column, TRUE);
|
||||||
gtk_tree_view_append_column (treeview, column);
|
gtk_tree_view_append_column (treeview, column);
|
||||||
|
|
||||||
/* Translators: Name of column showing names of creators of print jobs */
|
|
||||||
column = gtk_tree_view_column_new_with_attributes (_("User"), renderer,
|
|
||||||
"text", JOB_USER_COLUMN, NULL);
|
|
||||||
gtk_tree_view_column_set_expand (column, TRUE);
|
|
||||||
gtk_tree_view_append_column (treeview, column);
|
|
||||||
|
|
||||||
/* Translators: Name of column showing times of creation of print jobs */
|
/* Translators: Name of column showing times of creation of print jobs */
|
||||||
column = gtk_tree_view_column_new_with_attributes (_("Time"), renderer,
|
column = gtk_tree_view_column_new_with_attributes (_("Time"), renderer,
|
||||||
"text", JOB_CREATION_TIME_COLUMN, NULL);
|
"text", JOB_CREATION_TIME_COLUMN, NULL);
|
||||||
|
|
|
@ -495,7 +495,6 @@
|
||||||
<object class="GtkTreeView" id="job-treeview">
|
<object class="GtkTreeView" id="job-treeview">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="headers_visible">False</property>
|
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue