components: Rework adapative layout by removing HdySwipeGroup

HdySwipeGroup is deprecated since libhandy 1.4.

- Split headerbar into 3 components
- Remove HdySwipeGroups/GtkSizeGroups used for syncing headerbar with content.
This commit is contained in:
Cédric Bellegarde 2022-09-14 16:21:16 +02:00
parent fa12e14ab5
commit f45afac091
17 changed files with 403 additions and 498 deletions

View file

@ -36,6 +36,14 @@
<object class="GtkBox" id="folder_box">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
<object class="ComponentsApplicationHeaderBar" id="application_headerbar">
<property name="visible">True</property>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="folder_frame">
<property name="visible">True</property>
@ -54,7 +62,7 @@
</object>
<packing>
<property name="fill">True</property>
<property name="position">0</property>
<property name="position">1</property>
</packing>
</child>
</object>
@ -78,6 +86,14 @@
<object class="GtkBox" id="conversation_list_box">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
<object class="ComponentsConversationListHeaderBar" id="conversation_list_headerbar">
<property name="visible">True</property>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame" id="conversation_frame">
<property name="visible">True</property>
@ -149,6 +165,14 @@
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="ComponentsConversationHeaderBar" id="conversation_headerbar">
<property name="visible">True</property>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRevealer" id="conversation_viewer_actions_revealer">
<property name="visible">True</property>
@ -175,12 +199,15 @@
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">0</property>
<property name="pack_type">start</property>
</packing>
</child>
<child>
<placeholder/>
<object class="ComponentsInfoBarStack" id="info_bars">
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
<style>
<class name="geary-main-layout"/>
@ -196,50 +223,4 @@
<class name="geary-main-window"/>
</style>
</template>
<object class="GtkSizeGroup">
<widgets>
<widget name="inner_leaflet"/>
<widget name="conversation_viewer_box"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="folder_size_group">
<property name="mode">horizontal</property>
<widgets>
<widget name="folder_box"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="folder_separator_size_group">
<property name="mode">horizontal</property>
<widgets>
<widget name="folder_separator"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="conversations_size_group">
<property name="mode">horizontal</property>
<widgets>
<widget name="conversation_list_box"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="conversations_separator_size_group">
<property name="mode">horizontal</property>
<widgets>
<widget name="conversations_separator"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="conversation_size_group">
<property name="mode">horizontal</property>
<widgets>
<widget name="conversation_viewer_box"/>
</widgets>
</object>
<object class="HdySwipeGroup" id="conversations_swipe_group">
<swipeables>
<swipeable name="inner_leaflet"/>
</swipeables>
</object>
<object class="HdySwipeGroup" id="conversation_swipe_group">
<swipeables>
<swipeable name="outer_leaflet"/>
</swipeables>
</object>
</interface>

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<template class="ComponentsApplicationHeaderBar" parent="HdyHeaderBar">
<property name="visible">True</property>
<property name="title">Mail</property>
<child>
<object class="GtkMenuButton" id="app_menu_button">
<property name="visible">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">False</property>
<property name="always_show_image">True</property>
<child>
<object class="GtkImage" id="main_menu_image">
<property name="visible">True</property>
<property name="icon_name">open-menu-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
</template>
</interface>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<template class="ComponentsConversationListHeaderBar" parent="HdyHeaderBar">
<property name="visible">True</property>
<property name="hexpand">True</property>
<child>
<object class="GtkButton" id="back_button">
<property name="receives_default">False</property>
<property name="valign">center</property>
<property name="use-underline">True</property>
<property name="action_name">win.navigation-back</property>
<style>
<class name="image-button"/>
</style>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-conversations-back">
<property name="accessible-name" translatable="yes">Back</property>
</object>
</child>
<child>
<object class="GtkImage" id="conversations_back_image">
<property name="visible">True</property>
<property name="icon_name">go-previous-symbolic</property>
<property name="icon_size">1</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="compose_new_message_button">
<property name="visible">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes" context="tooltip">Compose Message</property>
<property name="action_name">app.compose</property>
<property name="always_show_image">True</property>
<child>
<object class="GtkImage" id="compose_new_message_image">
<property name="visible">True</property>
<property name="icon_name">mail-message-new-symbolic</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkToggleButton" id="search_button">
<property name="visible">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes">Toggle search bar</property>
<property name="always_show_image">True</property>
<child>
<object class="GtkImage" id="search_conversations_image">
<property name="visible">True</property>
<property name="icon_name">preferences-system-search-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">3</property>
</packing>
</child>
</template>
</interface>

View file

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<template class="ComponentsConversationHeaderBar" parent="GtkBin">
<child>
<object class="HdyHeaderBar" id="conversation_header">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="show_close_button">True</property>
<child>
<object class="GtkButton" id="back_button">
<property name="receives_default">False</property>
<property name="valign">center</property>
<property name="use-underline">True</property>
<property name="action_name">win.navigation-back</property>
<style>
<class name="image-button"/>
</style>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-conversation-back">
<property name="accessible-name" translatable="yes">Back</property>
</object>
</child>
<child>
<object class="GtkImage" id="conversation_back_image">
<property name="visible">True</property>
<property name="icon_name">go-previous-symbolic</property>
<property name="icon_size">1</property>
</object>
</child>
</object>
</child>
<child type="title">
<object class="HdySqueezer" id="actions_squeezer">
<property name="visible">True</property>
<property name="hexpand">True</property>
<child>
<object class="ComponentsConversationActions" id="full_actions">
<property name="visible">True</property>
<property name="show_conversation_actions">True</property>
<property name="show_response_actions">True</property>
</object>
</child>
<child>
<object class="ComponentsConversationActions" id="compact_actions">
<property name="visible">True</property>
<property name="show_conversation_actions">False</property>
<property name="show_response_actions">True</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkToggleButton" id="find_button">
<property name="visible">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes">Toggle find bar</property>
<property name="always_show_image">True</property>
<child>
<object class="GtkImage" id="find_image">
<property name="visible">True</property>
<property name="icon_name">preferences-system-search-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
</template>
</interface>

View file

@ -1,235 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<template class="ComponentsMainToolbar" parent="HdyLeaflet">
<property name="visible">True</property>
<property name="can_swipe_back">True</property>
<property name="transition_type">over</property>
<child>
<object class="HdyLeaflet" id="conversations_leaflet">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="can_swipe_back">True</property>
<property name="transition_type">over</property>
<child>
<object class="HdyHeaderBar" id="folder_header">
<property name="visible">True</property>
<property name="show_close_button" bind-source="ComponentsMainToolbar" bind-property="show_close_button" bind-flags="sync-create"/>
<property name="title">Mail</property>
<child>
<object class="GtkMenuButton" id="main_menu_button">
<property name="visible">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">False</property>
<property name="always_show_image">True</property>
<child>
<object class="GtkImage" id="main_menu_image">
<property name="visible">True</property>
<property name="icon_name">open-menu-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">folder</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="folder_separator">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<style>
<class name="sidebar"/>
</style>
</object>
<packing>
<property name="navigatable">False</property>
</packing>
</child>
<child>
<object class="HdyHeaderBar" id="conversations_header">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="show_close_button" bind-source="ComponentsMainToolbar" bind-property="show_close_button" bind-flags="sync-create"/>
<child>
<object class="GtkButton" id="conversations_back">
<property name="receives_default">False</property>
<property name="valign">center</property>
<property name="use-underline">True</property>
<property name="visible" bind-source="conversations_leaflet" bind-property="folded" bind-flags="sync-create"/>
<property name="action_name">win.navigation-back</property>
<style>
<class name="image-button"/>
</style>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-conversations-back">
<property name="accessible-name" translatable="yes">Back</property>
</object>
</child>
<child>
<object class="GtkImage" id="conversations_back_image">
<property name="visible">True</property>
<property name="icon_name">go-previous-symbolic</property>
<property name="icon_size">1</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="compose_new_message_button">
<property name="visible">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes" context="tooltip">Compose Message</property>
<property name="action_name">app.compose</property>
<property name="always_show_image">True</property>
<child>
<object class="GtkImage" id="compose_new_message_image">
<property name="visible">True</property>
<property name="icon_name">mail-message-new-symbolic</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkToggleButton" id="search_button">
<property name="visible">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes">Toggle search bar</property>
<property name="always_show_image">True</property>
<child>
<object class="GtkImage" id="search_conversations_image">
<property name="visible">True</property>
<property name="icon_name">preferences-system-search-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="name">conversations</property>
</packing>
</child>
</object>
<packing>
<property name="name">conversations</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="conversations_separator">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<style>
<class name="sidebar"/>
</style>
</object>
<packing>
<property name="navigatable">False</property>
</packing>
</child>
<child>
<object class="HdyHeaderBar" id="conversation_header">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="show_close_button" bind-source="ComponentsMainToolbar" bind-property="show_close_button" bind-flags="sync-create"/>
<child>
<object class="GtkButton" id="conversation_back">
<property name="receives_default">False</property>
<property name="valign">center</property>
<property name="use-underline">True</property>
<property name="visible" bind-source="ComponentsMainToolbar" bind-property="folded" bind-flags="sync-create"/>
<property name="action_name">win.navigation-back</property>
<style>
<class name="image-button"/>
</style>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-conversation-back">
<property name="accessible-name" translatable="yes">Back</property>
</object>
</child>
<child>
<object class="GtkImage" id="conversation_back_image">
<property name="visible">True</property>
<property name="icon_name">go-previous-symbolic</property>
<property name="icon_size">1</property>
</object>
</child>
</object>
</child>
<child type="title">
<object class="HdySqueezer" id="actions_squeezer">
<property name="visible">True</property>
<property name="hexpand">True</property>
<child>
<object class="ComponentsConversationActions" id="full_actions">
<property name="visible">True</property>
<property name="show_conversation_actions">True</property>
<property name="show_response_actions">True</property>
</object>
</child>
<child>
<object class="ComponentsConversationActions" id="compact_actions">
<property name="visible">True</property>
<property name="show_conversation_actions">False</property>
<property name="show_response_actions">True</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkToggleButton" id="find_button">
<property name="visible">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes">Toggle find bar</property>
<property name="always_show_image">True</property>
<child>
<object class="GtkImage" id="find_image">
<property name="visible">True</property>
<property name="icon_name">preferences-system-search-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="name">conversation</property>
</packing>
</child>
</template>
<object class="GtkSizeGroup">
<widgets>
<widget name="conversations_leaflet"/>
<widget name="conversation_header"/>
</widgets>
</object>
<object class="HdyHeaderGroup" id="conversations_header_group">
<property name="decorate-all" bind-source="conversations_leaflet" bind-property="folded" bind-flags="sync-create"/>
<headerbars>
<headerbar name="folder_header"/>
<headerbar name="conversations_header"/>
</headerbars>
</object>
<object class="HdyHeaderGroup" id="header_group">
<property name="decorate-all" bind-source="ComponentsMainToolbar" bind-property="folded" bind-flags="sync-create"/>
<headerbars>
<headerbar name="conversations_header_group"/>
<headerbar name="conversation_header"/>
</headerbars>
</object>
</interface>

View file

@ -1,28 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<menu id="mark_message_menu">
<item>
<attribute name="label" translatable="yes">Mark as _Read</attribute>
<attribute name="action">win.mark-conversation-read</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Mark as _Unread</attribute>
<attribute name="action">win.mark-conversation-unread</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Star</attribute>
<attribute name="action">win.mark-conversation-starred</attribute>
</item>
<item>
<attribute name="label" translatable="yes">U_nstar</attribute>
<attribute name="action">win.mark-conversation-unstarred</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Toggle as _Junk</attribute>
<attribute name="action">win.toggle-conversation-junk</attribute>
</item>
</menu>
<menu id="main_menu">
<menu id="app_menu">
<section>
<item>
<attribute name="label" translatable="yes">_Accounts</attribute>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<menu id="mark_message_menu">
<item>
<attribute name="label" translatable="yes">Mark as _Read</attribute>
<attribute name="action">win.mark-conversation-read</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Mark as _Unread</attribute>
<attribute name="action">win.mark-conversation-unread</attribute>
</item>
<item>
<attribute name="label" translatable="yes">_Star</attribute>
<attribute name="action">win.mark-conversation-starred</attribute>
</item>
<item>
<attribute name="label" translatable="yes">U_nstar</attribute>
<attribute name="action">win.mark-conversation-unstarred</attribute>
</item>
<item>
<attribute name="label" translatable="yes">Toggle as _Junk</attribute>
<attribute name="action">win.toggle-conversation-junk</attribute>
</item>
</menu>
</interface>

View file

@ -13,14 +13,17 @@
<file compressed="true" preprocess="xml-stripblanks">components-attachment-pane-menus.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-attachment-view.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-conversation-actions.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-headerbar-application.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-headerbar-conversation-list.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-headerbar-conversation.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-in-app-notification.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-info-bar.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-inspector.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-inspector-error-view.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-inspector-log-view.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-inspector-system-view.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-main-toolbar.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-main-toolbar-menus.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-menu-application.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-menu-conversation.ui</file>
<file compressed="true" preprocess="xml-stripblanks">components-placeholder-pane.ui</file>
<file compressed="true" preprocess="xml-stripblanks">composer-editor.ui</file>
<file compressed="true" preprocess="xml-stripblanks">composer-editor-menus.ui</file>