From 59c09ccabf8fc6e604011412ba6ea1ee962258ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Wed, 16 Sep 2026 15:49:59 -0700 Subject: [PATCH] ProcessTreeViewNmaeCell: rewrite as Granite.Box with bind func --- .../ProcessTreeView/ProcessTreeView.vala | 38 ++++++------------- .../ProcessTreeViewNameCell.vala | 21 +++++++--- 2 files changed, 27 insertions(+), 32 deletions(-) diff --git a/src/Views/ProcessView/ProcessTreeView/ProcessTreeView.vala b/src/Views/ProcessView/ProcessTreeView/ProcessTreeView.vala index dc790d1d8..53d1e1fe0 100644 --- a/src/Views/ProcessView/ProcessTreeView/ProcessTreeView.vala +++ b/src/Views/ProcessView/ProcessTreeView/ProcessTreeView.vala @@ -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); @@ -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) { diff --git a/src/Views/ProcessView/ProcessTreeView/ProcessTreeViewNameCell.vala b/src/Views/ProcessView/ProcessTreeView/ProcessTreeViewNameCell.vala index f7e6a460b..66d9dd77e 100644 --- a/src/Views/ProcessView/ProcessTreeView/ProcessTreeViewNameCell.vala +++ b/src/Views/ProcessView/ProcessTreeView/ProcessTreeViewNameCell.vala @@ -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; + } }