From 572e9a476f3f7a9e77b30654d524614fb48d000d Mon Sep 17 00:00:00 2001 From: stsdc <6031763+stsdc@users.noreply.github.com> Date: Wed, 22 Dec 2021 23:56:40 +0100 Subject: [PATCH 1/6] retrieve info about sorting --- .../ProcessTreeView/CPUProcessTreeView.vala | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala b/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala index 8cabe02b..81f1b419 100644 --- a/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala +++ b/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala @@ -77,6 +77,8 @@ public class Monitor.CPUProcessTreeView : Gtk.TreeView { cursor_changed.connect (_cursor_changed); // model.process_manager.updated.connect (_cursor_changed); + + get_sorting_state (); } public void icon_cell_layout (Gtk.CellLayout cell_layout, Gtk.CellRenderer icon_cell, Gtk.TreeModel model, Gtk.TreeIter iter) { Value icon_name; @@ -198,6 +200,8 @@ public class Monitor.CPUProcessTreeView : Gtk.TreeView { int pid = 0; var selection = get_selection ().get_selected_rows (out tree_model).nth_data (0); + get_sorting_state (); + if (selection != null) { tree_model.get_iter (out iter, selection); tree_model.get (iter, Column.PID, out pid); @@ -207,4 +211,26 @@ public class Monitor.CPUProcessTreeView : Gtk.TreeView { } } + public void get_sorting_state () { + var columns = this.get_columns (); + + foreach (var column in columns) { + var sort_column_id = column.get_sort_column_id (); + var sort_order = column.get_sort_order (); + var ind = column.sort_indicator; + debug ("sort_column_id: %d sort_order: %d, indicator: %s", sort_column_id, sort_order, ind.to_string ()); + } + } + + public void set_sorting_state () { + var columns = this.get_columns (); + + // foreach (var column in columns) { + // var sort_column_id = column.get_sort_column_id (); + // var sort_order = column.get_sort_order (); + // var ind = column.sort_indicator; + // debug ("sort_column_id: %d sort_order: %d, indicator: %s", sort_column_id, sort_order, ind.to_string ()); + // } + } + } From b8d0af344b4cdee2c78c51ac74e5fbc9c5eb4cbc Mon Sep 17 00:00:00 2001 From: stsdc <6031763+stsdc@users.noreply.github.com> Date: Thu, 23 Dec 2021 00:31:44 +0100 Subject: [PATCH 2/6] add gsxhema for columns sorting state --- data/com.github.stsdc.monitor.gschema.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/com.github.stsdc.monitor.gschema.xml b/data/com.github.stsdc.monitor.gschema.xml index 62d25fc8..184b0579 100644 --- a/data/com.github.stsdc.monitor.gschema.xml +++ b/data/com.github.stsdc.monitor.gschema.xml @@ -70,5 +70,11 @@ Opened view The last opened view + + + '00000000' + Process view columns sorting state + Process view columns sorting state + From edcd14fe6502545678c64773833d2fdb4ca9c842 Mon Sep 17 00:00:00 2001 From: stsdc <6031763+stsdc@users.noreply.github.com> Date: Thu, 23 Dec 2021 00:34:57 +0100 Subject: [PATCH 3/6] get_sorting_state returns sortings state of columns --- .../ProcessTreeView/CPUProcessTreeView.vala | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala b/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala index 81f1b419..b97edbca 100644 --- a/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala +++ b/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala @@ -211,15 +211,17 @@ public class Monitor.CPUProcessTreeView : Gtk.TreeView { } } - public void get_sorting_state () { - var columns = this.get_columns (); + public string get_sorting_state () { + string sorting_state = ""; + + foreach (var column in this.get_columns ()) { + int sort_indicator = column.sort_indicator ? 1 : 0; + sorting_state += "%d%d".printf (sort_indicator, column.get_sort_order ()); - foreach (var column in columns) { - var sort_column_id = column.get_sort_column_id (); - var sort_order = column.get_sort_order (); - var ind = column.sort_indicator; - debug ("sort_column_id: %d sort_order: %d, indicator: %s", sort_column_id, sort_order, ind.to_string ()); } + debug ("Sorting state: " + sorting_state); + + return sorting_state; } public void set_sorting_state () { From 6cb8fefd46db2ff95ff8ff43bb95658c9ea6a772 Mon Sep 17 00:00:00 2001 From: stsdc <6031763+stsdc@users.noreply.github.com> Date: Thu, 23 Dec 2021 00:47:25 +0100 Subject: [PATCH 4/6] wip: set_sorting_state --- .../ProcessTreeView/CPUProcessTreeView.vala | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala b/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala index b97edbca..fe233c78 100644 --- a/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala +++ b/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala @@ -219,20 +219,22 @@ public class Monitor.CPUProcessTreeView : Gtk.TreeView { sorting_state += "%d%d".printf (sort_indicator, column.get_sort_order ()); } - debug ("Sorting state: " + sorting_state); + debug ("Get sorting state: " + sorting_state); return sorting_state; } - public void set_sorting_state () { + public void set_sorting_state (string sorting_state) { var columns = this.get_columns (); - // foreach (var column in columns) { - // var sort_column_id = column.get_sort_column_id (); - // var sort_order = column.get_sort_order (); - // var ind = column.sort_indicator; - // debug ("sort_column_id: %d sort_order: %d, indicator: %s", sort_column_id, sort_order, ind.to_string ()); - // } + int index = 0; + foreach (var column in columns) { + column.sort_indicator = (sorting_state[index] == '1'); + column.set_sort_order (); + + debug ("Set sorting state: " + sorting_state); + index += 2; + } } } From dabaff5b5a04d7463c1d0df957eaf9971f440d51 Mon Sep 17 00:00:00 2001 From: stsdc <6031763+stsdc@users.noreply.github.com> Date: Thu, 23 Dec 2021 13:48:22 +0100 Subject: [PATCH 5/6] setting sorting state works --- src/MainWindow.vala | 10 ++++++++++ .../ProcessTreeView/CPUProcessTreeView.vala | 12 +++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/MainWindow.vala b/src/MainWindow.vala index f9311a02..ec385068 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -30,6 +30,10 @@ public class Monitor.MainWindow : Hdy.ApplicationWindow { resources = new Resources (); process_view = new ProcessView (); + var sorting_state = MonitorApp.settings.get_string ("process-view-columns-sorting-state"); + debug ("sorting state: " + sorting_state); + + process_view.process_tree_view.set_sorting_state (sorting_state); system_view = new SystemView (resources); stack = new Gtk.Stack (); @@ -90,6 +94,7 @@ public class Monitor.MainWindow : Hdy.ApplicationWindow { this.present (); setup_window_state (); this.show_all (); + }); shortcuts = new Shortcuts (this); @@ -107,6 +112,8 @@ public class Monitor.MainWindow : Hdy.ApplicationWindow { MonitorApp.settings.set_string ("opened-view", stack.visible_child_name); + MonitorApp.settings.set_string ("process-view-columns-sorting-state", process_view.process_tree_view.get_sorting_state ()); + if (MonitorApp.settings.get_boolean ("indicator-state")) { this.hide_on_delete (); } else { @@ -138,6 +145,9 @@ public class Monitor.MainWindow : Hdy.ApplicationWindow { } else { move (position_x, position_y); } + + + } } diff --git a/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala b/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala index fe233c78..920a6a86 100644 --- a/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala +++ b/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala @@ -78,7 +78,6 @@ public class Monitor.CPUProcessTreeView : Gtk.TreeView { cursor_changed.connect (_cursor_changed); // model.process_manager.updated.connect (_cursor_changed); - get_sorting_state (); } public void icon_cell_layout (Gtk.CellLayout cell_layout, Gtk.CellRenderer icon_cell, Gtk.TreeModel model, Gtk.TreeIter iter) { Value icon_name; @@ -200,8 +199,6 @@ public class Monitor.CPUProcessTreeView : Gtk.TreeView { int pid = 0; var selection = get_selection ().get_selected_rows (out tree_model).nth_data (0); - get_sorting_state (); - if (selection != null) { tree_model.get_iter (out iter, selection); tree_model.get (iter, Column.PID, out pid); @@ -230,11 +227,16 @@ public class Monitor.CPUProcessTreeView : Gtk.TreeView { int index = 0; foreach (var column in columns) { column.sort_indicator = (sorting_state[index] == '1'); - column.set_sort_order (); + column.set_sort_order (sorting_state[index + 1] == '1' ? Gtk.SortType.ASCENDING : Gtk.SortType.DESCENDING); + + debug ((sorting_state[index] == '1').to_string () + " " + sorting_state[index + 1].to_string ()); - debug ("Set sorting state: " + sorting_state); index += 2; } + debug ("Set sorting state: " + sorting_state); + get_sorting_state (); + set_model (model); + } } From 5c4fce9b604c1360a6d019fba0076914ea44b8f7 Mon Sep 17 00:00:00 2001 From: stsdc <6031763+stsdc@users.noreply.github.com> Date: Mon, 3 Jan 2022 21:53:19 +0100 Subject: [PATCH 6/6] add some debug messages --- .../ProcessTreeView/CPUProcessTreeView.vala | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala b/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala index 920a6a86..053cc0be 100644 --- a/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala +++ b/src/Views/ProcessView/ProcessTreeView/CPUProcessTreeView.vala @@ -222,18 +222,22 @@ public class Monitor.CPUProcessTreeView : Gtk.TreeView { } public void set_sorting_state (string sorting_state) { + debug ("== Going to set sorting state: " + sorting_state); + var columns = this.get_columns (); int index = 0; foreach (var column in columns) { + column.sort_indicator = (sorting_state[index] == '1'); - column.set_sort_order (sorting_state[index + 1] == '1' ? Gtk.SortType.ASCENDING : Gtk.SortType.DESCENDING); - debug ((sorting_state[index] == '1').to_string () + " " + sorting_state[index + 1].to_string ()); + var sort_type = sorting_state[index + 1] == '1' ? Gtk.SortType.ASCENDING : Gtk.SortType.DESCENDING; + column.set_sort_order (sort_type); + + debug ("== " + (sorting_state[index] == '1').to_string () + " " + sort_type.to_string ()); index += 2; } - debug ("Set sorting state: " + sorting_state); get_sorting_state (); set_model (model);