using Gtk 4.0; using Adw 1; template $BzAppSizeDialog: Adw.Bin { child: Adw.ToolbarView { [top] Adw.HeaderBar { show-title: false; } content: ScrolledWindow { propagate-natural-height: true; child: Adw.Clamp { maximum-size: 600; child: Box { orientation: vertical; margin-top: 6; margin-bottom: 24; margin-start: 24; margin-end: 24; spacing: 15; Box { orientation: vertical; margin-bottom: 9; $BzLozenge { title: _("Download Size"); label: bind $format_size( template.group as <$BzEntryGroup>.ui-entry as <$BzResult>.object as <$BzEntry>.size as , true ) as ; importance: neutral; visible: bind $is_zero(template.group as <$BzEntryGroup>.removable) as ; } $BzLozenge { title: _("Installed Size"); label: bind $format_size( template.group as <$BzEntryGroup>.ui-entry as <$BzResult>.object as <$BzEntry>.installed-size as , true ) as ; importance: neutral; visible: bind $invert_boolean($is_zero(template.group as <$BzEntryGroup>.removable) as ) as ; } } Adw.PreferencesGroup { Adw.ActionRow { [prefix] Label { label: bind $format_size( template.group as <$BzEntryGroup>.ui-entry as <$BzResult>.object as <$BzEntry>.size as , true ) as ; use-markup: true; valign: center; width-request: 90; margin-top: 8; margin-bottom: 8; styles [ "circular-lozenge", "title-4", "grey", ] } title: _("Download Size"); subtitle: _("Amount to download from the internet"); } Adw.ActionRow { [prefix] Label { label: bind $format_size( template .group as <$BzEntryGroup> .ui-entry as <$BzResult> .object as <$BzEntry> .installed-size as , false ) as ; use-markup: true; valign: center; width-request: 90; margin-top: 8; margin-bottom: 8; styles [ "circular-lozenge", "title-4", "grey", ] } title: _("Installed Size"); subtitle: _("Size on Disk"); } Adw.ActionRow runtime_row { visible: bind try { $invert_boolean( $is_null( template .group as <$BzEntryGroup> .ui-entry as <$BzResult> .object as <$BzFlatpakEntry> .runtime as <$BzResult> .object ) as ) as , false }; [prefix] Label { label: bind $format_size( $choose_uint64( template .group as <$BzEntryGroup> .ui-entry as <$BzResult> .object as <$BzFlatpakEntry> .runtime as <$BzResult> .object as <$BzEntry> .installed, template .group as <$BzEntryGroup> .ui-entry as <$BzResult> .object as <$BzFlatpakEntry> .runtime as <$BzResult> .object as <$BzEntry> .installed-size as , template .group as <$BzEntryGroup> .ui-entry as <$BzResult> .object as <$BzFlatpakEntry> .runtime as <$BzResult> .object as <$BzEntry> .size as ) as , false ) as ; use-markup: true; valign: center; width-request: 90; margin-top: 8; margin-bottom: 8; styles [ "circular-lozenge", "title-4", "grey", ] } title: bind $get_runtime_size_title( template .group as <$BzEntryGroup> .ui-entry as <$BzResult> .object as <$BzFlatpakEntry> .runtime as <$BzResult> .object as <$BzEntry> .installed ) as ; subtitle: bind template .group as <$BzEntryGroup> .ui-entry as <$BzResult> .object as <$BzFlatpakEntry> .runtime as <$BzResult> .object as <$BzEntry> .title; } } Adw.PreferencesGroup { visible: bind $invert_boolean( $is_zero(template.group as <$BzEntryGroup>.user-data-size) as ) as ; Adw.ActionRow { [prefix] Label { label: bind $format_size(template.group as <$BzEntryGroup>.user-data-size, false) as ; use-markup: true; valign: center; width-request: 90; margin-top: 8; margin-bottom: 8; styles [ "circular-lozenge", "title-4", "grey", ] } [suffix] Button { tooltip-text: _("Open user data folder"); icon-name: "folder-open-symbolic"; clicked => $open_user_data_folder_cb(); valign: center; styles [ "flat", ] } title: _("Your User Data"); subtitle: _("Caches, settings, and other app data"); } Adw.ActionRow { [prefix] Label { label: bind $format_size(template.group as <$BzEntryGroup>.cache-size, false) as ; use-markup: true; valign: center; width-request: 90; margin-top: 8; margin-bottom: 8; styles [ "circular-lozenge", "title-4", "grey", ] } title: _("Cache"); subtitle: _("Temporary cached data"); } } Adw.PreferencesGroup { margin-top: 4; visible: bind $logical_and( $invert_boolean($is_zero(template.group as <$BzEntryGroup>.user-data-size) as ) as , $invert_boolean($is_app_id(template.group as <$BzEntryGroup>.id) as ) as ) as ; Adw.ButtonRow { title: _("Clear Cache"); activated => $delete_cache_cb(); sensitive: bind $invert_boolean( $is_zero(template.group as <$BzEntryGroup>.cache-size) as ) as ; styles [ "destructive-action", ] } } }; }; }; }; }