[gnome-usage] Fix showing storage graph and size of OS on single partition system.



commit 14c9725d5d02940a5895e770c5fe79f1082b3949
Author: Petr Štětka <pstetka redhat com>
Date:   Wed Apr 12 12:50:25 2017 +0200

    Fix showing storage graph and size of OS on single partition system.

 src/storage-analyzer.vala |   26 ++++++++++++++++++++++++--
 src/storage-item.vala     |    7 ++++---
 2 files changed, 28 insertions(+), 5 deletions(-)
---
diff --git a/src/storage-analyzer.vala b/src/storage-analyzer.vala
index e81add7..ff86f77 100644
--- a/src/storage-analyzer.vala
+++ b/src/storage-analyzer.vala
@@ -105,6 +105,12 @@ namespace Usage
                             return -1;
                         else
                             return 1;
+                    case StorageItemPosition.THIRD:
+                        if(b.get_prefered_position() != StorageItemPosition.FIRST &&
+                            b.get_prefered_position() != StorageItemPosition.SECOND)
+                            return -1;
+                        else
+                            return 1;
                     case StorageItemPosition.ANYWHERE:
                         switch(b.get_prefered_position())
                         {
@@ -112,6 +118,8 @@ namespace Usage
                                 return 1;
                             case StorageItemPosition.SECOND:
                                 return 1;
+                            case StorageItemPosition.THIRD:
+                                return 1;
                             case StorageItemPosition.ANYWHERE:
                                 if(path_null == true)
                                     return sort_alphabetically(a.get_name(), b.get_name());
@@ -583,7 +591,21 @@ namespace Usage
 
         private void add_root_items(ref List<StorageItem> items, Storage storage, int section)
         {
-            items.insert_sorted(new StorageItem.system(_("Operating System"), storage.used, ((float) 
storage.used / storage.total) * 100, section), (CompareFunc) sort);
+               uint64 root_size = storage.used;
+               if(separate_home == false)
+               {
+                       uint64 home_size = get_size_of_directory(Environment.get_home_dir())
+                                                        + 
get_size_of_directory(Environment.get_user_special_dir(UserDirectory.DESKTOP))
+                                                        + 
get_size_of_directory(Environment.get_user_special_dir(UserDirectory.DOCUMENTS))
+                                                        + 
get_size_of_directory(Environment.get_user_special_dir(UserDirectory.DOWNLOAD))
+                                                        + 
get_size_of_directory(Environment.get_user_special_dir(UserDirectory.MUSIC))
+                                                        + 
get_size_of_directory(Environment.get_user_special_dir(UserDirectory.PICTURES))
+                                                        + 
get_size_of_directory(Environment.get_user_special_dir(UserDirectory.VIDEOS))
+                                                        + get_size_of_directory(TRASH_PATH);
+                               root_size -= home_size;
+                       }
+
+            items.insert_sorted(new StorageItem.system(root_size, ((float) root_size / storage.total) * 100, 
section), (CompareFunc) sort);
         }
 
         private void add_home_items(ref List<StorageItem> items, Storage storage, int section)
@@ -598,7 +620,7 @@ namespace Usage
                     user_size,
                     ((float) user_size / storage.total) * 100,
                     section,
-                    StorageItemPosition.SECOND), (CompareFunc) sort);
+                    StorageItemPosition.THIRD), (CompareFunc) sort);
             }
             uint64? desktop_size = 
get_size_of_directory(Environment.get_user_special_dir(UserDirectory.DESKTOP));
             if(desktop_size != null)
diff --git a/src/storage-item.vala b/src/storage-item.vala
index dcc8e17..d9e3492 100644
--- a/src/storage-item.vala
+++ b/src/storage-item.vala
@@ -4,6 +4,7 @@ namespace Usage
     {
         FIRST,
         SECOND,
+        THIRD,
         ANYWHERE,
         PENULTIMATE,
         LAST
@@ -100,16 +101,16 @@ namespace Usage
             this.prefered_position = StorageItemPosition.FIRST;
         }
 
-        public StorageItem.system(string name, uint64 size, double percentage, int section = 0)
+        public StorageItem.system(uint64 size, double percentage, int section = 0)
         {
             this.type = StorageItemType.SYSTEM;
             this.parent = StorageItemType.SYSTEM;
-            this.name = name;
+            this.name = _("Operating System");
             this.path = "";
             this.size = size;
             this.percentage = percentage;
             this.section = section;
-            this.prefered_position = StorageItemPosition.ANYWHERE;
+            this.prefered_position = StorageItemPosition.SECOND;
         }
 
         public StorageItem.available(uint64 size, double percentage, int section = 0)


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