Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 11 additions & 27 deletions src/Views/ProcessView/ProcessTreeView/ProcessTreeView.vala
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ public class Monitor.ProcessTreeView : Granite.Bin {
var name_item_factory = new Gtk.SignalListItemFactory ();
name_item_factory.setup.connect (name_item_factory_setup);
name_item_factory.bind.connect (name_item_factory_bind);
name_item_factory.unbind.connect (name_item_factory_unbind);

var cpu_item_factory = new Gtk.SignalListItemFactory ();
cpu_item_factory.setup.connect (generic_item_factory_setup);
Expand Down Expand Up @@ -73,36 +72,21 @@ public class Monitor.ProcessTreeView : Granite.Bin {
cell.child = label;
}

private void name_item_factory_setup (Object object) {
var cell = (Gtk.ColumnViewCell) object;
var name_cell = new ProcessTreeViewNameCell ();
cell.child = name_cell;
private void setup_origin (Object obj) {
var item = (Gtk.ListItem) obj;
item.child = new LogCell (ORIGIN);
}

private void name_item_factory_bind (Object object) {
var cell = (Gtk.ColumnViewCell) object;
var name_cell = (ProcessTreeViewNameCell) cell.child;
var label = name_cell.label;
var icon = name_cell.icon;

var item = (ProcessRowData) cell.item;

var binding_name = item.bind_property ("name", label, "label", SYNC_CREATE);
item.bindings.set ("name", binding_name);

var binding_icon = item.bind_property ("icon", icon, "gicon", SYNC_CREATE);
item.bindings.set ("icon", binding_icon);
private void name_item_factory_setup (Object object) {
var item = (Gtk.ListItem) object;
item.child = new ProcessTreeViewNameCell ();
}

private void name_item_factory_unbind (Object object) {
var cell = (Gtk.ColumnViewCell) object;
var name_cell = (ProcessTreeViewNameCell) cell.child;
var label = name_cell.label;
var icon = name_cell.icon;
label.label = null;
icon.gicon = null;
((ProcessRowData) cell.item).bindings["name"].unbind ();
((ProcessRowData) cell.item).bindings["icon"].unbind ();
private void name_item_factory_bind (Object object) {
var item = (Gtk.ListItem) object;
var process_row_data = (ProcessRowData) item.item;
var cell = (ProcessTreeViewNameCell) item.child;
cell.bind (process_row_data);
}

private void cpu_item_factory_bind (Object object) {
Expand Down
21 changes: 16 additions & 5 deletions src/Views/ProcessView/ProcessTreeView/ProcessTreeViewNameCell.vala
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,32 @@
* SPDX-FileCopyrightText: 2026 elementary, Inc. (https://elementary.io)
*/

public class Monitor.ProcessTreeViewNameCell : Gtk.Box {
public Gtk.Image icon;
public Gtk.Label label;
public class Monitor.ProcessTreeViewNameCell : Granite.Box {
private Gtk.Image icon;
private Gtk.Label label;

public ProcessTreeViewNameCell () {
hexpand = true;
halign = START;
Object (
orientation: Gtk.Orientation.HORIZONTAL,
child_spacing: Granite.Box.Spacing.HALF
);
}

construct {
icon = new Gtk.Image.from_icon_name ("application-x-executable") {
pixel_size = 16
};

label = new Gtk.Label (Utils.NO_DATA);

hexpand = true;
halign = START;
append (icon);
append (label);
}

public void bind (ProcessRowData row_data) {
label.label = row_data.name;
icon.gicon = row_data.icon;
}
}
Loading