summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClement Tsang <34804052+ClementTsang@users.noreply.github.com>2020-09-06 02:16:50 -0400
committerGitHub <noreply@github.com>2020-09-06 02:16:50 -0400
commit0d8572c6923c687c19a7cdbcc7128ba703e4e06d (patch)
tree18476d8512ef4cc19882e4ac5a1979847ab61f90
parentcc87fa8e4a2693a0015290c62cd0ccdecec0815a (diff)
fix: Fixes count being sortable, but nothing occuring (#224)
Fixes sorting by count being available, but doing nothing. This fix makes it sortable.
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/app.rs13
-rw-r--r--src/lib.rs20
3 files changed, 24 insertions, 11 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5762280b..9b3357bd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -27,6 +27,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- [#215](https://github.com/ClementTsang/bottom/pull/215): Add labels to Linux temperature values.
+- [#224](https://github.com/ClementTsang/bottom/pull/224): Implements sorting by count. It previously did absolutely nothing.
+
## [0.4.7] - 2020-08-26
### Bug Fixes
diff --git a/src/app.rs b/src/app.rs
index 8db5f777..1aa390f7 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -268,6 +268,19 @@ impl App {
// Toggles process widget grouping state
proc_widget_state.is_grouped = !(proc_widget_state.is_grouped);
+ // Forcefully switch off column if we were on it...
+ if (proc_widget_state.is_grouped
+ && proc_widget_state.process_sorting_type
+ == data_harvester::processes::ProcessSorting::Pid)
+ || (!proc_widget_state.is_grouped
+ && proc_widget_state.process_sorting_type
+ == data_harvester::processes::ProcessSorting::Count)
+ {
+ proc_widget_state.process_sorting_type =
+ data_harvester::processes::ProcessSorting::CpuPercent; // Go back to default, negate PID for group
+ proc_widget_state.process_sorting_reverse = true;
+ }
+
proc_widget_state
.columns
.column_mapping
diff --git a/src/lib.rs b/src/lib.rs
index 1b1c3e7b..2c15c73d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -510,16 +510,6 @@ pub fn update_final_process_list(app: &mut App, widget_id: u64) {
// Quick fix for tab updating the table headers
if let Some(proc_widget_state) = app.proc_state.get_mut_widget_state(widget_id) {
- if let data_harvester::processes::ProcessSorting::Pid =
- proc_widget_state.process_sorting_type
- {
- if proc_widget_state.is_grouped {
- proc_widget_state.process_sorting_type =
- data_harvester::processes::ProcessSorting::CpuPercent; // Go back to default, negate PID for group
- proc_widget_state.process_sorting_reverse = true;
- }
- }
-
let mut resulting_processes = filtered_process_data;
sort_process_data(&mut resulting_processes, proc_widget_state);
@@ -645,7 +635,15 @@ pub fn sort_process_data(
)
}),
ProcessSorting::Count => {
- // Nothing should happen here.
+ if proc_widget_state.is_grouped {
+ to_sort_vec.sort_by(|a, b| {
+ utils::gen_util::get_ordering(
+ a.group_pids.len(),
+ b.group_pids.len(),
+ proc_widget_state.process_sorting_reverse,
+ )
+ });
+ }
}
}
}