summaryrefslogtreecommitdiffstats
path: root/ProcessList.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2021-08-31 15:38:52 +1000
committerNathan Scott <nathans@redhat.com>2021-12-07 17:04:49 +1100
commit72ba20fa5f077bab4286dd78f9944df15de3b3b4 (patch)
tree0c4fb4e63b80b3a20d5f50bdac6bed9fe2bee607 /ProcessList.c
parentff4f44b22ae8d6522ee22599174a6cdd41bc0314 (diff)
Introduce screen tabs
This is a forward port (by nathans) of Hisham's original code.
Diffstat (limited to 'ProcessList.c')
-rw-r--r--ProcessList.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/ProcessList.c b/ProcessList.c
index c4c759da..1df1990d 100644
--- a/ProcessList.c
+++ b/ProcessList.c
@@ -124,13 +124,14 @@ void ProcessList_printHeader(const ProcessList* this, RichString* header) {
RichString_rewind(header, RichString_size(header));
const Settings* settings = this->settings;
- const ProcessField* fields = settings->fields;
+ const ScreenSettings* ss = settings->ss;
+ const ProcessField* fields = ss->fields;
- ProcessField key = Settings_getActiveSortKey(settings);
+ ProcessField key = ScreenSettings_getActiveSortKey(ss);
for (int i = 0; fields[i]; i++) {
int color;
- if (settings->treeView && settings->treeViewAlwaysByPID) {
+ if (ss->treeView && ss->treeViewAlwaysByPID) {
color = CRT_colors[PANEL_HEADER_FOCUS];
} else if (key == fields[i]) {
color = CRT_colors[PANEL_SELECTION_FOCUS];
@@ -140,10 +141,11 @@ void ProcessList_printHeader(const ProcessList* this, RichString* header) {
RichString_appendWide(header, color, alignedProcessFieldTitle(this, fields[i]));
if (key == fields[i] && RichString_getCharVal(*header, RichString_size(header) - 1) == ' ') {
+ bool ascending = ScreenSettings_getActiveDirection(ss) == 1;
RichString_rewind(header, 1); // rewind to override space
RichString_appendnWide(header,
CRT_colors[PANEL_SELECTION_FOCUS],
- CRT_treeStr[Settings_getActiveDirection(this->settings) == 1 ? TREE_STR_ASC : TREE_STR_DESC],
+ CRT_treeStr[ascending ? TREE_STR_ASC : TREE_STR_DESC],
1);
}
if (COMM == fields[i] && settings->showMergedCommand) {
@@ -402,7 +404,7 @@ static int ProcessList_treeProcessCompareByPID(const void* v1, const void* v2) {
static void ProcessList_buildTree(ProcessList* this) {
int node_counter = 1;
int node_index = 0;
- int direction = Settings_getActiveDirection(this->settings);
+ int direction = ScreenSettings_getActiveDirection(this->settings->ss);
// Sort by PID
Vector_quickSortCustomCompare(this->processes, ProcessList_treeProcessCompareByPID);
@@ -488,7 +490,7 @@ static void ProcessList_buildTree(ProcessList* this) {
}
void ProcessList_sort(ProcessList* this) {
- if (this->settings->treeView) {
+ if (this->settings->ss->treeView) {
ProcessList_updateTreeSet(this);
Vector_quickSortCustomCompare(this->processes, ProcessList_treeProcessCompare);
} else {
@@ -498,7 +500,7 @@ void ProcessList_sort(ProcessList* this) {
ProcessField ProcessList_keyAt(const ProcessList* this, int at) {
int x = 0;
- const ProcessField* fields = this->settings->fields;
+ const ProcessField* fields = this->settings->ss->fields;
ProcessField field;
for (int i = 0; (field = fields[i]); i++) {
int len = strlen(alignedProcessFieldTitle(this, field));
@@ -661,7 +663,7 @@ void ProcessList_scan(ProcessList* this, bool pauseProcessUpdate) {
// Set UID column width based on max UID.
Process_setUidColumnWidth(maxUid);
- if (this->settings->treeView) {
+ if (this->settings->ss->treeView) {
// Clear out the hashtable to avoid any left-over processes from previous build
//
// The sorting algorithm relies on the fact that

© 2014-2024 Faster IT GmbH | imprint | privacy policy