summaryrefslogtreecommitdiffstats
path: root/src/gs-shell.ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gs-shell.ui')
-rw-r--r--src/gs-shell.ui521
1 files changed, 521 insertions, 0 deletions
diff --git a/src/gs-shell.ui b/src/gs-shell.ui
new file mode 100644
index 0000000..52e4a43
--- /dev/null
+++ b/src/gs-shell.ui
@@ -0,0 +1,521 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk+" version="3.10"/>
+ <requires lib="handy" version="1.0"/>
+ <menu id="primary_menu">
+ <item>
+ <attribute name="label" translatable="yes">_Software Repositories</attribute>
+ <attribute name="action">app.sources</attribute>
+ <attribute name="hidden-when">action-disabled</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Update Preferences</attribute>
+ <attribute name="action">app.prefs</attribute>
+ </item>
+ </menu>
+
+ <template class="GsShell" parent="AdwApplicationWindow">
+ <property name="visible">False</property>
+ <property name="default-width">1200</property>
+ <property name="default-height">800</property>
+ <property name="title" translatable="yes">Software</property>
+ <property name="icon_name">org.gnome.Software</property>
+ <signal name="map" handler="gs_shell_main_window_mapped_cb"/>
+ <signal name="realize" handler="gs_shell_main_window_realized_cb"/>
+ <signal name="close-request" handler="main_window_closed_cb"/>
+ <child>
+ <object class="GtkEventControllerKey">
+ <property name="propagation-phase">capture</property>
+ <signal name="key-pressed" handler="window_keypress_handler"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEventControllerKey">
+ <signal name="key-pressed" handler="window_key_pressed_cb"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkGestureClick">
+ <!-- Mouse hardware back button -->
+ <property name="button">8</property>
+ <signal name="pressed" handler="window_button_pressed_cb"/>
+ </object>
+ </child>
+ <child>
+ <object class="AdwViewStack" id="stack_loading">
+ <property name="width-request">360</property>
+ <signal name="notify::visible-child" handler="stack_notify_visible_child_cb"/>
+ <child>
+ <object class="AdwViewStackPage">
+ <property name="name">main</property>
+ <property name="child">
+ <object class="GtkOverlay" id="overlay">
+ <property name="halign">fill</property>
+ <property name="valign">fill</property>
+ <property name="vexpand">True</property>
+ <signal name="get-child-position" handler="overlay_get_child_position_cb"/>
+ <child type="overlay">
+ <object class="GtkRevealer" id="notification_event">
+ <property name="halign">GTK_ALIGN_CENTER</property>
+ <property name="valign">GTK_ALIGN_START</property>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">horizontal</property>
+ <property name="spacing">6</property>
+ <style>
+ <class name="app-notification"/>
+ </style>
+ <child>
+ <object class="GtkLabel" id="label_events">
+ <property name="halign">fill</property>
+ <property name="hexpand">True</property>
+ <property name="label">Some Title</property>
+ <property name="wrap">True</property>
+ <property name="wrap_mode">word-char</property>
+ <property name="max_width_chars">60</property>
+ <property name="margin_start">9</property>
+ <property name="margin_end">9</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <child>
+ <object class="GtkButton" id="button_events_sources">
+ <property name="visible">False</property>
+ <property name="label" translatable="yes" comments="button in the info bar">Software Repositories</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">center</property>
+ <signal name="clicked" handler="gs_shell_plugin_events_sources_cb"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button_events_no_space">
+ <property name="visible">False</property>
+ <property name="label" translatable="yes" comments="button in the info bar">Examine Disk</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">center</property>
+ <signal name="clicked" handler="gs_shell_plugin_events_no_space_cb"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button_events_network_settings">
+ <property name="visible">False</property>
+ <property name="label" translatable="yes" comments="button in the info bar">Network Settings</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">center</property>
+ <signal name="clicked" handler="gs_shell_plugin_events_network_settings_cb"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button_events_restart_required">
+ <property name="visible">False</property>
+ <property name="label" translatable="yes" comments="button in the info bar">Restart Now</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">center</property>
+ <signal name="clicked" handler="gs_shell_plugin_events_restart_required_cb"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button_events_more_info">
+ <property name="visible">False</property>
+ <property name="label" translatable="yes" comments="button in the info bar">More Information</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">center</property>
+ <signal name="clicked" handler="gs_shell_plugin_events_more_info_cb"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button_events_dismiss">
+ <property name="halign">end</property>
+ <property name="valign">start</property>
+ <signal name="clicked" handler="gs_shell_plugin_event_dismissed_cb"/>
+ <style>
+ <class name="flat"/>
+ </style>
+ <child>
+ <object class="GtkImage">
+ <property name="icon_name">window-close-symbolic</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwLeaflet" id="details_leaflet">
+ <property name="can-navigate-back">True</property>
+ <property name="can-unfold">False</property>
+ <signal name="notify::visible-child" handler="stack_notify_visible_child_cb"/>
+
+
+ <child>
+ <object class="AdwLeafletPage">
+ <property name="name">main</property>
+ <property name="child">
+ <object class="AdwLeaflet" id="main_leaflet">
+ <property name="can-navigate-back">True</property>
+ <property name="can-unfold">False</property>
+ <signal name="notify::visible-child" handler="stack_notify_visible_child_cb"/>
+
+ <child>
+ <object class="AdwLeafletPage">
+ <property name="name">main</property>
+ <property name="child">
+ <object class="GtkBox" id="main_box">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="AdwHeaderBar" id="main_header">
+ <property name="hexpand">True</property>
+ <property name="show-end-title-buttons">True</property>
+ <property name="centering-policy">strict</property>
+ <child type="start">
+ <object class="GtkToggleButton" id="search_button">
+ <property name="can_focus">True</property>
+ <property name="icon_name">edit-find-symbolic</property>
+ <property name="active" bind-source="search_bar" bind-property="search-mode-enabled" bind-flags="sync-create|bidirectional"/>
+ <accessibility>
+ <property name="label" translatable="yes">Search</property>
+ </accessibility>
+ <style>
+ <class name="image-button"/>
+ </style>
+ </object>
+ </child>
+ <child type="end">
+ <object class="GtkMenuButton" id="menu_button">
+ <property name="can_focus">True</property>
+ <property name="sensitive">True</property>
+ <property name="primary">True</property>
+ <property name="icon_name">open-menu-symbolic</property>
+ <property name="menu_model">primary_menu</property>
+ <accessibility>
+ <property name="label" translatable="yes">Primary Menu</property>
+ </accessibility>
+ <style>
+ <class name="image-button"/>
+ </style>
+ </object>
+ </child>
+ <child type="title">
+ <object class="AdwViewSwitcherTitle" id="title_switcher">
+ <property name="stack">stack_main</property>
+ <property name="title" bind-source="GsShell" bind-property="title" bind-flags="sync-create"/>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkSearchBar" id="search_bar">
+ <property name="key-capture-widget">GsShell</property>
+ <signal name="notify::search-mode-enabled" handler="search_bar_search_mode_enabled_changed_cb"/>
+ <child>
+ <object class="AdwClamp">
+ <property name="hexpand">True</property>
+ <property name="maximum_size">500</property>
+ <property name="tightening_threshold">500</property>
+ <child>
+ <object class="GtkSearchEntry" id="entry_search">
+ <property name="can_focus">True</property>
+ <property name="activates_default">True</property>
+ <signal name="search-changed" handler="search_changed_handler"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkInfoBar" id="metered_updates_bar">
+ <property name="message-type">GTK_MESSAGE_INFO</property>
+ <property name="show-close-button">False</property>
+ <property name="revealed">False</property>
+ <signal name="response" handler="gs_shell_metered_updates_bar_response_cb"/>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_start">6</property>
+ <property name="margin_bottom">6</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Automatic Updates Paused</property>
+ <property name="vexpand">True</property>
+ <property name="xalign">0.0</property>
+ <property name="wrap">True</property>
+ <attributes>
+ <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkBox">
+ <property name="margin_end">6</property>
+ <child>
+ <object class="GtkButton" id="metered_updates_button">
+ <property name="can_focus">True</property>
+ <property name="use_underline">True</property>
+ <property name="label" translatable="yes">Find Out _More</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="GTK_RESPONSE_OK">metered_updates_button</action-widget>
+ </action-widgets>
+ </object>
+ </child>
+ <child>
+ <object class="AdwViewStack" id="stack_main">
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hhomogeneous">False</property>
+ <property name="vhomogeneous">False</property>
+ <signal name="notify::visible-child" handler="stack_notify_visible_child_cb"/>
+ <child>
+ <object class="AdwViewStackPage">
+ <property name="name">overview</property>
+ <property name="title" translatable="yes" comments="Translators: A label for a button to show all available software.">Explore</property>
+ <property name="icon-name">explore-symbolic</property>
+ <property name="child">
+ <object class="GsOverviewPage" id="overview_page">
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwViewStackPage">
+ <property name="name">installed</property>
+ <!-- FIXME: Add mnemonics support when it’s supported in GTK (same for the other pages).
+ See https://gitlab.gnome.org/GNOME/gtk/-/issues/3134 -->
+ <property name="title" translatable="yes" comments="Translators: A label for a button to show only software which is already installed." context="List of installed apps">Installed</property>
+ <property name="icon-name">app-installed-symbolic</property>
+ <property name="child">
+ <object class="GsInstalledPage" id="installed_page">
+ <property name="is-narrow" bind-source="GsShell" bind-property="is-narrow" bind-flags="sync-create"/>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwViewStackPage">
+ <property name="name">search</property>
+ <property name="child">
+ <object class="GsSearchPage" id="search_page">
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwViewStackPage">
+ <property name="name">updates</property>
+ <property name="title" translatable="yes" comments="Translators: A label for a button to show only updates which are available to install." context="Header bar button for list of apps to be updated">Updates</property>
+ <property name="icon-name">emblem-synchronizing-symbolic</property>
+ <property name="badge-number" bind-source="updates_page" bind-property="counter" bind-flags="sync-create"/>
+ <property name="child">
+ <object class="GsUpdatesPage" id="updates_page">
+ <property name="is-narrow" bind-source="GsShell" bind-property="is-narrow" bind-flags="sync-create"/>
+ <signal name="notify::counter" handler="updates_page_notify_counter_cb"/>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwViewSwitcherBar" id="sidebar_switcher">
+ <property name="reveal" bind-source="title_switcher" bind-property="title-visible" bind-flags="sync-create"/>
+ <property name="stack">stack_main</property>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+
+ <child>
+ <object class="AdwLeafletPage">
+ <property name="name">sub</property>
+ <property name="child">
+ <object class="GtkBox" id="sub_box">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="AdwHeaderBar" id="sub_header">
+ <property name="show-end-title-buttons">True</property>
+ <property name="hexpand">True</property>
+ <child>
+ <object class="GtkButton" id="button_back">
+ <property name="can_focus">True</property>
+ <signal name="clicked" handler="gs_shell_back_button_cb"/>
+ <accessibility>
+ <property name="label" translatable="yes">Go back</property>
+ </accessibility>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage" id="back_image">
+ <property name="icon_name">go-previous-symbolic</property>
+ <property name="icon-size">normal</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="title">
+ <object class="GtkLabel" id="sub_page_header_title">
+ <property name="selectable">False</property>
+ <property name="ellipsize">end</property>
+ <style>
+ <class name="title"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="AdwViewStack" id="stack_sub">
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hhomogeneous">False</property>
+ <property name="vhomogeneous">False</property>
+ <signal name="notify::visible-child" handler="stack_notify_visible_child_cb"/>
+ <child>
+ <object class="AdwViewStackPage">
+ <property name="name">moderate</property>
+ <property name="child">
+ <object class="GsModeratePage" id="moderate_page">
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwViewStackPage">
+ <property name="name">category</property>
+ <property name="child">
+ <object class="GsCategoryPage" id="category_page">
+ <signal name="app-clicked" handler="category_page_app_clicked_cb"/>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwViewStackPage">
+ <property name="name">extras</property>
+ <property name="child">
+ <object class="GsExtrasPage" id="extras_page">
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+
+ </object>
+ </property>
+ </object>
+ </child>
+
+ <child>
+ <object class="AdwLeafletPage">
+ <property name="name">details</property>
+ <property name="child">
+ <object class="GtkBox" id="details_box">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="AdwHeaderBar" id="details_header">
+ <property name="hexpand">True</property>
+ <property name="show-end-title-buttons">True</property>
+ <property name="title-widget">
+ <object class="AdwWindowTitle">
+ <property name="title" bind-source="details_page" bind-property="title" bind-flags="sync-create"/>
+ </object>
+ </property>
+ <child>
+ <object class="GtkButton" id="button_back2">
+ <property name="can_focus">True</property>
+ <signal name="clicked" handler="gs_shell_details_back_button_cb"/>
+ <accessibility>
+ <property name="label" translatable="yes">Go back</property>
+ </accessibility>
+ <style>
+ <class name="image-button"/>
+ </style>
+ <child>
+ <object class="GtkImage">
+ <property name="icon_name">go-previous-symbolic</property>
+ <property name="icon-size">normal</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GsDetailsPage" id="details_page">
+ <property name="is-narrow" bind-source="GsShell" bind-property="is-narrow" bind-flags="sync-create"/>
+ <signal name="metainfo-loaded" handler="gs_shell_details_page_metainfo_loaded_cb"/>
+ <signal name="app-clicked" handler="details_page_app_clicked_cb"/>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="AdwViewStackPage">
+ <property name="name">loading</property>
+ <property name="child">
+ <object class="GtkOverlay">
+ <child type="overlay">
+ <object class="GtkHeaderBar">
+ <property name="show_title_buttons">True</property>
+ <property name="valign">start</property>
+ <style>
+ <class name="flat"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkWindowHandle">
+ <child>
+ <object class="GsLoadingPage" id="loading_page">
+ <signal name="refreshed" handler="initial_refresh_done"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </template>
+</interface>