Skip to content

Commit

Permalink
fix: Fixes count being sortable, but nothing occuring (#224)
Browse files Browse the repository at this point in the history
Fixes sorting by count being available, but doing nothing. This fix makes it sortable.
  • Loading branch information
ClementTsang authored Sep 6, 2020
1 parent cc87fa8 commit 0d8572c
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 11 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
13 changes: 13 additions & 0 deletions src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
20 changes: 9 additions & 11 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down Expand Up @@ -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,
)
});
}
}
}
}
Expand Down

0 comments on commit 0d8572c

Please sign in to comment.