diff --git a/src/PrinterList.vala b/src/PrinterList.vala
index 4dd8a611..d4357133 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
};
@@ -39,17 +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);
- append (scrolled);
- append (actionbar);
+ var toolbarview = new Adw.ToolbarView () {
+ content = scrolled,
+ 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/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/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");
}
}
}
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