[Xfce4-commits] [xfce/thunar] 01/01: Add setting to show file size in bytes in detailed view (Bug #11690)

noreply at xfce.org noreply at xfce.org
Fri Feb 2 23:57:14 CET 2018


This is an automated email from the git hooks/post-receive script.

a   l   e   x       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository xfce/thunar.

commit a5071b6a31d90c4686891ba4a79e9ff05944e3c0
Author: Adam Purkrt <adam at purkrt.net>
Date:   Fri Feb 2 23:51:47 2018 +0100

    Add setting to show file size in bytes in detailed view (Bug #11690)
---
 thunar/thunar-details-view.c |  2 +-
 thunar/thunar-enum-types.c   |  1 +
 thunar/thunar-enum-types.h   |  2 ++
 thunar/thunar-file.c         | 19 +++++++++++++++++++
 thunar/thunar-file.h         |  1 +
 thunar/thunar-list-model.c   | 27 +++++++++++++++++++++++++++
 thunar/thunar-preferences.c  |  2 +-
 7 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/thunar/thunar-details-view.c b/thunar/thunar-details-view.c
index 4dc4615..8029461 100644
--- a/thunar/thunar-details-view.c
+++ b/thunar/thunar-details-view.c
@@ -279,7 +279,7 @@ thunar_details_view_init (ThunarDetailsView *details_view)
       else
         {
           /* size is right aligned, everything else is left aligned */
-          renderer = (column == THUNAR_COLUMN_SIZE) ? right_aligned_renderer : left_aligned_renderer;
+          renderer = (column == THUNAR_COLUMN_SIZE || column == THUNAR_COLUMN_SIZE_IN_BYTES) ? right_aligned_renderer : left_aligned_renderer;
 
           /* add the renderer */
           gtk_tree_view_column_pack_start (details_view->columns[column], renderer, TRUE);
diff --git a/thunar/thunar-enum-types.c b/thunar/thunar-enum-types.c
index 6bfc7b8..5585f4a 100644
--- a/thunar/thunar-enum-types.c
+++ b/thunar/thunar-enum-types.c
@@ -97,6 +97,7 @@ thunar_column_get_type (void)
         { THUNAR_COLUMN_OWNER,         "THUNAR_COLUMN_OWNER",         N_ ("Owner"),         },
         { THUNAR_COLUMN_PERMISSIONS,   "THUNAR_COLUMN_PERMISSIONS",   N_ ("Permissions"),   },
         { THUNAR_COLUMN_SIZE,          "THUNAR_COLUMN_SIZE",          N_ ("Size"),          },
+        { THUNAR_COLUMN_SIZE_IN_BYTES, "THUNAR_COLUMN_SIZE_IN_BYTES", N_ ("Size in Bytes"), },
         { THUNAR_COLUMN_TYPE,          "THUNAR_COLUMN_TYPE",          N_ ("Type"),          },
         { THUNAR_COLUMN_FILE,          "THUNAR_COLUMN_FILE",          N_ ("File"),          },
         { THUNAR_COLUMN_FILE_NAME,     "THUNAR_COLUMN_FILE_NAME",     N_ ("File Name"),     },
diff --git a/thunar/thunar-enum-types.h b/thunar/thunar-enum-types.h
index 9fb34a7..83103bc 100644
--- a/thunar/thunar-enum-types.h
+++ b/thunar/thunar-enum-types.h
@@ -80,6 +80,7 @@ GType thunar_date_style_get_type (void) G_GNUC_CONST;
  * @THUNAR_COLUMN_OWNER         : owner's name.
  * @THUNAR_COLUMN_PERMISSIONS   : permissions bits.
  * @THUNAR_COLUMN_SIZE          : file size.
+ * @THUNAR_COLUMN_SIZE_IN_BYTES : file size in bytes.
  * @THUNAR_COLUMN_TYPE          : file type (i.e. 'plain text document').
  * @THUNAR_COLUMN_FILE          : #ThunarFile object.
  * @THUNAR_COLUMN_FILE_NAME     : real file name.
@@ -98,6 +99,7 @@ typedef enum
   THUNAR_COLUMN_OWNER,
   THUNAR_COLUMN_PERMISSIONS,
   THUNAR_COLUMN_SIZE,
+  THUNAR_COLUMN_SIZE_IN_BYTES,
   THUNAR_COLUMN_TYPE,
 
   /* special internal columns */
diff --git a/thunar/thunar-file.c b/thunar/thunar-file.c
index 6762e7d..5348484 100644
--- a/thunar/thunar-file.c
+++ b/thunar/thunar-file.c
@@ -2297,6 +2297,25 @@ thunar_file_get_size_string (const ThunarFile *file)
 
 
 /**
+ * thunar_file_get_size_in_bytes_string:
+ * @file : a #ThunarFile instance.
+ *
+ * Returns the size in bytes of the file as text.
+ * You'll need to free the result using g_free()
+ * if you're done with it.
+ *
+ * Return value: the size of @file in a human readable format.
+ **/
+gchar *
+thunar_file_get_size_in_bytes_string (const ThunarFile *file)
+{
+  _thunar_return_val_if_fail (THUNAR_IS_FILE (file), NULL);
+  return g_strdup_printf ("%'"G_GUINT64_FORMAT, thunar_file_get_size (file));
+}
+
+
+
+/**
  * thunar_file_get_size_string_formatted:
  * @file             : a #ThunarFile instance.
  * @file_size_binary : indicates if file size format
diff --git a/thunar/thunar-file.h b/thunar/thunar-file.h
index 7ddd873..f16a3e3 100644
--- a/thunar/thunar-file.h
+++ b/thunar/thunar-file.h
@@ -168,6 +168,7 @@ gchar            *thunar_file_get_date_string            (const ThunarFile
                                                           ThunarDateStyle         date_style) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
 gchar            *thunar_file_get_mode_string            (const ThunarFile       *file) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
 gchar            *thunar_file_get_size_string            (const ThunarFile       *file) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
+gchar            *thunar_file_get_size_in_bytes_string   (const ThunarFile       *file) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
 gchar            *thunar_file_get_size_string_formatted  (const ThunarFile       *file,
                                                           const gboolean          file_size_binary);
 
diff --git a/thunar/thunar-list-model.c b/thunar/thunar-list-model.c
index 4c2b76b..f2357f9 100644
--- a/thunar/thunar-list-model.c
+++ b/thunar/thunar-list-model.c
@@ -172,6 +172,9 @@ static gint               sort_by_permissions                     (const ThunarF
 static gint               sort_by_size                            (const ThunarFile       *a,
                                                                    const ThunarFile       *b,
                                                                    gboolean                case_sensitive);
+static gint               sort_by_size_in_bytes                   (const ThunarFile       *a,
+                                                                   const ThunarFile       *b,
+                                                                   gboolean                case_sensitive);
 static gint               sort_by_type                            (const ThunarFile       *a,
                                                                    const ThunarFile       *b,
                                                                    gboolean                case_sensitive);
@@ -594,6 +597,9 @@ thunar_list_model_get_column_type (GtkTreeModel *model,
     case THUNAR_COLUMN_SIZE:
       return G_TYPE_STRING;
 
+    case THUNAR_COLUMN_SIZE_IN_BYTES:
+      return G_TYPE_STRING;
+
     case THUNAR_COLUMN_TYPE:
       return G_TYPE_STRING;
 
@@ -750,6 +756,11 @@ thunar_list_model_get_value (GtkTreeModel *model,
       g_value_take_string (value, thunar_file_get_size_string_formatted (file, THUNAR_LIST_MODEL (model)->file_size_binary));
       break;
 
+    case THUNAR_COLUMN_SIZE_IN_BYTES:
+      g_value_init (value, G_TYPE_STRING);
+      g_value_take_string (value, thunar_file_get_size_in_bytes_string (file));
+      break;
+
     case THUNAR_COLUMN_TYPE:
       g_value_init (value, G_TYPE_STRING);
       if (G_UNLIKELY (thunar_file_is_symlink (file)))
@@ -909,6 +920,8 @@ thunar_list_model_get_sort_column_id (GtkTreeSortable *sortable,
     *sort_column_id = THUNAR_COLUMN_PERMISSIONS;
   else if (store->sort_func == sort_by_size)
     *sort_column_id = THUNAR_COLUMN_SIZE;
+  else if (store->sort_func == sort_by_size_in_bytes)
+    *sort_column_id = THUNAR_COLUMN_SIZE_IN_BYTES;
   else if (store->sort_func == sort_by_date_accessed)
     *sort_column_id = THUNAR_COLUMN_DATE_ACCESSED;
   else if (store->sort_func == sort_by_date_modified)
@@ -979,6 +992,10 @@ thunar_list_model_set_sort_column_id (GtkTreeSortable *sortable,
       store->sort_func = sort_by_size;
       break;
 
+    case THUNAR_COLUMN_SIZE_IN_BYTES:
+      store->sort_func = sort_by_size_in_bytes;
+      break;
+
     case THUNAR_COLUMN_TYPE:
       store->sort_func = sort_by_type;
       break;
@@ -1563,6 +1580,16 @@ sort_by_size (const ThunarFile *a,
 
 
 static gint
+sort_by_size_in_bytes (const ThunarFile *a,
+                       const ThunarFile *b,
+                       gboolean          case_sensitive)
+{
+  return sort_by_size (a, b, case_sensitive);
+}
+
+
+
+static gint
 sort_by_type (const ThunarFile *a,
               const ThunarFile *b,
               gboolean          case_sensitive)
diff --git a/thunar/thunar-preferences.c b/thunar/thunar-preferences.c
index 9a86ae1..1ce996a 100644
--- a/thunar/thunar-preferences.c
+++ b/thunar/thunar-preferences.c
@@ -221,7 +221,7 @@ thunar_preferences_class_init (ThunarPreferencesClass *klass)
       g_param_spec_string ("last-details-view-column-order",
                            "LastDetailsViewColumnOrder",
                            NULL,
-                           "THUNAR_COLUMN_NAME,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_TYPE,THUNAR_COLUMN_DATE_MODIFIED",
+                           "THUNAR_COLUMN_NAME,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_SIZE_IN_BYTES,THUNAR_COLUMN_TYPE,THUNAR_COLUMN_DATE_MODIFIED",
                            EXO_PARAM_READWRITE);
 
   /**

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list