[gnome-control-center] printers: Modify jobs list



commit 83056c17dcc7b797f44390a886824ce2a8bf82a8
Author: Marek Kasik <mkasik redhat com>
Date:   Mon Feb 14 14:02:17 2011 +0100

    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.

 panels/printers/cc-printers-panel.c |   43 ++++++++++++++++++++++------------
 panels/printers/printers.ui         |    1 -
 2 files changed, 28 insertions(+), 16 deletions(-)
---
diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c
index 0c0641c..ce77999 100644
--- a/panels/printers/cc-printers-panel.c
+++ b/panels/printers/cc-printers-panel.c
@@ -26,6 +26,7 @@
 #include <glib/gstdio.h>
 #include <polkit/polkit.h>
 #include <dbus/dbus-glib.h>
+#include <gsettings-desktop-schemas/gdesktop-enums.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 CLOCK_SCHEMA "org.gnome.desktop.interface"
+#define CLOCK_FORMAT_KEY "clock-format"
+
 struct _CcPrintersPanelPrivate
 {
   GtkBuilder *builder;
@@ -871,7 +875,6 @@ enum
   JOB_ID_COLUMN,
   JOB_TITLE_COLUMN,
   JOB_STATE_COLUMN,
-  JOB_USER_COLUMN,
   JOB_CREATION_TIME_COLUMN,
   JOB_N_COLUMNS
 };
@@ -883,6 +886,7 @@ actualize_jobs_list (CcPrintersPanel *self)
   GtkListStore           *store;
   GtkTreeView            *treeview;
   GtkTreeIter             iter;
+  GSettings              *settings;
   int                     i;
 
   priv = PRINTERS_PANEL_PRIVATE (self);
@@ -901,16 +905,33 @@ actualize_jobs_list (CcPrintersPanel *self)
       priv->dests != NULL)
     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++)
     {
+      GDesktopClockFormat  value;
+      GDateTime           *time;
       struct tm *ts;
       gchar     *time_string;
       gchar     *state = NULL;
 
       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)
         {
@@ -949,7 +970,6 @@ actualize_jobs_list (CcPrintersPanel *self)
                           JOB_ID_COLUMN, i,
                           JOB_TITLE_COLUMN, priv->jobs[i].title,
                           JOB_STATE_COLUMN, state,
-                          JOB_USER_COLUMN, priv->jobs[i].user,
                           JOB_CREATION_TIME_COLUMN, time_string,
                           -1);
 
@@ -1019,9 +1039,8 @@ populate_jobs_list (CcPrintersPanel *self)
   CcPrintersPanelPrivate *priv;
   GtkTreeViewColumn      *column;
   GtkCellRenderer        *renderer;
+  GtkCellRenderer        *title_renderer;
   GtkTreeView            *treeview;
-  gfloat                  x_align = 0.5;
-  gfloat                  y_align = 0.5;
 
   priv = PRINTERS_PANEL_PRIVATE (self);
 
@@ -1031,12 +1050,12 @@ populate_jobs_list (CcPrintersPanel *self)
     gtk_builder_get_object (priv->builder, "job-treeview");
 
   renderer = gtk_cell_renderer_text_new ();
-  gtk_cell_renderer_get_alignment (renderer, &x_align, &y_align);
-  gtk_cell_renderer_set_alignment (renderer, 0.5, y_align);
+  title_renderer = gtk_cell_renderer_text_new ();
 
   /* 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);
+  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_min_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_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 */
   column = gtk_tree_view_column_new_with_attributes (_("Time"), renderer,
                                                      "text", JOB_CREATION_TIME_COLUMN, NULL);
diff --git a/panels/printers/printers.ui b/panels/printers/printers.ui
index 84dbdc9..cfa09f4 100644
--- a/panels/printers/printers.ui
+++ b/panels/printers/printers.ui
@@ -495,7 +495,6 @@
                           <object class="GtkTreeView" id="job-treeview">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="headers_visible">False</property>
                           </object>
                         </child>
                       </object>



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