From 5089a3473c68f24e4023c075cdbf46206ba495cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Fri, 1 Mar 2024 10:35:40 -0800 Subject: [PATCH 1/2] Handle own titlebuttons --- src/PrinterList.vala | 23 ++++++++++++++++------- src/PrinterPage.vala | 1 + src/meson.build | 1 + 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/PrinterList.vala b/src/PrinterList.vala index 4dd8a611..54094fc1 100644 --- a/src/PrinterList.vala +++ b/src/PrinterList.vala @@ -17,18 +17,21 @@ public class Printers.PrinterList : Gtk.Box { Object (stack: stack); } + class construct { + set_css_name ("settingssidebar"); + } + construct { - orientation = Gtk.Orientation.VERTICAL; - hexpand = true; - vexpand = true; + var headerbar = new Adw.HeaderBar () { + show_end_title_buttons = false, + show_title = false + }; list_box = new Gtk.ListBox (); - list_box.add_css_class (Granite.STYLE_CLASS_RICH_LIST); var scrolled = new Gtk.ScrolledWindow () { child = list_box, hscrollbar_policy = NEVER, - width_request = 250, hexpand = true, vexpand = true }; @@ -48,8 +51,14 @@ public class Printers.PrinterList : Gtk.Box { actionbar.add_css_class (Granite.STYLE_CLASS_FLAT); actionbar.pack_start (add_button); - append (scrolled); - append (actionbar); + var toolbarview = new Adw.ToolbarView () { + content = scrolled, + top_bar_style = FLAT + }; + toolbarview.add_top_bar (headerbar); + toolbarview.add_bottom_bar (actionbar); + + append (toolbarview); list_box.row_selected.connect ((row) => { if (row != null) { diff --git a/src/PrinterPage.vala b/src/PrinterPage.vala index fa63fdde..fd7ddc03 100644 --- a/src/PrinterPage.vala +++ b/src/PrinterPage.vala @@ -44,6 +44,7 @@ public class Printers.PrinterPage : Switchboard.SettingsPage { box.append (stack); child = box; + show_end_title_buttons = true; var set_default = add_button (_("Set as Default")); set_default.sensitive = !printer.is_default; diff --git a/src/meson.build b/src/meson.build index f774b04e..9a379fe7 100644 --- a/src/meson.build +++ b/src/meson.build @@ -46,6 +46,7 @@ shared_module( dependency('gobject-2.0'), dependency('granite-7', version: '>=7.4.0'), dependency('gtk4'), + dependency('libadwaita-1', version: '>=1.4'), meson.get_compiler('vala').find_library('posix'), cups_dep, switchboard_dep From 79e49e327987f62a5a8329172fa44772c2347840 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Thu, 14 Mar 2024 10:40:48 -0700 Subject: [PATCH 2/2] Update for latest --- src/PrinterList.vala | 9 ++++----- src/Widgets/PrinterRow.vala | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/PrinterList.vala b/src/PrinterList.vala index 54094fc1..d4357133 100644 --- a/src/PrinterList.vala +++ b/src/PrinterList.vala @@ -42,23 +42,22 @@ public class Printers.PrinterList : Gtk.Box { var add_button = new Gtk.Button () { child = add_button_box, - has_frame = false, - margin_top = 3, - margin_bottom = 3 + has_frame = false }; var actionbar = new Gtk.ActionBar (); - actionbar.add_css_class (Granite.STYLE_CLASS_FLAT); actionbar.pack_start (add_button); var toolbarview = new Adw.ToolbarView () { content = scrolled, - top_bar_style = FLAT + top_bar_style = FLAT, + bottom_bar_style = RAISED }; toolbarview.add_top_bar (headerbar); toolbarview.add_bottom_bar (actionbar); append (toolbarview); + add_css_class (Granite.STYLE_CLASS_SIDEBAR); list_box.row_selected.connect ((row) => { if (row != null) { diff --git a/src/Widgets/PrinterRow.vala b/src/Widgets/PrinterRow.vala index 924e9acb..d4619856 100644 --- a/src/Widgets/PrinterRow.vala +++ b/src/Widgets/PrinterRow.vala @@ -49,10 +49,10 @@ public class Printers.PrinterRow : Gtk.ListBoxRow { name_label.add_css_class (Granite.STYLE_CLASS_H3_LABEL); status_label = new Gtk.Label (null) { - use_markup = true, ellipsize = END, xalign = 0 }; + status_label.add_css_class (Granite.STYLE_CLASS_SMALL_LABEL); printer_image = new Gtk.Image.from_icon_name ("printer"); printer_image.add_css_class (Granite.STYLE_CLASS_LARGE_ICONS); @@ -63,8 +63,7 @@ public class Printers.PrinterRow : Gtk.ListBoxRow { }; var overlay = new Gtk.Overlay () { - child = printer_image, - width_request = 38 + child = printer_image }; overlay.add_overlay (status_image); @@ -103,7 +102,7 @@ public class Printers.PrinterRow : Gtk.ListBoxRow { private void update_status () { if (printer.is_enabled) { - status_label.label = "%s".printf (GLib.Markup.escape_text (printer.state_reasons)); + status_label.label = printer.state_reasons; switch (printer.state_reasons_raw) { case "offline": status_image.icon_name = "user-offline"; @@ -126,7 +125,7 @@ public class Printers.PrinterRow : Gtk.ListBoxRow { } } else { status_image.icon_name = "user-offline"; - status_label.label = "%s".printf (_("Disabled")); + status_label.label = _("Disabled"); } } }