diff --git a/src/Views/OperatingSystemView.vala b/src/Views/OperatingSystemView.vala index 281ff89b..e7153836 100644 --- a/src/Views/OperatingSystemView.vala +++ b/src/Views/OperatingSystemView.vala @@ -85,7 +85,6 @@ public class About.OperatingSystemView : Gtk.Box { private File? logo_file; private Adw.Avatar? logo; - private Gtk.StringList packages; private SystemUpdate? update_proxy = null; private SystemUpdate.CurrentState? current_state = null; private Gtk.Grid software_grid; @@ -174,8 +173,6 @@ public class About.OperatingSystemView : Gtk.Box { kernel_version_label.add_css_class (Granite.CssClass.SMALL); kernel_version_label.add_css_class (Granite.CssClass.DIM); - packages = new Gtk.StringList (null); - updates_image = new Gtk.Image () { icon_size = LARGE }; @@ -522,7 +519,7 @@ public class About.OperatingSystemView : Gtk.Box { } update_progress_revealer.reveal_child = false; - details_button_revealer.reveal_child = current_state.state == AVAILABLE || current_state.state == ERROR; + details_button_revealer.reveal_child = current_state.state == ERROR; switch (current_state.state) { case UP_TO_DATE: @@ -556,18 +553,11 @@ public class About.OperatingSystemView : Gtk.Box { try { var details = yield update_proxy.get_update_details (); - updates_description.label = dngettext ( - GETTEXT_PACKAGE, - "%i update available (%s)", - "%i updates available (%s)", - details.packages.length - ).printf (details.packages.length, GLib.format_size (details.size)); + updates_description.label = GLib.format_size (details.size); if (Pk.Info.SECURITY in details.info) { updates_image.icon_name = "software-update-urgent"; } - - packages.splice (0, packages.get_n_items (), details.packages); } catch (Error e) { updates_description.label = _("Unable to determine number of updates"); warning ("Failed to get updates list from backend: %s", e.message); @@ -622,27 +612,19 @@ public class About.OperatingSystemView : Gtk.Box { return; } - if (current_state.state == ERROR) { - var message_dialog = new Granite.MessageDialog ( - _("Failed to download updates"), - _("This may have been caused by sideloaded or manually compiled software, a third-party software source, or a package manager error. Manually refreshing updates may resolve the issue."), - new ThemedIcon ("dialog-error") - ) { - transient_for = (Gtk.Window) get_root (), - modal = true - }; - - message_dialog.show_error_details (current_state.message); + var message_dialog = new Granite.MessageDialog ( + _("Failed to download updates"), + _("This may have been caused by sideloaded or manually compiled software, a third-party software source, or a package manager error. Manually refreshing updates may resolve the issue."), + new ThemedIcon ("dialog-error") + ) { + transient_for = (Gtk.Window) get_root (), + modal = true + }; - message_dialog.response.connect (message_dialog.destroy); - message_dialog.present (); - return; - } + message_dialog.show_error_details (current_state.message); - var details_dialog = new UpdateDetailsDialog (packages) { - transient_for = (Gtk.Window) get_root () - }; - details_dialog.present (); + message_dialog.response.connect (message_dialog.destroy); + message_dialog.present (); } private async void refresh_clicked () { diff --git a/src/Widgets/UpdateDetailsDialog.vala b/src/Widgets/UpdateDetailsDialog.vala deleted file mode 100644 index d72abce4..00000000 --- a/src/Widgets/UpdateDetailsDialog.vala +++ /dev/null @@ -1,73 +0,0 @@ -/* - * SPDX-License-Identifier: GPL-3.0-or-later - * SPDX-FileCopyrightText: 2024 elementary, Inc. (https://elementary.io) - */ - -public class About.UpdateDetailsDialog : Granite.Dialog { - public Gtk.StringList packages { get; construct; } - - public UpdateDetailsDialog (Gtk.StringList packages ) { - Object (packages: packages); - } - - construct { - title = _("What's New"); - modal = true; - - var title_label = new Gtk.Label ( - dngettext ( - GETTEXT_PACKAGE, - "%u package will be upgraded", - "%u packages will be upgraded", - packages.get_n_items () - ).printf (packages.get_n_items ()) - ) { - halign = START - }; - title_label.add_css_class (Granite.STYLE_CLASS_TITLE_LABEL); - - var packages_listbox = new Gtk.ListBox () { - vexpand = true, - selection_mode = NONE - }; - packages_listbox.add_css_class (Granite.STYLE_CLASS_RICH_LIST); - packages_listbox.bind_model (packages, (obj) => { - var str = ((Gtk.StringObject) obj).string; - - var image = new Gtk.Image.from_icon_name ("package-x-generic") { - icon_size = LARGE - }; - - var label = new Gtk.Label (str); - - var box = new Gtk.Box (HORIZONTAL, 6); - box.append (image); - box.append (label); - - return box; - }); - - var scrolled = new Gtk.ScrolledWindow () { - child = packages_listbox, - hscrollbar_policy = NEVER, - max_content_height = 400, - propagate_natural_height = true - }; - - var frame = new Gtk.Frame (null) { - child = scrolled - }; - - var box = new Gtk.Box (VERTICAL, 12); - box.append (title_label); - box.append (frame); - - get_content_area ().append (box); - - add_button (_("Close"), Gtk.ResponseType.CLOSE); - - response.connect (() => { - close (); - }); - } -} diff --git a/src/meson.build b/src/meson.build index 8570d597..abe1f7a7 100644 --- a/src/meson.build +++ b/src/meson.build @@ -11,8 +11,7 @@ plug_files = files( 'Views/HardwareView.vala', 'Views/OperatingSystemView.vala', 'Widgets/FirmwareUpdateRow.vala', - 'Widgets' / 'DriverRow.vala', - 'Widgets' / 'UpdateDetailsDialog.vala' + 'Widgets' / 'DriverRow.vala' ) switchboard_dep = dependency('switchboard-3')