[gnome-usage] Fix showing storage graph and size of OS on single partition system.
- From: Petr Štětka <pstetka src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-usage] Fix showing storage graph and size of OS on single partition system.
- Date: Wed, 12 Apr 2017 10:50:45 +0000 (UTC)
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]