aboutsummaryrefslogtreecommitdiff
path: root/main/data
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2022-02-14 14:55:59 +0100
committerfiaxh <git@lightrise.org>2022-07-27 20:34:20 +0200
commit7e7dcedaf31ee35499875491c9f569c575d28435 (patch)
tree0c5fee2b28baf320775fbc92b3c252e97d9d054f /main/data
parentf25bfb00969a7e09996da2d5500e6718f4cc0148 (diff)
downloaddino-7e7dcedaf31ee35499875491c9f569c575d28435.tar.gz
dino-7e7dcedaf31ee35499875491c9f569c575d28435.zip
Port from GTK3 to GTK4
Diffstat (limited to 'main/data')
-rw-r--r--main/data/add_conversation/add_contact_dialog.ui112
-rw-r--r--main/data/add_conversation/add_groupchat_dialog.ui198
-rw-r--r--main/data/add_conversation/conference_details_fragment.ui301
-rw-r--r--main/data/add_conversation/list_row.ui89
-rw-r--r--main/data/add_conversation/select_jid_fragment.ui80
-rw-r--r--main/data/call_widget.ui11
-rw-r--r--main/data/chat_input.ui57
-rw-r--r--main/data/contact_details_dialog.ui103
-rw-r--r--main/data/conversation_content_view/view.ui175
-rw-r--r--main/data/conversation_item_widget.ui73
-rw-r--r--main/data/conversation_list_titlebar_csd.ui25
-rw-r--r--main/data/conversation_row.ui14
-rw-r--r--main/data/conversation_view.ui105
-rw-r--r--main/data/emojichooser.ui410
-rw-r--r--main/data/file_default_widget.ui191
-rw-r--r--main/data/file_send_overlay.ui56
-rw-r--r--main/data/global_search.ui246
-rw-r--r--main/data/icons/scalable/apps/im.dino.Dino-symbolic.svg (renamed from main/data/icons/im.dino.Dino-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/devices/dino-device-desktop-symbolic.svg (renamed from main/data/icons/dino-device-desktop-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/devices/dino-device-phone-symbolic.svg (renamed from main/data/icons/dino-device-phone-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/devices/dino-phone-hangup-symbolic.svg (renamed from main/data/icons/dino-phone-hangup-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/devices/dino-phone-in-talk-symbolic.svg (renamed from main/data/icons/dino-phone-in-talk-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/devices/dino-phone-missed-symbolic.svg (renamed from main/data/icons/dino-phone-missed-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/devices/dino-phone-ring-symbolic.svg (renamed from main/data/icons/dino-phone-ring-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/devices/dino-phone-symbolic.svg (renamed from main/data/icons/dino-phone-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/emotes/dino-emoticon-symbolic.svg (renamed from main/data/icons/dino-emoticon-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/mimetypes/dino-file-document-symbolic.svg (renamed from main/data/icons/dino-file-document-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/mimetypes/dino-file-download-symbolic.svg (renamed from main/data/icons/dino-file-download-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/mimetypes/dino-file-image-symbolic.svg (renamed from main/data/icons/dino-file-image-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/mimetypes/dino-file-music-symbolic.svg (renamed from main/data/icons/dino-file-music-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/mimetypes/dino-file-symbolic.svg (renamed from main/data/icons/dino-file-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/mimetypes/dino-file-table-symbolic.svg (renamed from main/data/icons/dino-file-table-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/mimetypes/dino-file-video-symbolic.svg (renamed from main/data/icons/dino-file-video-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/status/dino-changes-allowed-symbolic.svg (renamed from main/data/icons/dino-changes-allowed-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/status/dino-changes-prevent-symbolic.svg (renamed from main/data/icons/dino-changes-prevent-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/status/dino-double-tick-symbolic.svg (renamed from main/data/icons/dino-double-tick-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/status/dino-microphone-off-symbolic.svg (renamed from main/data/icons/dino-microphone-off-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/status/dino-microphone-symbolic.svg (renamed from main/data/icons/dino-microphone-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/status/dino-security-high-symbolic.svg (renamed from main/data/icons/dino-security-high-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/status/dino-tick-symbolic.svg (renamed from main/data/icons/dino-tick-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/status/dino-video-off-symbolic.svg (renamed from main/data/icons/dino-video-off-symbolic.svg)0
-rw-r--r--main/data/icons/scalable/status/dino-video-symbolic.svg (renamed from main/data/icons/dino-video-symbolic.svg)0
-rw-r--r--main/data/manage_accounts/account_row.ui14
-rw-r--r--main/data/manage_accounts/add_account_dialog.ui906
-rw-r--r--main/data/manage_accounts/dialog.ui212
-rw-r--r--main/data/menu_encryption.ui33
-rw-r--r--main/data/message_item_widget_edit_mode.ui14
-rw-r--r--main/data/occupant_list.ui17
-rw-r--r--main/data/occupant_list_item.ui64
-rw-r--r--main/data/search_autocomplete.ui5
-rw-r--r--main/data/settings_dialog.ui70
-rw-r--r--main/data/theme.css47
-rw-r--r--main/data/unified_main_content.ui189
-rw-r--r--main/data/unified_window_placeholder.ui22
54 files changed, 1558 insertions, 2281 deletions
diff --git a/main/data/add_conversation/add_contact_dialog.ui b/main/data/add_conversation/add_contact_dialog.ui
index 6185c5ba..1abc9a7a 100644
--- a/main/data/add_conversation/add_contact_dialog.ui
+++ b/main/data/add_conversation/add_contact_dialog.ui
@@ -1,128 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk" version="4.0"/>
<template class="DinoUiAddContactDialog">
+ <property name="title" translatable="1">Add Contact</property>
<property name="valign">center</property>
<property name="modal">True</property>
<child type="titlebar">
<object class="GtkHeaderBar">
- <property name="title" translatable="yes">Add Contact</property>
- <property name="visible">True</property>
+ <property name="show-title-buttons">False</property>
<child>
<object class="GtkButton" id="cancel_button">
- <property name="label" translatable="yes">Cancel</property>
- <property name="sensitive">True</property>
- <property name="visible">True</property>
+ <property name="label" translatable="1">Cancel</property>
</object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
</child>
- <child>
+ <child type="end">
<object class="GtkButton" id="ok_button">
- <property name="has_default">True</property>
- <property name="can_default">True</property>
- <property name="label" translatable="yes">Add</property>
- <property name="sensitive">False</property>
- <property name="visible">True</property>
+ <property name="label" translatable="1">Add</property>
+ <property name="sensitive">0</property>
<style>
<class name="suggested-action"/>
</style>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
</object>
</child>
- <child internal-child="vbox">
+ <child internal-child="content_area">
<object class="GtkBox">
- <property name="visible">True</property>
<child>
<object class="GtkGrid" id="info_grid">
<property name="orientation">vertical</property>
- <property name="margin">20</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="margin-top">20</property>
+ <property name="margin-bottom">20</property>
<property name="row-spacing">7</property>
<property name="column-spacing">10</property>
- <property name="visible">True</property>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">Account</property>
+ <property name="label" translatable="1">Account</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="DinoUiAccountComboBox" id="account_combobox">
<property name="hexpand">True</property>
<property name="width_request">200</property>
<property name="visible">True</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
<property name="label">JID</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="jid_entry">
- <property name="activates_default">True</property>
- <property name="hexpand">True</property>
+ <property name="activates_default">1</property>
+ <property name="hexpand">1</property>
<property name="width_request">200</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">Alias</property>
+ <property name="label" translatable="1">Alias</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="alias_entry">
- <property name="activates_default">True</property>
- <property name="hexpand">True</property>
+ <property name="activates_default">1</property>
+ <property name="hexpand">1</property>
<property name="width_request">200</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
</object>
</child>
@@ -133,4 +107,4 @@
<action-widget response="ok" default="true">ok_button</action-widget>
</action-widgets>
</template>
-</interface>
+</interface> \ No newline at end of file
diff --git a/main/data/add_conversation/add_groupchat_dialog.ui b/main/data/add_conversation/add_groupchat_dialog.ui
index 29638f53..5acd6891 100644
--- a/main/data/add_conversation/add_groupchat_dialog.ui
+++ b/main/data/add_conversation/add_groupchat_dialog.ui
@@ -1,201 +1,165 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk" version="4.0"/>
<template class="DinoUiAddGroupchatDialog">
<property name="valign">center</property>
<property name="modal">True</property>
<child type="titlebar">
<object class="GtkHeaderBar">
- <property name="visible">True</property>
+ <property name="show-title-buttons">False</property>
<child>
<object class="GtkButton" id="cancel_button">
- <property name="label" translatable="yes">Cancel</property>
- <property name="sensitive">True</property>
- <property name="visible">True</property>
+ <property name="label" translatable="1">Cancel</property>
</object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
</child>
- <child>
+ <child type="end">
<object class="GtkButton" id="ok_button">
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="sensitive">False</property>
- <property name="visible">True</property>
+ <property name="sensitive">0</property>
<style>
<class name="suggested-action"/>
</style>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
</object>
</child>
- <child internal-child="vbox">
+ <child internal-child="content_area">
<object class="GtkBox" id="main">
- <property name="visible">True</property>
<child>
<object class="GtkGrid">
<property name="orientation">vertical</property>
- <property name="margin">20</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="margin-top">20</property>
+ <property name="margin-bottom">20</property>
<property name="margin-start">40</property>
<property name="margin-end">40</property>
<property name="row-spacing">7</property>
<property name="column-spacing">10</property>
- <property name="visible">True</property>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">Account</property>
+ <property name="label" translatable="1">Account</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkStack" id="accounts_stack">
- <property name="visible">True</property>
<child>
- <object class="DinoUiAccountComboBox" id="account_combobox">
- <property name="hexpand">True</property>
- <property name="width_request">200</property>
- <property name="visible">True</property>
- </object>
- <packing>
+ <object class="GtkStackPage">
<property name="name">combobox</property>
- </packing>
+ <property name="child">
+ <object class="DinoUiAccountComboBox" id="account_combobox">
+ <property name="hexpand">True</property>
+ <property name="width_request">200</property>
+ <property name="visible">True</property>
+ </object>
+ </property>
+ </object>
</child>
<child>
- <object class="GtkLabel" id="account_label">
- <property name="xalign">0</property>
- <property name="can_focus">True</property>
- <property name="visible">True</property>
- </object>
- <packing>
+ <object class="GtkStackPage">
<property name="name">label</property>
- </packing>
+ <property name="child">
+ <object class="GtkLabel" id="account_label">
+ <property name="xalign">0</property>
+ <property name="focusable">1</property>
+ </object>
+ </property>
+ </object>
</child>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
<property name="label">JID</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="jid_entry">
- <property name="activates_default">True</property>
- <property name="hexpand">True</property>
+ <property name="activates_default">1</property>
+ <property name="hexpand">1</property>
<property name="width_request">200</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">Nick</property>
+ <property name="label" translatable="1">Nick</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="nick_entry">
- <property name="activates_default">True</property>
- <property name="hexpand">True</property>
+ <property name="activates_default">1</property>
+ <property name="hexpand">1</property>
<property name="width_request">200</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">Password</property>
+ <property name="label" translatable="1">Password</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">3</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="password_entry">
- <property name="activates_default">True</property>
- <property name="visibility">False</property>
- <property name="hexpand">True</property>
+ <property name="activates_default">1</property>
+ <property name="visibility">0</property>
+ <property name="hexpand">1</property>
<property name="width_request">200</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">3</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="alias_label">
- <property name="label" translatable="yes">Alias</property>
+ <property name="label" translatable="1">Alias</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">5</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkEntry" id="alias_entry">
- <property name="activates_default">True</property>
- <property name="hexpand">True</property>
+ <property name="activates_default">1</property>
+ <property name="hexpand">1</property>
<property name="width_request">200</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">5</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">5</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
</object>
</child>
@@ -206,4 +170,4 @@
<action-widget response="ok" default="true">ok_button</action-widget>
</action-widgets>
</template>
-</interface>
+</interface> \ No newline at end of file
diff --git a/main/data/add_conversation/conference_details_fragment.ui b/main/data/add_conversation/conference_details_fragment.ui
index a4f6f5d3..0fdf2b8e 100644
--- a/main/data/add_conversation/conference_details_fragment.ui
+++ b/main/data/add_conversation/conference_details_fragment.ui
@@ -1,272 +1,238 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk" version="4.0"/>
<template class="DinoUiConferenceDetailsFragment">
<property name="visible">True</property>
<child>
<object class="GtkOverlay">
- <property name="visible">True</property>
- <child>
+ <property name="child">
<object class="GtkGrid">
<property name="orientation">vertical</property>
- <property name="margin">20</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="margin-top">20</property>
+ <property name="margin-bottom">20</property>
<property name="margin_end">40</property>
<property name="margin_start">40</property>
<property name="row-spacing">7</property>
<property name="column-spacing">10</property>
- <property name="visible">True</property>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">Account</property>
+ <property name="label" translatable="1">Account</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkStack" id="accounts_stack">
- <property name="visible">True</property>
<child>
- <object class="GtkButton" id="accounts_button">
- <property name="relief">none</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="accounts_label">
- <property name="xalign">0</property>
- <property name="visible">True</property>
+ <object class="GtkStackPage">
+ <property name="name">label</property>
+ <property name="child">
+ <object class="GtkButton" id="accounts_button">
+ <property name="has-frame">False</property>
+ <child>
+ <object class="GtkLabel" id="accounts_label">
+ <property name="xalign">0</property>
+ </object>
+ </child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">label</property>
- </packing>
</child>
<child>
- <object class="DinoUiAccountComboBox" id="account_combobox">
- <property name="hexpand">True</property>
- <property name="width_request">200</property>
- <property name="visible">True</property>
- </object>
- <packing>
+ <object class="GtkStackPage">
<property name="name">entry</property>
- </packing>
+ <property name="child">
+ <object class="DinoUiAccountComboBox" id="account_combobox">
+ <property name="hexpand">True</property>
+ <property name="width_request">200</property>
+ <property name="visible">True</property>
+ </object>
+ </property>
+ </object>
</child>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
<property name="label">JID</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkStack" id="jid_stack">
- <property name="visible">True</property>
<child>
- <object class="GtkButton" id="jid_button">
- <property name="relief">none</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="jid_label">
- <property name="xalign">0</property>
- <property name="visible">True</property>
+ <object class="GtkStackPage">
+ <property name="name">label</property>
+ <property name="child">
+ <object class="GtkButton" id="jid_button">
+ <property name="has-frame">False</property>
+ <child>
+ <object class="GtkLabel" id="jid_label">
+ <property name="xalign">0</property>
+ </object>
+ </child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">label</property>
- </packing>
</child>
<child>
- <object class="GtkEntry" id="jid_entry">
- <property name="hexpand">True</property>
- <property name="width_request">200</property>
- <property name="visible">True</property>
- </object>
- <packing>
+ <object class="GtkStackPage">
<property name="name">entry</property>
- </packing>
+ <property name="child">
+ <object class="GtkEntry" id="jid_entry">
+ <property name="hexpand">1</property>
+ <property name="width_request">200</property>
+ </object>
+ </property>
+ </object>
</child>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">Nick</property>
+ <property name="label" translatable="1">Nick</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkStack" id="nick_stack">
- <property name="visible">True</property>
<child>
- <object class="GtkButton" id="nick_button">
- <property name="relief">none</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="nick_label">
- <property name="xalign">0</property>
- <property name="visible">True</property>
+ <object class="GtkStackPage">
+ <property name="name">label</property>
+ <property name="child">
+ <object class="GtkButton" id="nick_button">
+ <property name="has-frame">False</property>
+ <child>
+ <object class="GtkLabel" id="nick_label">
+ <property name="xalign">0</property>
+ </object>
+ </child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">label</property>
- </packing>
</child>
<child>
- <object class="GtkEntry" id="nick_entry">
- <property name="hexpand">True</property>
- <property name="width_request">200</property>
- <property name="visible">True</property>
- </object>
- <packing>
+ <object class="GtkStackPage">
<property name="name">entry</property>
- </packing>
+ <property name="child">
+ <object class="GtkEntry" id="nick_entry">
+ <property name="hexpand">1</property>
+ <property name="width_request">200</property>
+ </object>
+ </property>
+ </object>
</child>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="password_text_label">
- <property name="label" translatable="yes">Password</property>
+ <property name="visible">0</property>
+ <property name="label" translatable="1">Password</property>
<property name="xalign">1</property>
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">3</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkStack" id="password_stack">
+ <property name="visible">0</property>
<child>
- <object class="GtkButton" id="password_button">
- <property name="relief">none</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="password_label">
- <property name="xalign">0</property>
- <property name="visible">True</property>
+ <object class="GtkStackPage">
+ <property name="name">label</property>
+ <property name="child">
+ <object class="GtkButton" id="password_button">
+ <property name="has-frame">False</property>
+ <child>
+ <object class="GtkLabel" id="password_label">
+ <property name="xalign">0</property>
+ </object>
+ </child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">label</property>
- </packing>
</child>
<child>
- <object class="GtkEntry" id="password_entry">
- <property name="hexpand">True</property>
- <property name="width_request">200</property>
- <property name="visibility">False</property>
- <property name="visible">True</property>
- </object>
- <packing>
+ <object class="GtkStackPage">
<property name="name">entry</property>
- </packing>
+ <property name="child">
+ <object class="GtkEntry" id="password_entry">
+ <property name="hexpand">1</property>
+ <property name="width_request">200</property>
+ <property name="visibility">0</property>
+ </object>
+ </property>
+ </object>
</child>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">3</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
</object>
- <packing>
- <property name="index">-1</property>
- </packing>
- </child>
+ </property>
<child type="overlay">
<object class="GtkRevealer" id="notification_revealer">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">start</property>
- <child>
+ <property name="child">
<object class="GtkFrame" id="frame2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+<!-- <property name="shadow_type">none</property>-->
<style>
<class name="app-notification"/>
</style>
- <child>
+ <property name="child">
<object class="GtkBox" id="box2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="spacing">20</property>
<child>
- <object class="GtkLabel" id="notification_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
+ <object class="GtkLabel" id="notification_label"/>
</child>
<child>
<object class="GtkButton" id="notification_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="relief">none</property>
+ <property name="focusable">1</property>
+ <property name="receives_default">1</property>
+ <property name="has-frame">False</property>
<child>
<object class="GtkImage" id="image2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="icon_name">window-close-symbolic</property>
</object>
</child>
@@ -274,19 +240,14 @@
<class name="image-button"/>
</style>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
- </child>
+ </property>
<child type="label_item">
<placeholder/>
</child>
</object>
- </child>
+ </property>
</object>
</child>
</object>
diff --git a/main/data/add_conversation/list_row.ui b/main/data/add_conversation/list_row.ui
index 2eabec11..06b6dc7f 100644
--- a/main/data/add_conversation/list_row.ui
+++ b/main/data/add_conversation/list_row.ui
@@ -1,62 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <template class="DinoUiListRow" parent="GtkListBoxRow">
- <property name="visible">True</property>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkGrid" id="outer_grid">
+ <property name="margin-start">3</property>
+ <property name="margin-end">3</property>
+ <property name="margin-top">3</property>
+ <property name="margin-bottom">3</property>
+ <property name="column-spacing">10</property>
<child>
- <object class="GtkGrid" id="outer_grid">
- <property name="orientation">horizontal</property>
- <property name="margin">3</property>
- <property name="column-spacing">10</property>
- <property name="visible">True</property>
+ <object class="DinoUiAvatarImage" id="image">
+ <property name="allow_gray">False</property>
+ <property name="height">30</property>
+ <property name="width">30</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkGrid">
+ <property name="orientation">vertical</property>
<child>
- <object class="DinoUiAvatarImage" id="image">
- <property name="allow_gray">False</property>
- <property name="height">30</property>
- <property name="width">30</property>
- <property name="valign">center</property>
- <property name="visible">True</property>
+ <object class="GtkLabel" id="name_label">
+ <property name="max_width_chars">1</property>
+ <property name="ellipsize">end</property>
+ <property name="hexpand">1</property>
+ <property name="xalign">0</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
</object>
</child>
<child>
- <object class="GtkGrid">
- <property name="orientation">vertical</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="name_label">
- <property name="max_width_chars">1</property>
- <property name="ellipsize">end</property>
- <property name="expand">True</property>
- <property name="xalign">0</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="via_label">
- <property name="max_width_chars">1</property>
- <property name="ellipsize">end</property>
- <property name="expand">True</property>
- <property name="xalign">0</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="scale" value="0.8"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
+ <object class="GtkLabel" id="via_label">
+ <property name="max_width_chars">1</property>
+ <property name="ellipsize">end</property>
+ <property name="hexpand">1</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.8"></attribute>
+ </attributes>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
</object>
</child>
</object>
</child>
- </template>
+ </object>
</interface>
diff --git a/main/data/add_conversation/select_jid_fragment.ui b/main/data/add_conversation/select_jid_fragment.ui
index 50bc0e36..8ead3207 100644
--- a/main/data/add_conversation/select_jid_fragment.ui
+++ b/main/data/add_conversation/select_jid_fragment.ui
@@ -1,86 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk" version="4.0"/>
<template class="DinoUiSelectJidFragment">
<property name="height_request">500</property>
<property name="width_request">460</property>
<property name="visible">True</property>
<child>
<object class="GtkGrid">
- <property name="expand">True</property>
+ <property name="hexpand">1</property>
<property name="margin-top">20</property>
- <property name="margin-right">80</property>
+ <property name="margin-end">80</property>
<property name="margin-bottom">20</property>
- <property name="margin-left">80</property>
+ <property name="margin-start">80</property>
<property name="orientation">vertical</property>
<property name="row-spacing">10</property>
- <property name="visible">True</property>
<child>
<object class="GtkEntry" id="entry">
- <property name="activates_default">True</property>
- <property name="hexpand">True</property>
- <property name="visible">True</property>
+ <property name="activates_default">1</property>
+ <property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkBox">
- <property name="expand">True</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
<property name="orientation">vertical</property>
- <property name="visible">True</property>
<child>
<object class="GtkFrame">
- <property name="visible">True</property>
- <child>
+ <property name="child">
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hscrollbar_policy">never</property>
- <property name="expand">True</property>
- <property name="visible">True</property>
- <child>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="child">
<object class="GtkBox" id="box">
<property name="orientation">vertical</property>
- <property name="visible">True</property>
</object>
- </child>
+ </property>
</object>
- </child>
+ </property>
</object>
</child>
<child>
- <object class="GtkToolbar">
- <property name="visible">True</property>
+ <object class="GtkBox">
+ <property name="css-classes">toolbar</property>
<style>
+ <class name="toolbar"/>
<class name="inline-toolbar"/>
</style>
<child>
- <object class="GtkToolItem">
- <property name="visible">True</property>
+ <object class="GtkButton" id="add_button">
+ <child>
+ <object class="GtkImage">
+ <property name="icon-name">list-add-symbolic</property>
+ <property name="icon-size">normal</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="remove_button">
+ <property name="sensitive">0</property>
<child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <child>
- <object class="GtkButton" id="add_button">
- <property name="visible">True</property>
- <child>
- <object class="GtkImage">
- <property name="icon-name">list-add-symbolic</property>
- <property name="icon-size">1</property>
- <property name="visible">True</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="remove_button">
- <property name="sensitive">False</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkImage">
- <property name="icon-name">list-remove-symbolic</property>
- <property name="icon-size">1</property>
- <property name="visible">True</property>
- </object>
- </child>
- </object>
- </child>
+ <object class="GtkImage">
+ <property name="icon-name">list-remove-symbolic</property>
+ <property name="icon-size">normal</property>
</object>
</child>
</object>
diff --git a/main/data/call_widget.ui b/main/data/call_widget.ui
index 0c5d8bfa..41df8cfb 100644
--- a/main/data/call_widget.ui
+++ b/main/data/call_widget.ui
@@ -27,7 +27,6 @@
</style>
<child>
<object class="GtkImage" id="image">
- <property name="icon-size">5</property>
<property name="opacity">0.7</property>
<property name="visible">True</property>
</object>
@@ -73,7 +72,10 @@
<property name="halign">end</property>
<property name="orientation">horizontal</property>
<property name="spacing">5</property>
- <property name="margin">10</property>
+ <property name="margin_top">10</property>
+ <property name="margin_bottom">10</property>
+ <property name="margin_start">10</property>
+ <property name="margin_end">10</property>
<property name="hexpand">True</property>
<child>
<object class="GtkButton" id="reject_call_button">
@@ -97,7 +99,10 @@
</child>
<child>
<object class="GtkBox" id="multiparty_peer_box">
- <property name="margin">10</property>
+ <property name="margin_top">10</property>
+ <property name="margin_bottom">10</property>
+ <property name="margin_start">10</property>
+ <property name="margin_end">10</property>
<property name="spacing">7</property>
<property name="hexpand">True</property>
</object>
diff --git a/main/data/chat_input.ui b/main/data/chat_input.ui
index 3ddb29b9..9abd7eeb 100644
--- a/main/data/chat_input.ui
+++ b/main/data/chat_input.ui
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <requires lib="gtk+" version="3.22"/>
+ <requires lib="gtk" version="4.0"/>
<template class="DinoUiChatInputView">
<property name="hexpand">True</property>
<property name="orientation">vertical</property>
@@ -12,46 +12,60 @@
<object class="GtkFrame" id="frame">
<property name="margin_start">14</property>
<property name="margin_end">14</property>
- <property name="visible">True</property>
- <child>
+ <property name="child">
<object class="GtkBox" id="outer_box">
- <property name="orientation">horizontal</property>
- <property name="visible">True</property>
<child>
<object class="GtkButton" id="file_button">
- <property name="tooltip-text" translatable="yes">Send a file</property>
- <property name="can-focus">False</property>
- <property name="margin-top">3</property>
- <property name="relief">none</property>
+ <property name="icon-name">mail-attachment-symbolic</property>
+ <property name="tooltip-text" translatable="1">Send a file</property>
+ <property name="margin-top">2</property>
<property name="valign">start</property>
- <property name="visible">True</property>
<style>
<class name="flat"/>
<class name="dino-chatinput-button"/>
+ <class name="dino-attach-button"/>
<class name="image-button"/>
</style>
- <child>
- <object class="GtkImage">
- <property name="icon-name">mail-attachment-symbolic</property>
- <property name="icon-size">1</property>
- <property name="visible">True</property>
- </object>
- </child>
</object>
</child>
<child>
<object class="GtkSeparator" id="file_separator">
<property name="orientation">vertical</property>
- <property name="visible">True</property>
</object>
</child>
<child>
<object class="DinoUiChatTextView" id="chat_text_view">
- <property name="visible">True</property>
+ <property name="margin_start">7</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="emoji_button">
+ <property name="icon-name">dino-emoticon-symbolic</property>
+ <property name="has-frame">False</property>
+ <property name="margin-top">2</property>
+ <property name="valign">start</property>
+ <style>
+ <class name="flat"/>
+ <class name="dino-chatinput-button"/>
+ <class name="image-button"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="encryption_button">
+ <property name="icon-name">changes-allow-symbolic</property>
+ <property name="has-frame">False</property>
+ <property name="margin-top">2</property>
+ <property name="valign">start</property>
+ <style>
+ <class name="flat"/>
+ <class name="dino-chatinput-button"/>
+ <class name="image-button"/>
+ </style>
</object>
</child>
</object>
- </child>
+ </property>
</object>
</child>
<child>
@@ -60,9 +74,8 @@
<property name="margin_bottom">3</property>
<property name="margin_start">14</property>
<property name="margin_end">14</property>
- <property name="visible">True</property>
<attributes>
- <attribute name="scale" value="0.8"/>
+ <attribute name="scale" value="0.8"></attribute>
</attributes>
<style>
<class name="chat-input-status"/>
diff --git a/main/data/contact_details_dialog.ui b/main/data/contact_details_dialog.ui
index 4058bc77..322cd2df 100644
--- a/main/data/contact_details_dialog.ui
+++ b/main/data/contact_details_dialog.ui
@@ -1,122 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk" version="4.0"/>
<template class="DinoUiContactDetailsDialog">
+ <property name="title">Conversation Details</property>
<property name="modal">True</property>
<child type="titlebar">
<object class="GtkHeaderBar">
- <property name="title">Conversation Details</property>
- <property name="show_close_button">True</property>
- <property name="visible">True</property>
</object>
</child>
- <child internal-child="vbox">
+ <child internal-child="content_area">
<object class="GtkBox">
- <property name="expand">True</property>
- <property name="visible">True</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
<child>
<object class="GtkScrolledWindow">
- <property name="propagate_natural_height">True</property>
+ <property name="propagate_natural_height">1</property>
<property name="max_content_height">500</property>
<property name="hscrollbar_policy">never</property>
- <property name="expand">True</property>
- <property name="visible">True</property>
- <child>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
- <property name="visible">True</property>
<child>
<object class="GtkGrid">
<property name="margin-top">20</property>
<property name="margin-bottom">12</property>
- <property name="margin-right">100</property>
- <property name="margin-left">100</property>
+ <property name="margin-end">100</property>
+ <property name="margin-start">100</property>
<property name="column-spacing">10</property>
- <property name="visible">True</property>
<child>
<object class="DinoUiAvatarImage" id="avatar">
<property name="height">50</property>
<property name="width">50</property>
<property name="visible">True</property>
<property name="allow_gray">False</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ <property name="row-span">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">2</property>
- </packing>
</child>
<child>
<object class="DinoUiUtilEntryLabelHybrid" id="name_hybrid">
<property name="xalign">0</property>
- <property name="expand">True</property>
+ <property name="hexpand">True</property>
<property name="visible">True</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="name_label">
<property name="xalign">0</property>
- <property name="expand">True</property>
- <property name="visible">True</property>
+ <property name="hexpand">1</property>
<attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+ <attribute name="weight" value="PANGO_WEIGHT_BOLD"></attribute>
</attributes>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="jid_label">
<property name="xalign">0</property>
<property name="yalign">0</property>
- <property name="selectable">True</property>
- <property name="expand">True</property>
- <property name="visible">True</property>
+ <property name="selectable">1</property>
+ <property name="hexpand">1</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="account_label">
<property name="xalign">1</property>
<property name="yalign">1</property>
- <property name="margin">5</property>
- <property name="expand">True</property>
- <property name="visible">True</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="hexpand">1</property>
+ <layout>
+ <property name="column">2</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="main_box">
<property name="orientation">vertical</property>
- <property name="margin-right">100</property>
- <property name="margin-left">100</property>
- <property name="visible">True</property>
+ <property name="margin-end">100</property>
+ <property name="margin-start">100</property>
</object>
</child>
</object>
- </child>
+ </property>
</object>
</child>
</object>
diff --git a/main/data/conversation_content_view/view.ui b/main/data/conversation_content_view/view.ui
index 17f753f5..638129ec 100644
--- a/main/data/conversation_content_view/view.ui
+++ b/main/data/conversation_content_view/view.ui
@@ -1,117 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk" version="4.0"/>
<template class="DinoUiConversationSummaryConversationView">
- <property name="expand">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
- <property name="visible">True</property>
<child>
<object class="GtkStack" id="stack">
<property name="transition_type">crossfade</property>
- <property name="visible">True</property>
<child>
- <object class="GtkOverlay">
- <property name="visible">True</property>
- <child>
- <object class="GtkScrolledWindow" id="scrolled">
- <property name="hscrollbar_policy">never</property>
- <property name="expand">True</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkEventBox" id="main_wrap_event_box">
- <property name="valign">end</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkOverlay">
- <property name="visible">True</property>
- <child>
- <object class="GtkEventBox" id="main_event_box">
- <property name="visible">True</property>
- <child>
- <object class="DinoUiSizeRequestBox" id="main">
- <property name="margin-bottom">15</property>
- <property name="expand">False</property>
- <property name="orientation">vertical</property>
- <property name="visible">True</property>
- <property name="size-request-mode">height-for-width</property>
- </object>
- </child>
- </object>
- </child>
- <child type="overlay">
- <object class="GtkBox" id="message_menu_box">
- <property name="margin-right">10</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="valign">start</property>
- <child>
- <object class="GtkButton" id="button1">
- <property name="vexpand">False</property>
- <property name="halign">end</property>
- <property name="valign">end</property>
- <child>
- <object class="GtkImage" id="button1_icon">
- <property name="icon-size">1</property>
- <property name="visible">True</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
+ <object class="GtkStackPage">
+ <property name="name">main</property>
+ <property name="child">
+ <object class="GtkOverlay">
+ <property name="child">
+ <object class="GtkScrolledWindow" id="scrolled">
+ <property name="hscrollbar_policy">never</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="child">
+ <object class="GtkBox" id="main_wrap_box">
+ <property name="valign">end</property>
+ <child>
+ <object class="GtkOverlay">
+ <child>
+ <object class="GtkBox" id="main_event_box">
+ <property name="visible">True</property>
+ <child>
+ <object class="DinoUiSizeRequestBox" id="main">
+ <property name="margin-bottom">15</property>
+ <property name="orientation">vertical</property>
+ <property name="visible">True</property>
+ <property name="size-request-mode">height-for-width</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="overlay">
+ <object class="GtkBox" id="message_menu_box">
+ <property name="margin-end">10</property>
+ <property name="halign">end</property>
+ <property name="valign">start</property>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="visible">0</property>
+ <property name="vexpand">0</property>
+ <property name="halign">end</property>
+ <property name="valign">end</property>
+ <child>
+ <object class="GtkImage" id="button1_icon">
+ <property name="icon-size">normal</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
- </child>
+ </property>
</object>
- </child>
- </object>
- <packing>
- <property name="index">-1</property>
- </packing>
- </child>
- <child type="overlay">
- <object class="GtkRevealer" id="notification_revealer">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="valign">start</property>
- <child>
- <object class="GtkFrame" id="frame2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <style>
- <class name="app-notification"/>
- </style>
- <child>
- <object class="GtkBox" id="notifications">
- <property name="expand">False</property>
- <property name="orientation">vertical</property>
- <property name="visible">True</property>
+ </property>
+ <child type="overlay">
+ <object class="GtkRevealer" id="notification_revealer">
+ <property name="halign">center</property>
+ <property name="valign">start</property>
+ <property name="child">
+ <object class="GtkFrame" id="frame2">
+ <style>
+ <class name="app-notification"/>
+ </style>
+ <property name="child">
+ <object class="GtkBox" id="notifications">
+ <property name="hexpand">0</property>
+ <property name="vexpand">0</property>
+ <property name="orientation">vertical</property>
+ </object>
+ </property>
+ <child type="label_item">
+ <placeholder/>
+ </child>
</object>
- </child>
- <child type="label_item">
- <placeholder/>
- </child>
+ </property>
</object>
</child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">main</property>
- </packing>
</child>
<child>
- <object class="GtkBox">
- <property name="visible">True</property>
- </object>
- <packing>
+ <object class="GtkStackPage">
<property name="name">void</property>
- </packing>
+ <property name="child">
+ <object class="GtkBox"/>
+ </property>
+ </object>
</child>
</object>
</child>
</template>
-</interface>
+</interface> \ No newline at end of file
diff --git a/main/data/conversation_item_widget.ui b/main/data/conversation_item_widget.ui
new file mode 100644
index 00000000..e796006e
--- /dev/null
+++ b/main/data/conversation_item_widget.ui
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkGrid" id="main_grid">
+ <property name="column-spacing">7</property>
+ <property name="row-spacing">2</property>
+ <child>
+ <object class="DinoUiAvatarImage" id="avatar_image">
+ <property name="height">35</property>
+ <property name="width">35</property>
+ <property name="valign">start</property>
+ <property name="margin-top">2</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ <property name="row-span">2</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="name_label">
+ <property name="ellipsize">end</property>
+ <property name="xalign">0</property>
+ <property name="valign">baseline</property>
+ <attributes>
+ <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+ </attributes>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="time_label">
+ <property name="xalign">0</property>
+ <property name="valign">baseline</property>
+ <attributes>
+ <attribute name="scale" value="0.8"/>
+ </attributes>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <layout>
+ <property name="column">2</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImage" id="encrypted_image">
+ <property name="opacity">0.4</property>
+ <property name="pixel-size">14</property>
+ <layout>
+ <property name="column">3</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkImage" id="marked_image">
+ <property name="opacity">0.4</property>
+ <property name="pixel-size">14</property>
+ <property name="halign">start</property>
+ <property name="hexpand">True</property>
+ <layout>
+ <property name="column">4</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ </object>
+</interface> \ No newline at end of file
diff --git a/main/data/conversation_list_titlebar_csd.ui b/main/data/conversation_list_titlebar_csd.ui
index 073f0a05..c99c302a 100644
--- a/main/data/conversation_list_titlebar_csd.ui
+++ b/main/data/conversation_list_titlebar_csd.ui
@@ -1,42 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <template class="DinoUiConversationListTitlebarCsd" parent="GtkHeaderBar">
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkHeaderBar" id="header_bar">
<property name="hexpand">False</property>
- <property name="show_close_button">True</property>
- <property name="visible">True</property>
<style>
<class name="dino-left"/>
</style>
<child>
<object class="GtkMenuButton" id="add_button">
- <property name="tooltip_text" translatable="yes">Start Conversation</property>
- <property name="visible">True</property>
+ <property name="tooltip_text" translatable="True">Start Conversation</property>
<child>
<object class="GtkImage">
- <property name="visible">True</property>
<property name="icon-name">list-add-symbolic</property>
- <property name="icon-size">1</property>
+ <property name="icon-size">normal</property>
</object>
</child>
</object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
</child>
- <child>
+ <child type="end">
<object class="GtkMenuButton" id="menu_button">
- <property name="visible">True</property>
<child>
<object class="GtkImage">
- <property name="visible">True</property>
<property name="icon-name">open-menu-symbolic</property>
- <property name="icon-size">1</property>
+ <property name="icon-size">normal</property>
</object>
</child>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
- </template>
+ </object>
</interface>
diff --git a/main/data/conversation_row.ui b/main/data/conversation_row.ui
index ff08eac2..c164a7b5 100644
--- a/main/data/conversation_row.ui
+++ b/main/data/conversation_row.ui
@@ -6,12 +6,13 @@
<object class="GtkRevealer" id="main_revealer">
<property name="transition-type">slide-down</property>
<property name="transition-duration">200</property>
- <property name="reveal-child">False</property>
+ <property name="reveal-child">True</property>
<property name="visible">True</property>
<child>
<object class="GtkBox">
<property name="orientation">horizontal</property>
- <property name="margin">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
<property name="margin-start">7</property>
<property name="margin-end">14</property>
<property name="visible">True</property>
@@ -25,7 +26,7 @@
</child>
<child>
<object class="GtkBox">
- <property name="margin-left">10</property>
+ <property name="margin-start">10</property>
<property name="orientation">vertical</property>
<property name="visible">True</property>
<child>
@@ -37,8 +38,8 @@
<object class="GtkLabel" id="name_label">
<property name="max_width_chars">1</property>
<property name="ellipsize">end</property>
- <property name="expand">True</property>
- <property name="margin-right">7</property>
+ <property name="hexpand">True</property>
+ <property name="margin-end">7</property>
<property name="xalign">0</property>
<property name="visible">True</property>
</object>
@@ -86,7 +87,8 @@
<object class="GtkLabel" id="message_label">
<property name="max_width_chars">1</property>
<property name="ellipsize">end</property>
- <property name="expand">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<property name="valign">end</property>
<property name="xalign">0</property>
<attributes>
diff --git a/main/data/conversation_view.ui b/main/data/conversation_view.ui
index c968f992..9515a7bd 100644
--- a/main/data/conversation_view.ui
+++ b/main/data/conversation_view.ui
@@ -1,75 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <template class="DinoUiConversationView" parent="GtkOverlay">
+ <template class="DinoUiConversationView">
<property name="visible">True</property>
<child>
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <property name="visible">True</property>
- <style>
- <class name="dino-conversation"/>
- </style>
+ <object class="GtkOverlay" id="overlay">
<child>
- <object class="GtkOverlay">
- <property name="visible">True</property>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <style>
+ <class name="dino-conversation"/>
+ </style>
<child>
- <object class="DinoUiConversationSummaryConversationView" id="conversation_frame">
- <property name="visible">True</property>
- </object>
- </child>
- <child type="overlay">
- <object class="GtkRevealer" id="goto_end_revealer">
- <property name="halign">end</property>
- <property name="valign">end</property>
- <property name="transition-type">crossfade</property>
- <property name="visible">True</property>
- <property name="margin-end">30</property>
- <property name="margin-bottom">30</property>
+ <object class="GtkOverlay" id="conversation_overlay">
+ <property name="vexpand">True</property>
<child>
- <object class="GtkButton" id="goto_end_button">
- <property name="width-request">30</property>
- <property name="height-request">30</property>
- <property name="vexpand">False</property>
+ <object class="DinoUiConversationSummaryConversationView" id="conversation_frame">
+ </object>
+ </child>
+ <child type="overlay">
+ <object class="GtkRevealer" id="goto_end_revealer">
<property name="halign">end</property>
<property name="valign">end</property>
+ <property name="transition-type">crossfade</property>
<property name="visible">True</property>
- <style>
- <class name="circular-button"/>
- </style>
+ <property name="margin-end">30</property>
+ <property name="margin-bottom">30</property>
<child>
- <object class="GtkImage">
- <property name="icon-name">go-down-symbolic</property>
- <property name="icon-size">1</property>
+ <object class="GtkButton" id="goto_end_button">
+ <property name="width-request">30</property>
+ <property name="height-request">30</property>
+ <property name="vexpand">False</property>
+ <property name="halign">end</property>
+ <property name="valign">end</property>
<property name="visible">True</property>
+ <style>
+ <class name="circular-button"/>
+ </style>
+ <child>
+ <object class="GtkImage">
+ <property name="icon-name">go-down-symbolic</property>
+ <property name="icon-size">1</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
</object>
</child>
</object>
</child>
</object>
-
+ </child>
+ <child>
+ <object class="DinoUiChatInputView" id="chat_input">
+ <property name="visible">True</property>
+ </object>
</child>
</object>
</child>
- <child>
- <object class="DinoUiChatInputView" id="chat_input">
- <property name="visible">True</property>
- </object>
- </child>
- </object>
- </child>
- <child type="overlay">
- <object class="GtkRevealer" id="white_revealer">
- <property name="transition-type">crossfade</property>
- <property name="transition-duration">200</property>
- <property name="reveal-child">False</property>
- <property name="visible">False</property>
- <child>
- <object class="GtkBox">
- <property name="opacity">0.7</property>
- <property name="visible">true</property>
- <style>
- <class name="dino-white-overlay"/>
- </style>
+ <child type="overlay">
+ <object class="GtkRevealer" id="white_revealer">
+ <property name="transition-type">crossfade</property>
+ <property name="transition-duration">200</property>
+ <property name="reveal-child">False</property>
+ <property name="visible">False</property>
+ <child>
+ <object class="GtkBox">
+ <property name="opacity">0.7</property>
+ <property name="visible">true</property>
+ <style>
+ <class name="dino-white-overlay"/>
+ </style>
+ </object>
+ </child>
</object>
</child>
</object>
diff --git a/main/data/emojichooser.ui b/main/data/emojichooser.ui
deleted file mode 100644
index d47a2c22..00000000
--- a/main/data/emojichooser.ui
+++ /dev/null
@@ -1,410 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interface domain="gtk30">
- <template class="DinoEmojiChooser" parent="GtkPopover">
- <property name="modal">1</property>
- <style>
- <class name="emoji-picker"/>
- </style>
- <child>
- <object class="GtkBox" id="box">
- <property name="orientation">vertical</property>
- <property name="visible">1</property>
- <child>
- <object class="GtkSearchEntry" id="search_entry">
- <property name="visible">1</property>
- <property name="input-hints">no-emoji</property>
- <signal name="search-changed" handler="search_changed"/>
- </object>
- </child>
- <child>
- <object class="GtkStack" id="stack">
- <property name="visible">1</property>
- <child>
- <object class="GtkBox">
- <property name="visible">1</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkScrolledWindow" id="scrolled_window">
- <property name="visible">1</property>
- <property name="vexpand">1</property>
- <property name="hscrollbar-policy">never</property>
- <property name="min-content-height">250</property>
- <style>
- <class name="view"/>
- </style>
- <child>
- <object class="GtkBox" id="emoji_box">
- <property name="visible">1</property>
- <property name="orientation">vertical</property>
- <property name="margin">6</property>
- <property name="spacing">6</property>
- <!-- Remember to keep headings here in sync with button tooltips below -->
- <child>
- <object class="GtkFlowBox" id="recent.box">
- <property name="visible">1</property>
- <property name="homogeneous">1</property>
- <property name="selection-mode">none</property>
- <signal name="child-activated" handler="emoji_activated"/>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="people.heading">
- <property name="visible">1</property>
- <property name="label" translatable="yes">Smileys &amp; People</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkFlowBox" id="people.box">
- <property name="visible">1</property>
- <property name="homogeneous">1</property>
- <property name="selection-mode">none</property>
- <signal name="child-activated" handler="emoji_activated"/>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="body.heading">
- <property name="visible">1</property>
- <property name="label" translatable="yes">Body &amp; Clothing</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkFlowBox" id="body.box">
- <property name="visible">1</property>
- <property name="homogeneous">1</property>
- <property name="selection-mode">none</property>
- <signal name="child-activated" handler="emoji_activated"/>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="nature.heading">
- <property name="visible">1</property>
- <property name="label" translatable="yes">Animals &amp; Nature</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkFlowBox" id="nature.box">
- <property name="visible">1</property>
- <property name="homogeneous">1</property>
- <property name="selection-mode">none</property>
- <signal name="child-activated" handler="emoji_activated"/>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="food.heading">
- <property name="visible">1</property>
- <property name="label" translatable="yes">Food &amp; Drink</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkFlowBox" id="food.box">
- <property name="visible">1</property>
- <property name="homogeneous">1</property>
- <property name="selection-mode">none</property>
- <signal name="child-activated" handler="emoji_activated"/>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="travel.heading">
- <property name="visible">1</property>
- <property name="label" translatable="yes">Travel &amp; Places</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkFlowBox" id="travel.box">
- <property name="visible">1</property>
- <property name="homogeneous">1</property>
- <property name="selection-mode">none</property>
- <signal name="child-activated" handler="emoji_activated"/>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="activities.heading">
- <property name="visible">1</property>
- <property name="label" translatable="yes">Activities</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkFlowBox" id="activities.box">
- <property name="visible">1</property>
- <property name="homogeneous">1</property>
- <property name="selection-mode">none</property>
- <signal name="child-activated" handler="emoji_activated"/>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="objects.heading">
- <property name="visible">1</property>
- <property name="label" translatable="yes" context="emoji category">Objects</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkFlowBox" id="objects.box">
- <property name="visible">1</property>
- <property name="homogeneous">1</property>
- <property name="selection-mode">none</property>
- <signal name="child-activated" handler="emoji_activated"/>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="symbols.heading">
- <property name="visible">1</property>
- <property name="label" translatable="yes">Symbols</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkFlowBox" id="symbols.box">
- <property name="visible">1</property>
- <property name="homogeneous">1</property>
- <property name="selection-mode">none</property>
- <signal name="child-activated" handler="emoji_activated"/>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="flags.heading">
- <property name="visible">1</property>
- <property name="label" translatable="yes">Flags</property>
- <property name="xalign">0</property>
- </object>
- </child>
- <child>
- <object class="GtkFlowBox" id="flags.box">
- <property name="visible">1</property>
- <property name="homogeneous">1</property>
- <property name="selection-mode">none</property>
- <signal name="child-activated" handler="emoji_activated"/>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="visible">1</property>
- <!-- Remember to keep tooltips here in sync with section headings above -->
- <child>
- <object class="GtkButton" id="recent.button">
- <property name="visible">1</property>
- <property name="relief">none</property>
- <property name="tooltip-text" translatable="yes">Recent</property>
- <style>
- <class name="emoji-section"/>
- </style>
- <child>
- <object class="GtkImage" id="recent.icon">
- <property name="visible">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="people.button">
- <property name="visible">1</property>
- <property name="relief">none</property>
- <property name="tooltip-text" translatable="yes">Smileys &amp; People</property>
- <style>
- <class name="emoji-section"/>
- </style>
- <child>
- <object class="GtkImage" id="people.icon">
- <property name="visible">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="body.button">
- <property name="visible">1</property>
- <property name="relief">none</property>
- <property name="tooltip-text" translatable="yes">Body &amp; Clothing</property>
- <style>
- <class name="emoji-section"/>
- </style>
- <child>
- <object class="GtkImage" id="body.icon">
- <property name="visible">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="nature.button">
- <property name="visible">1</property>
- <property name="relief">none</property>
- <property name="tooltip-text" translatable="yes">Animals &amp; Nature</property>
- <style>
- <class name="emoji-section"/>
- </style>
- <child>
- <object class="GtkImage" id="nature.icon">
- <property name="visible">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="food.button">
- <property name="visible">1</property>
- <property name="relief">none</property>
- <property name="tooltip-text" translatable="yes">Food &amp; Drink</property>
- <style>
- <class name="emoji-section"/>
- </style>
- <child>
- <object class="GtkImage" id="food.icon">
- <property name="visible">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="travel.button">
- <property name="visible">1</property>
- <property name="relief">none</property>
- <property name="tooltip-text" translatable="yes">Travel &amp; Places</property>
- <style>
- <class name="emoji-section"/>
- </style>
- <child>
- <object class="GtkImage" id="travel.icon">
- <property name="visible">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="activities.button">
- <property name="visible">1</property>
- <property name="relief">none</property>
- <property name="tooltip-text" translatable="yes">Activities</property>
- <style>
- <class name="emoji-section"/>
- </style>
- <child>
- <object class="GtkImage" id="activities.icon">
- <property name="visible">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="objects.button">
- <property name="visible">1</property>
- <property name="relief">none</property>
- <property name="tooltip-text" translatable="yes" context="emoji category">Objects</property>
- <style>
- <class name="emoji-section"/>
- </style>
- <child>
- <object class="GtkImage" id="objects.icon">
- <property name="visible">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="symbols.button">
- <property name="visible">1</property>
- <property name="relief">none</property>
- <property name="tooltip-text" translatable="yes">Symbols</property>
- <style>
- <class name="emoji-section"/>
- </style>
- <child>
- <object class="GtkImage" id="symbols.icon">
- <property name="visible">1</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="flags.button">
- <property name="visible">1</property>
- <property name="relief">none</property>
- <property name="tooltip-text" translatable="yes">Flags</property>
- <style>
- <class name="emoji-section"/>
- </style>
- <child>
- <object class="GtkImage" id="flags.icon">
- <property name="visible">1</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="name">list</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid">
- <property name="visible">1</property>
- <property name="row-spacing">12</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <style>
- <class name="dim-label"/>
- </style>
- <child>
- <object class="GtkImage">
- <property name="visible">1</property>
- <property name="icon-name">edit-find-symbolic</property>
- <property name="pixel-size">72</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">1</property>
- <property name="label" translatable="yes">No Results Found</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- <attribute name="scale" value="1.44"/>
- </attributes>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">1</property>
- <property name="label" translatable="yes">Try a different search</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="name">empty</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- </template>
-</interface>
diff --git a/main/data/file_default_widget.ui b/main/data/file_default_widget.ui
index 6315e230..77ddebd1 100644
--- a/main/data/file_default_widget.ui
+++ b/main/data/file_default_widget.ui
@@ -1,110 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <template class="DinoUiFileDefaultWidget" parent="GtkEventBox">
- <property name="halign">start</property>
- <style>
- <class name="file-box-outer"/>
- </style>
+ <requires lib="gtk" version="4.0"/>
+ <template class="DinoUiFileDefaultWidget">
+ <property name="halign">start</property>
+ <style>
+ <class name="file-box-outer"/>
+ </style>
+ <child>
+ <object class="DinoUiSizingBin">
+ <property name="target-width">500</property>
+ <property name="max-width">500</property>
+ <property name="hexpand">True</property>
<child>
- <object class="DinoUiSizingBin">
- <property name="target-width">500</property>
- <property name="max-width">500</property>
- <property name="hexpand">True</property>
- <property name="visible">True</property>
+ <object class="GtkBox">
+ <property name="hexpand">1</property>
+ <property name="spacing">10</property>
+ <style>
+ <class name="file-box"/>
+ </style>
+ <child>
+ <object class="GtkStack" id="image_stack">
+ <property name="transition-type">crossfade</property>
+ <property name="transition-duration">50</property>
+ <property name="valign">center</property>
<child>
- <object class="GtkBox">
- <property name="orientation">horizontal</property>
- <property name="halign">fill</property>
- <property name="hexpand">true</property>
- <property name="spacing">10</property>
- <property name="visible">True</property>
- <style>
- <class name="file-box"/>
- </style>
- <child>
- <object class="GtkEventBox" id="stack_event_box">
- <property name="visible">True</property>
- <child>
- <object class="GtkStack" id="image_stack">
- <property name="transition-type">crossfade</property>
- <property name="transition-duration">50</property>
- <property name="valign">center</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkImage">
- <property name="icon-name">dino-file-download-symbolic</property>
- <property name="icon-size">5</property>
- <property name="opacity">0.7</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="name">download_image</property>
- </packing>
- </child>
- <child>
- <object class="GtkImage" id="content_type_image">
- <property name="icon-size">5</property>
- <property name="opacity">0.7</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="name">content_type_image</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinner" id="spinner">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="name">spinner</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <property name="hexpand">True</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="name_label">
- <property name="ellipsize">middle</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="mime_label">
- <property name="xalign">0</property>
- <property name="yalign">1</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="scale" value="0.8"/>
- </attributes>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkMenuButton" id="file_menu">
- <property name="visible">True</property>
- <property name="opacity">0</property>
- <property name="relief">none</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="icon-name">open-menu-symbolic</property>
- <property name="icon-size">1</property>
- </object>
- </child>
- </object>
- </child>
- </object>
+ <object class="GtkStackPage">
+ <property name="name">download_image</property>
+ <property name="child">
+ <object class="GtkImage">
+ <property name="icon-name">dino-file-download-symbolic</property>
+ <property name="pixel-size">30</property>
+ <property name="opacity">0.7</property>
+ </object>
+ </property>
+ </object>
</child>
- </object>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">content_type_image</property>
+ <property name="child">
+ <object class="GtkImage" id="content_type_image">
+ <property name="pixel-size">30</property>
+ <property name="opacity">0.7</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">spinner</property>
+ <property name="child">
+ <object class="GtkSpinner" id="spinner"/>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="hexpand">1</property>
+ <child>
+ <object class="GtkLabel" id="name_label">
+ <property name="ellipsize">middle</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="mime_label">
+ <property name="xalign">0</property>
+ <property name="yalign">1</property>
+ <attributes>
+ <attribute name="scale" value="0.8"></attribute>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="file_menu">
+ <property name="icon-name">open-menu-symbolic</property>
+ <property name="opacity">0</property>
+ <property name="has_frame">False</property>
+ </object>
+ </child>
+ </object>
</child>
- </template>
-</interface>
+ </object>
+ </child>
+ </template>
+</interface> \ No newline at end of file
diff --git a/main/data/file_send_overlay.ui b/main/data/file_send_overlay.ui
index 00cc649b..15ff35ef 100644
--- a/main/data/file_send_overlay.ui
+++ b/main/data/file_send_overlay.ui
@@ -1,67 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <template class="DinoUiFileSendOverlay">
- <property name="hexpand">False</property>
- <property name="vexpand">False</property>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkBox" id="main_box">
+ <property name="hexpand">0</property>
+ <property name="vexpand">0</property>
<property name="halign">center</property>
<property name="valign">center</property>
- <property name="visible">True</property>
<style>
<class name="background"/>
<class name="dino-file-overlay"/>
</style>
<child>
- <object class="DinoUiSizeRequestBox">
- <property name="size-request-mode">height-for-width</property>
+ <object class="GtkBox">
<property name="orientation">vertical</property>
- <property name="margin-right">20</property>
- <property name="margin-left">20</property>
- <property name="visible">True</property>
+ <property name="margin-end">20</property>
+ <property name="margin-start">20</property>
<child>
<object class="GtkBox">
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
- <property name="orientation">horizontal</property>
- <property name="visible">True</property>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">Send a file</property>
- <property name="hexpand">True</property>
- <property name="visible">True</property>
+ <property name="label" translatable="1">Send a file</property>
+ <property name="hexpand">1</property>
<attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+ <attribute name="weight" value="PANGO_WEIGHT_BOLD"></attribute>
</attributes>
</object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
</child>
<child>
<object class="GtkButton" id="close_button">
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="visible">True</property>
+ <property name="focusable">1</property>
<style>
<class name="titlebutton"/>
<class name="close"/>
</style>
<child>
<object class="GtkImage">
- <property name="visible">True</property>
<property name="icon-name">window-close-symbolic</property>
- <property name="icon-size">1</property>
</object>
</child>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
</object>
</child>
<child>
<object class="DinoUiSizingBin" id="file_widget_insert">
- <property name="visible">True</property>
</object>
</child>
<child>
@@ -69,29 +53,21 @@
<property name="margin-top">15</property>
<property name="margin-bottom">15</property>
<property name="spacing">5</property>
- <property name="visible">True</property>
<child>
- <object class="GtkLabel" id="info_label">
- <property name="visible">True</property>
- </object>
+ <object class="GtkLabel" id="info_label"/>
</child>
<child>
<object class="GtkButton" id="send_button">
- <property name="label" translatable="yes">Send</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="visible">True</property>
+ <property name="label" translatable="1">Send</property>
+ <property name="focusable">1</property>
<style>
<class name="suggested-action"/>
</style>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
</object>
</child>
</object>
</child>
- </template>
-</interface>
+ </object>
+</interface> \ No newline at end of file
diff --git a/main/data/global_search.ui b/main/data/global_search.ui
index 4814f236..a29c48de 100644
--- a/main/data/global_search.ui
+++ b/main/data/global_search.ui
@@ -1,170 +1,158 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <template class="DinoUiGlobalSearch" parent="GtkOverlay">
- <property name="visible">True</property>
- <child>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkOverlay" id="overlay">
+ <property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
- <property name="visible">True</property>
<child>
<object class="GtkSearchEntry" id="search_entry">
- <property name="visible">True</property>
- <property name="margin">12</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
+ <property name="margin-top">12</property>
+ <property name="margin-bottom">12</property>
</object>
</child>
<child>
<object class="GtkStack" id="results_empty_stack">
- <property name="visible">True</property>
<child>
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <property name="spacing">10</property>
- <property name="valign">center</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="icon-name">system-search-symbolic</property>
- <property name="icon-size">4</property>
- <property name="pixel-size">72</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="yes">No active search</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
- <attribute name="scale" value="1.3"/>
- </attributes>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="yes">Type to start a search</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="visible">True</property>
- <style>
- <class name="dim-label"/>
- </style>
+ <object class="GtkStackPage">
+ <property name="name">empty</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">10</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon-name">system-search-symbolic</property>
+ <property name="icon-size">large</property>
+ <property name="pixel-size">72</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">No active search</property>
+ <attributes>
+ <attribute name="weight" value="PANGO_WEIGHT_BOLD"></attribute>
+ <attribute name="scale" value="1.3"></attribute>
+ </attributes>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">Type to start a search</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">empty</property>
- </packing>
</child>
<child>
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <property name="spacing">10</property>
- <property name="valign">center</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="icon-name">face-uncertain-symbolic</property>
- <property name="icon-size">4</property>
- <property name="pixel-size">72</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="yes">No matching messages</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
- <attribute name="scale" value="1.3"/>
- </attributes>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="yes">Check the spelling or try to remove filters</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="visible">True</property>
- <style>
- <class name="dim-label"/>
- </style>
+ <object class="GtkStackPage">
+ <property name="name">no-result</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">10</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon-name">face-uncertain-symbolic</property>
+ <property name="icon-size">large</property>
+ <property name="pixel-size">72</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">No matching messages</property>
+ <attributes>
+ <attribute name="weight" value="PANGO_WEIGHT_BOLD"></attribute>
+ <attribute name="scale" value="1.3"></attribute>
+ </attributes>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">Check the spelling or try to remove filters</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">no-result</property>
- </packing>
</child>
<child>
- <object class="GtkBox">
- <property name="orientation">vertical</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="entry_number_label">
- <property name="xalign">0</property>
- <property name="use-markup">True</property>
- <property name="margin-left">17</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkScrolledWindow" id="results_scrolled">
- <property name="hscrollbar-policy">never</property>
- <property name="expand">True</property>
- <property name="visible">True</property>
+ <object class="GtkStackPage">
+ <property name="name">results</property>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="entry_number_label">
+ <property name="xalign">0</property>
+ <property name="use-markup">1</property>
+ <property name="margin-start">17</property>
+ </object>
+ </child>
<child>
- <object class="GtkBox" id="results_box">
- <property name="orientation">vertical</property>
- <property name="spacing">25</property>
- <property name="margin">10</property>
- <property name="valign">start</property>
- <property name="visible">True</property>
+ <object class="GtkScrolledWindow" id="results_scrolled">
+ <property name="hscrollbar-policy">never</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="child">
+ <object class="GtkBox" id="results_box">
+ <property name="orientation">vertical</property>
+ <property name="spacing">25</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="valign">start</property>
+ </object>
+ </property>
</object>
</child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">results</property>
- </packing>
</child>
</object>
</child>
</object>
- </child>
+ </property>
<child type="overlay">
<object class="GtkFrame" id="auto_complete_overlay">
- <property name="visible">True</property>
<property name="margin-top">42</property>
- <property name="margin-left">12</property>
- <property name="margin-right">12</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
<property name="valign">start</property>
<style>
<class name="auto-complete"/>
</style>
- <child>
+ <property name="child">
<object class="GtkListBox" id="auto_complete_list">
- <property name="visible">True</property>
<property name="selection-mode">browse</property>
</object>
- </child>
+ </property>
</object>
</child>
- </template>
+ </object>
</interface>
diff --git a/main/data/icons/im.dino.Dino-symbolic.svg b/main/data/icons/scalable/apps/im.dino.Dino-symbolic.svg
index 00680734..00680734 100644
--- a/main/data/icons/im.dino.Dino-symbolic.svg
+++ b/main/data/icons/scalable/apps/im.dino.Dino-symbolic.svg
diff --git a/main/data/icons/dino-device-desktop-symbolic.svg b/main/data/icons/scalable/devices/dino-device-desktop-symbolic.svg
index 4e4e02ab..4e4e02ab 100644
--- a/main/data/icons/dino-device-desktop-symbolic.svg
+++ b/main/data/icons/scalable/devices/dino-device-desktop-symbolic.svg
diff --git a/main/data/icons/dino-device-phone-symbolic.svg b/main/data/icons/scalable/devices/dino-device-phone-symbolic.svg
index 64a69e17..64a69e17 100644
--- a/main/data/icons/dino-device-phone-symbolic.svg
+++ b/main/data/icons/scalable/devices/dino-device-phone-symbolic.svg
diff --git a/main/data/icons/dino-phone-hangup-symbolic.svg b/main/data/icons/scalable/devices/dino-phone-hangup-symbolic.svg
index ecd230ac..ecd230ac 100644
--- a/main/data/icons/dino-phone-hangup-symbolic.svg
+++ b/main/data/icons/scalable/devices/dino-phone-hangup-symbolic.svg
diff --git a/main/data/icons/dino-phone-in-talk-symbolic.svg b/main/data/icons/scalable/devices/dino-phone-in-talk-symbolic.svg
index 351035da..351035da 100644
--- a/main/data/icons/dino-phone-in-talk-symbolic.svg
+++ b/main/data/icons/scalable/devices/dino-phone-in-talk-symbolic.svg
diff --git a/main/data/icons/dino-phone-missed-symbolic.svg b/main/data/icons/scalable/devices/dino-phone-missed-symbolic.svg
index 228f073e..228f073e 100644
--- a/main/data/icons/dino-phone-missed-symbolic.svg
+++ b/main/data/icons/scalable/devices/dino-phone-missed-symbolic.svg
diff --git a/main/data/icons/dino-phone-ring-symbolic.svg b/main/data/icons/scalable/devices/dino-phone-ring-symbolic.svg
index 06b8dcbf..06b8dcbf 100644
--- a/main/data/icons/dino-phone-ring-symbolic.svg
+++ b/main/data/icons/scalable/devices/dino-phone-ring-symbolic.svg
diff --git a/main/data/icons/dino-phone-symbolic.svg b/main/data/icons/scalable/devices/dino-phone-symbolic.svg
index 0020dddc..0020dddc 100644
--- a/main/data/icons/dino-phone-symbolic.svg
+++ b/main/data/icons/scalable/devices/dino-phone-symbolic.svg
diff --git a/main/data/icons/dino-emoticon-symbolic.svg b/main/data/icons/scalable/emotes/dino-emoticon-symbolic.svg
index 5656303d..5656303d 100644
--- a/main/data/icons/dino-emoticon-symbolic.svg
+++ b/main/data/icons/scalable/emotes/dino-emoticon-symbolic.svg
diff --git a/main/data/icons/dino-file-document-symbolic.svg b/main/data/icons/scalable/mimetypes/dino-file-document-symbolic.svg
index 8901a817..8901a817 100644
--- a/main/data/icons/dino-file-document-symbolic.svg
+++ b/main/data/icons/scalable/mimetypes/dino-file-document-symbolic.svg
diff --git a/main/data/icons/dino-file-download-symbolic.svg b/main/data/icons/scalable/mimetypes/dino-file-download-symbolic.svg
index 5dada23d..5dada23d 100644
--- a/main/data/icons/dino-file-download-symbolic.svg
+++ b/main/data/icons/scalable/mimetypes/dino-file-download-symbolic.svg
diff --git a/main/data/icons/dino-file-image-symbolic.svg b/main/data/icons/scalable/mimetypes/dino-file-image-symbolic.svg
index 0cae7f18..0cae7f18 100644
--- a/main/data/icons/dino-file-image-symbolic.svg
+++ b/main/data/icons/scalable/mimetypes/dino-file-image-symbolic.svg
diff --git a/main/data/icons/dino-file-music-symbolic.svg b/main/data/icons/scalable/mimetypes/dino-file-music-symbolic.svg
index ef7ae56c..ef7ae56c 100644
--- a/main/data/icons/dino-file-music-symbolic.svg
+++ b/main/data/icons/scalable/mimetypes/dino-file-music-symbolic.svg
diff --git a/main/data/icons/dino-file-symbolic.svg b/main/data/icons/scalable/mimetypes/dino-file-symbolic.svg
index 748c4e7b..748c4e7b 100644
--- a/main/data/icons/dino-file-symbolic.svg
+++ b/main/data/icons/scalable/mimetypes/dino-file-symbolic.svg
diff --git a/main/data/icons/dino-file-table-symbolic.svg b/main/data/icons/scalable/mimetypes/dino-file-table-symbolic.svg
index c04b1244..c04b1244 100644
--- a/main/data/icons/dino-file-table-symbolic.svg
+++ b/main/data/icons/scalable/mimetypes/dino-file-table-symbolic.svg
diff --git a/main/data/icons/dino-file-video-symbolic.svg b/main/data/icons/scalable/mimetypes/dino-file-video-symbolic.svg
index c4afc836..c4afc836 100644
--- a/main/data/icons/dino-file-video-symbolic.svg
+++ b/main/data/icons/scalable/mimetypes/dino-file-video-symbolic.svg
diff --git a/main/data/icons/dino-changes-allowed-symbolic.svg b/main/data/icons/scalable/status/dino-changes-allowed-symbolic.svg
index 46f4487c..46f4487c 100644
--- a/main/data/icons/dino-changes-allowed-symbolic.svg
+++ b/main/data/icons/scalable/status/dino-changes-allowed-symbolic.svg
diff --git a/main/data/icons/dino-changes-prevent-symbolic.svg b/main/data/icons/scalable/status/dino-changes-prevent-symbolic.svg
index 56312122..56312122 100644
--- a/main/data/icons/dino-changes-prevent-symbolic.svg
+++ b/main/data/icons/scalable/status/dino-changes-prevent-symbolic.svg
diff --git a/main/data/icons/dino-double-tick-symbolic.svg b/main/data/icons/scalable/status/dino-double-tick-symbolic.svg
index abbf5142..abbf5142 100644
--- a/main/data/icons/dino-double-tick-symbolic.svg
+++ b/main/data/icons/scalable/status/dino-double-tick-symbolic.svg
diff --git a/main/data/icons/dino-microphone-off-symbolic.svg b/main/data/icons/scalable/status/dino-microphone-off-symbolic.svg
index 7e5b853d..7e5b853d 100644
--- a/main/data/icons/dino-microphone-off-symbolic.svg
+++ b/main/data/icons/scalable/status/dino-microphone-off-symbolic.svg
diff --git a/main/data/icons/dino-microphone-symbolic.svg b/main/data/icons/scalable/status/dino-microphone-symbolic.svg
index fbf0784a..fbf0784a 100644
--- a/main/data/icons/dino-microphone-symbolic.svg
+++ b/main/data/icons/scalable/status/dino-microphone-symbolic.svg
diff --git a/main/data/icons/dino-security-high-symbolic.svg b/main/data/icons/scalable/status/dino-security-high-symbolic.svg
index d930b901..d930b901 100644
--- a/main/data/icons/dino-security-high-symbolic.svg
+++ b/main/data/icons/scalable/status/dino-security-high-symbolic.svg
diff --git a/main/data/icons/dino-tick-symbolic.svg b/main/data/icons/scalable/status/dino-tick-symbolic.svg
index bc067e02..bc067e02 100644
--- a/main/data/icons/dino-tick-symbolic.svg
+++ b/main/data/icons/scalable/status/dino-tick-symbolic.svg
diff --git a/main/data/icons/dino-video-off-symbolic.svg b/main/data/icons/scalable/status/dino-video-off-symbolic.svg
index d438e065..d438e065 100644
--- a/main/data/icons/dino-video-off-symbolic.svg
+++ b/main/data/icons/scalable/status/dino-video-off-symbolic.svg
diff --git a/main/data/icons/dino-video-symbolic.svg b/main/data/icons/scalable/status/dino-video-symbolic.svg
index 60a1c742..60a1c742 100644
--- a/main/data/icons/dino-video-symbolic.svg
+++ b/main/data/icons/scalable/status/dino-video-symbolic.svg
diff --git a/main/data/manage_accounts/account_row.ui b/main/data/manage_accounts/account_row.ui
index 965171a7..6cacbeaf 100644
--- a/main/data/manage_accounts/account_row.ui
+++ b/main/data/manage_accounts/account_row.ui
@@ -1,30 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk" version="4.0"/>
<template class="DinoUiManageAccountsAccountRow">
<property name="visible">True</property>
<child>
<object class="GtkGrid">
- <property name="orientation">horizontal</property>
- <property name="margin">6</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
<property name="column-spacing">6</property>
- <property name="visible">True</property>
<child>
<object class="DinoUiAvatarImage" id="image">
<property name="height">40</property>
<property name="width">40</property>
- <property name="visible">True</property>
</object>
</child>
<child>
<object class="GtkLabel" id="jid_label">
- <property name="halign">0.5</property>
<property name="xalign">0</property>
- <property name="expand">True</property>
- <property name="visible">True</property>
+ <property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkImage" id="icon">
+ <property name="visible">False</property>
<property name="icon-name">dialog-warning-symbolic</property>
</object>
</child>
diff --git a/main/data/manage_accounts/add_account_dialog.ui b/main/data/manage_accounts/add_account_dialog.ui
index ad141b4a..d37a98f5 100644
--- a/main/data/manage_accounts/add_account_dialog.ui
+++ b/main/data/manage_accounts/add_account_dialog.ui
@@ -1,640 +1,548 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk" version="4.0"/>
<template class="DinoUiManageAccountsAddAccountDialog">
<property name="default_width">400</property>
<property name="modal">True</property>
- <child internal-child="vbox">
+ <child internal-child="content_area">
<object class="GtkBox">
- <property name="visible">True</property>
<child>
<object class="GtkOverlay">
- <property name="visible">True</property>
- <child>
+ <property name="child">
<object class="GtkBox">
- <property name="expand">True</property>
- <property name="visible">True</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
<child>
<object class="GtkStack" id="stack">
<property name="transition_type">slide-left</property>
- <property name="expand">True</property>
- <property name="visible">True</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
<child>
- <object class="GtkBox" id="sign_in_jid_box">
- <property name="orientation">vertical</property>
- <property name="margin">20</property>
- <property name="margin-start">50</property>
- <property name="margin-end">50</property>
- <property name="spacing">20</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="yes">Sign in</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="scale" value="1.3"/>
- </attributes>
- </object>
- </child>
- <child>
- <object class="GtkBox" id="info_grid">
+ <object class="GtkStackPage">
+ <property name="name">login_jid</property>
+ <property name="child">
+ <object class="GtkBox" id="sign_in_jid_box">
<property name="orientation">vertical</property>
- <property name="visible">True</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="margin-top">20</property>
+ <property name="margin-bottom">20</property>
+ <property name="margin-start">50</property>
+ <property name="margin-end">50</property>
+ <property name="spacing">20</property>
<child>
<object class="GtkLabel">
- <property name="label">JID</property>
- <property name="xalign">0</property>
- <property name="visible">True</property>
+ <property name="label" translatable="1">Sign in</property>
<attributes>
- <attribute name="scale" value="0.9"/>
+ <attribute name="scale" value="1.3"></attribute>
</attributes>
</object>
</child>
<child>
- <object class="GtkEntry" id="jid_entry">
- <property name="activates_default">True</property>
- <property name="hexpand">True</property>
- <property name="width_request">200</property>
- <property name="visible">True</property>
+ <object class="GtkBox" id="info_grid">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">JID</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.9"></attribute>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="jid_entry">
+ <property name="activates_default">1</property>
+ <property name="hexpand">1</property>
+ <property name="width_request">200</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="sign_in_jid_error_label">
+ <property name="xalign">0</property>
+ <property name="margin-top">7</property>
+ <attributes>
+ <attribute name="scale" value="0.9"></attribute>
+ </attributes>
+ </object>
+ </child>
</object>
</child>
<child>
- <object class="GtkLabel" id="sign_in_jid_error_label">
- <property name="xalign">0</property>
- <property name="margin-top">7</property>
- <property name="visible">True</property>
+ <object class="GtkBox">
+ <child>
+ <object class="GtkButton" id="sign_in_jid_serverlist_button">
+ <property name="label" translatable="1">Create account</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="sign_in_jid_continue_button">
+ <property name="halign">end</property>
+ <property name="hexpand">True</property>
+ <property name="sensitive">0</property>
+ <style>
+ <class name="text-button"/>
+ <class name="suggested-action"/>
+ </style>
+ <child>
+ <object class="GtkStack" id="sign_in_jid_continue_stack">
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">label</property>
+ <property name="child">
+ <object class="GtkLabel">
+ <property name="label" translatable="1">Next</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">spinner</property>
+ <property name="child">
+ <object class="GtkSpinner">
+ <property name="spinning">True</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">tls_error</property>
+ <property name="child">
+ <object class="GtkBox" id="sign_in_tls_box">
+ <property name="orientation">vertical</property>
+ <property name="margin-top">30</property>
+ <property name="margin-bottom">20</property>
+ <property name="margin-start">50</property>
+ <property name="margin-end">50</property>
+ <property name="spacing">20</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon-name">channel-insecure-symbolic</property>
+ <property name="pixel-size">72</property>
+ <property name="margin-top">10</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">Could not establish a secure connection</property>
<attributes>
- <attribute name="scale" value="0.9"/>
+ <attribute name="scale" value="1.1"></attribute>
</attributes>
</object>
</child>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="orientation">horizontal</property>
- <property name="visible">True</property>
<child>
- <object class="GtkButton" id="sign_in_jid_serverlist_button">
- <property name="label" translatable="yes">Create account</property>
- <property name="visible">True</property>
+ <object class="GtkLabel" id="sign_in_tls_label">
+ <property name="justify">fill</property>
+ <property name="wrap">1</property>
+ <property name="use-markup">1</property>
+ <property name="hexpand">1</property>
</object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
</child>
<child>
- <object class="GtkButton" id="sign_in_jid_continue_button">
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="visible">True</property>
- <style>
- <class name="text-button"/>
- <class name="suggested-action"/>
- </style>
+ <object class="GtkBox">
<child>
- <object class="GtkStack" id="sign_in_jid_continue_stack">
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="yes">Next</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="name">label</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinner">
- <property name="active">True</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="name">spinner</property>
- </packing>
- </child>
+ <object class="GtkButton" id="sign_in_tls_back_button">
+ <property name="label" translatable="1">Back</property>
</object>
-
</child>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">login_jid</property>
- </packing>
</child>
<child>
- <object class="GtkBox" id="sign_in_tls_box">
- <property name="orientation">vertical</property>
- <property name="margin-top">30</property>
- <property name="margin-bottom">20</property>
- <property name="margin-start">50</property>
- <property name="margin-end">50</property>
- <property name="spacing">20</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="icon-name">channel-insecure-symbolic</property>
- <property name="icon-size">4</property>
- <property name="pixel-size">72</property>
- <property name="margin-top">10</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="yes">Could not establish a secure connection</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="scale" value="1.1"/>
- </attributes>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="sign_in_tls_label">
- <property name="justify">fill</property>
- <property name="wrap">True</property>
- <property name="use-markup">True</property>
- <property name="hexpand">True</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="orientation">horizontal</property>
- <property name="visible">True</property>
+ <object class="GtkStackPage">
+ <property name="name">login_password</property>
+ <property name="child">
+ <object class="GtkBox" id="sign_in_password_box">
+ <property name="orientation">vertical</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="margin-top">20</property>
+ <property name="margin-bottom">20</property>
+ <property name="margin-start">50</property>
+ <property name="margin-end">50</property>
+ <property name="spacing">20</property>
+ <child>
+ <object class="GtkLabel" id="sign_in_password_title">
+ <attributes>
+ <attribute name="scale" value="1.3"></attribute>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">Password</property>
+ <property name="xalign">0</property>
+ <property name="margin-top">7</property>
+ <attributes>
+ <attribute name="scale" value="0.9"></attribute>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="password_entry">
+ <property name="activates_default">1</property>
+ <property name="hexpand">1</property>
+ <property name="input_purpose">password</property>
+ <property name="width_request">200</property>
+ <property name="visibility">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="sign_in_password_error_label">
+ <property name="xalign">0</property>
+ <property name="margin-top">7</property>
+ <attributes>
+ <attribute name="scale" value="0.9"></attribute>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ </child>
<child>
- <object class="GtkButton" id="sign_in_tls_back_button">
- <property name="label" translatable="yes">Back</property>
- <property name="visible">True</property>
+ <object class="GtkBox">
+ <child>
+ <object class="GtkButton" id="sign_in_password_back_button">
+ <property name="label" translatable="1">Back</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="sign_in_password_continue_button">
+ <property name="halign">end</property>
+ <property name="hexpand">True</property>
+ <property name="sensitive">0</property>
+ <style>
+ <class name="text-button"/>
+ <class name="suggested-action"/>
+ </style>
+ <child>
+ <object class="GtkStack" id="sign_in_password_continue_stack">
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">label</property>
+ <property name="child">
+ <object class="GtkLabel">
+ <property name="label" translatable="1">Connect</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">spinner</property>
+ <property name="child">
+ <object class="GtkSpinner">
+ <property name="spinning">True</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
</child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">tls_error</property>
- </packing>
</child>
<child>
- <object class="GtkBox" id="sign_in_password_box">
- <property name="orientation">vertical</property>
- <property name="margin">20</property>
- <property name="margin-start">50</property>
- <property name="margin-end">50</property>
- <property name="spacing">20</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="sign_in_password_title">
- <property name="visible">True</property>
- <attributes>
- <attribute name="scale" value="1.3"/>
- </attributes>
- </object>
- </child>
- <child>
- <object class="GtkBox">
+ <object class="GtkStackPage">
+ <property name="name">server</property>
+ <property name="child">
+ <object class="GtkBox" id="create_account_box">
<property name="orientation">vertical</property>
- <property name="visible">True</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="margin-top">20</property>
+ <property name="margin-bottom">20</property>
+ <property name="margin-start">50</property>
+ <property name="margin-end">50</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">Create account</property>
+ <property name="margin-bottom">20</property>
+ <attributes>
+ <attribute name="scale" value="1.3"></attribute>
+ </attributes>
+ </object>
+ </child>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">Password</property>
<property name="xalign">0</property>
- <property name="margin-top">7</property>
- <property name="visible">True</property>
+ <property name="label" translatable="1">Choose a public server</property>
<attributes>
- <attribute name="scale" value="0.9"/>
+ <attribute name="weight" value="PANGO_WEIGHT_BOLD"></attribute>
</attributes>
</object>
</child>
<child>
- <object class="GtkEntry" id="password_entry">
- <property name="activates_default">True</property>
- <property name="hexpand">True</property>
- <property name="input_purpose">password</property>
- <property name="width_request">200</property>
- <property name="visible">True</property>
- <property name="visibility">False</property>
+ <object class="GtkFrame">
+ <property name="child">
+ <object class="GtkScrolledWindow">
+ <property name="max_content_height">300</property>
+ <property name="propagate_natural_height">1</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="child">
+ <object class="GtkListBox" id="server_list_box"/>
+ </property>
+ </object>
+ </property>
</object>
</child>
<child>
- <object class="GtkLabel" id="sign_in_password_error_label">
+ <object class="GtkLabel">
<property name="xalign">0</property>
- <property name="margin-top">7</property>
- <property name="visible">True</property>
+ <property name="margin-top">20</property>
+ <property name="label" translatable="1">Or specify a server address</property>
<attributes>
- <attribute name="scale" value="0.9"/>
+ <attribute name="weight" value="PANGO_WEIGHT_BOLD"></attribute>
</attributes>
</object>
</child>
- <!--<child>-->
- <!--<object class="GtkLabel">-->
- <!--<property name="label" translatable="yes">Local alias</property>-->
- <!--<property name="xalign">0</property>-->
- <!--<property name="margin-top">7</property>-->
- <!--<property name="visible">True</property>-->
- <!--<attributes>-->
- <!--<attribute name="scale" value="0.9"/>-->
- <!--</attributes>-->
- <!--</object>-->
- <!--</child>-->
- <!--<child>-->
- <!--<object class="GtkEntry" id="alias_entry">-->
- <!--<property name="activates_default">True</property>-->
- <!--<property name="hexpand">True</property>-->
- <!--<property name="width_request">200</property>-->
- <!--<property name="visible">True</property>-->
- <!--</object>-->
- <!--</child>-->
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="orientation">horizontal</property>
- <property name="visible">True</property>
<child>
- <object class="GtkButton" id="sign_in_password_back_button">
- <property name="label" translatable="yes">Back</property>
- <property name="visible">True</property>
+ <object class="GtkEntry" id="server_entry">
+ <property name="activates_default">1</property>
</object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
</child>
<child>
- <object class="GtkButton" id="sign_in_password_continue_button">
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="visible">True</property>
- <style>
- <class name="text-button"/>
- <class name="suggested-action"/>
- </style>
+ <object class="GtkBox">
+ <property name="margin-top">30</property>
<child>
- <object class="GtkStack" id="sign_in_password_continue_stack">
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="yes">Connect</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="name">label</property>
- </packing>
- </child>
+ <object class="GtkButton" id="login_button">
+ <property name="label" translatable="1">Sign in instead</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="select_server_continue">
+ <property name="halign">end</property>
+ <property name="hexpand">True</property>
+ <property name="sensitive">0</property>
+ <style>
+ <class name="text-button"/>
+ <class name="suggested-action"/>
+ </style>
<child>
- <object class="GtkSpinner">
- <property name="active">True</property>
- <property name="visible">True</property>
+ <object class="GtkStack" id="select_server_continue_stack">
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">label</property>
+ <property name="child">
+ <object class="GtkLabel">
+ <property name="label" translatable="1">Next</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">spinner</property>
+ <property name="child">
+ <object class="GtkSpinner">
+ <property name="spinning">True</property>
+ </object>
+ </property>
+ </object>
+ </child>
</object>
- <packing>
- <property name="name">spinner</property>
- </packing>
</child>
</object>
-
</child>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">login_password</property>
- </packing>
</child>
<child>
- <object class="GtkBox" id="create_account_box">
- <property name="orientation">vertical</property>
- <property name="margin">20</property>
- <property name="margin-start">50</property>
- <property name="margin-end">50</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="yes">Create account</property>
+ <object class="GtkStackPage">
+ <property name="name">form</property>
+ <property name="child">
+ <object class="GtkBox" id="register_box">
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="margin-top">20</property>
<property name="margin-bottom">20</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="scale" value="1.3"/>
- </attributes>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Choose a public server</property>
- <attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
- </attributes>
- </object>
- </child>
- <child>
- <object class="GtkFrame">
- <property name="visible">True</property>
+ <property name="margin-start">50</property>
+ <property name="margin-end">50</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkScrolledWindow">
- <property name="max_content_height">300</property>
- <property name="propagate_natural_height">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkListBox" id="server_list_box">
- <property name="visible">True</property>
- </object>
- </child>
+ <object class="GtkLabel" id="register_title">
+ <property name="margin-bottom">10</property>
+ <attributes>
+ <attribute name="scale" value="1.3"></attribute>
+ </attributes>
</object>
</child>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="margin-top">20</property>
- <property name="label" translatable="yes">Or specify a server address</property>
- <attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
- </attributes>
- </object>
- </child>
- <child>
- <object class="GtkEntry" id="server_entry">
- <property name="activates_default">True</property>
- <property name="can_default">True</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="margin-top">30</property>
- <property name="orientation">horizontal</property>
<child>
- <object class="GtkButton" id="login_button">
- <property name="label" translatable="yes">Sign in instead</property>
- <property name="visible">True</property>
+ <object class="GtkBox" id="form_box">
+ <property name="orientation">vertical</property>
</object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
</child>
<child>
- <object class="GtkButton" id="select_server_continue">
- <property name="sensitive">False</property>
- <property name="can_default">True</property>
- <property name="visible">True</property>
- <style>
- <class name="text-button"/>
- <class name="suggested-action"/>
- </style>
+ <object class="GtkBox">
+ <property name="margin-top">30</property>
<child>
- <object class="GtkStack" id="select_server_continue_stack">
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="yes">Next</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="name">label</property>
- </packing>
- </child>
+ <object class="GtkButton" id="register_form_back">
+ <property name="label" translatable="1">Pick another server</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="register_form_continue">
+ <property name="halign">end</property>
+ <property name="hexpand">True</property>
+ <style>
+ <class name="text-button"/>
+ <class name="suggested-action"/>
+ </style>
<child>
- <object class="GtkSpinner">
- <property name="active">True</property>
- <property name="visible">True</property>
+ <object class="GtkStack" id="register_form_continue_stack">
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">label</property>
+ <property name="child">
+ <object class="GtkLabel" id="register_form_continue_label">
+ <property name="label" translatable="1">Next</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">spinner</property>
+ <property name="child">
+ <object class="GtkSpinner">
+ <property name="spinning">True</property>
+ </object>
+ </property>
+ </object>
+ </child>
</object>
- <packing>
- <property name="name">spinner</property>
- </packing>
</child>
</object>
-
</child>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">server</property>
- </packing>
</child>
<child>
- <object class="GtkBox" id="register_box">
- <property name="margin">20</property>
- <property name="margin-start">50</property>
- <property name="margin-end">50</property>
- <property name="orientation">vertical</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="register_title">
+ <object class="GtkStackPage">
+ <property name="name">success</property>
+ <property name="child">
+ <object class="GtkBox" id="success_box">
+ <property name="margin-start">50</property>
+ <property name="margin-end">50</property>
+ <property name="margin-top">50</property>
+ <property name="margin-bottom">50</property>
+ <property name="margin-top">10</property>
<property name="margin-bottom">10</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="scale" value="1.3"/>
- </attributes>
- </object>
- </child>
- <child>
- <object class="GtkBox" id="form_box">
<property name="orientation">vertical</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="margin-top">30</property>
- <property name="orientation">horizontal</property>
+ <property name="valign">center</property>
<child>
- <object class="GtkButton" id="register_form_back">
- <property name="label" translatable="yes">Pick another server</property>
- <property name="visible">True</property>
+ <object class="GtkImage">
+ <property name="icon-name">dino-party-popper-symbolic</property>
+ <property name="pixel-size">72</property>
+ <property name="margin-bottom">10</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
</object>
- <packing>
- <property name="pack_type">start</property>
- </packing>
</child>
<child>
- <object class="GtkButton" id="register_form_continue">
- <property name="can_default">True</property>
- <property name="visible">True</property>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">All set up!</property>
+ <attributes>
+ <attribute name="weight" value="PANGO_WEIGHT_BOLD"></attribute>
+ <attribute name="scale" value="1.3"></attribute>
+ </attributes>
<style>
- <class name="text-button"/>
- <class name="suggested-action"/>
+ <class name="dim-label"/>
</style>
- <child>
- <object class="GtkStack" id="register_form_continue_stack">
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="register_form_continue_label">
- <property name="label" translatable="yes">Next</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="name">label</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinner">
- <property name="active">True</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="name">spinner</property>
- </packing>
- </child>
- </object>
- </child>
</object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
</child>
- </object>
- </child>
- </object>
- <packing>
- <property name="name">form</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="success_box">
- <property name="margin">50</property>
- <property name="margin-top">10</property>
- <property name="margin-bottom">10</property>
- <property name="orientation">vertical</property>
- <property name="valign">center</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="icon-name">dino-party-popper-symbolic</property>
- <property name="icon-size">4</property>
- <property name="pixel-size">72</property>
- <property name="margin-bottom">10</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="label" translatable="yes">All set up!</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
- <attribute name="scale" value="1.3"/>
- </attributes>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="success_description">
- <property name="wrap">True</property>
- <property name="margin">5</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="use-markup">True</property>
- <property name="justify">center</property>
- <property name="visible">True</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="orientation">horizontal</property>
- <property name="halign">center</property>
- <property name="margin-top">20</property>
- <property name="visible">True</property>
<child>
- <object class="GtkButton" id="success_continue_button">
- <property name="can_default">True</property>
- <property name="label" translatable="yes">Finish</property>
- <property name="visible">True</property>
+ <object class="GtkLabel" id="success_description">
+ <property name="wrap">1</property>
+ <property name="margin-start">5</property>
+ <property name="margin-end">5</property>
+ <property name="margin-top">5</property>
+ <property name="margin-bottom">5</property>
+ <property name="use-markup">1</property>
+ <property name="justify">center</property>
<style>
- <class name="text-button"/>
- <class name="suggested-action"/>
+ <class name="dim-label"/>
</style>
</object>
</child>
+ <child>
+ <object class="GtkBox">
+ <property name="halign">center</property>
+ <property name="margin-top">20</property>
+ <child>
+ <object class="GtkButton" id="success_continue_button">
+ <property name="label" translatable="1">Finish</property>
+ <style>
+ <class name="text-button"/>
+ <class name="suggested-action"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">success</property>
- </packing>
</child>
</object>
</child>
</object>
- <packing>
- <property name="index">-1</property>
- </packing>
- </child>
+ </property>
<child type="overlay">
<object class="GtkRevealer" id="notification_revealer">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">start</property>
- <child>
+ <property name="child">
<object class="GtkFrame" id="frame2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
+<!-- <property name="shadow_type">none</property>-->
<style>
<class name="app-notification"/>
</style>
- <child>
+ <property name="child">
<object class="GtkBox" id="box2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="spacing">20</property>
<child>
- <object class="GtkLabel" id="notification_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
+ <object class="GtkLabel" id="notification_label"/>
</child>
</object>
- </child>
+ </property>
<child type="label_item">
<placeholder/>
</child>
</object>
- </child>
+ </property>
</object>
</child>
</object>
@@ -642,4 +550,4 @@
</object>
</child>
</template>
-</interface>
+</interface> \ No newline at end of file
diff --git a/main/data/manage_accounts/dialog.ui b/main/data/manage_accounts/dialog.ui
index 8d50d449..9077c69e 100644
--- a/main/data/manage_accounts/dialog.ui
+++ b/main/data/manage_accounts/dialog.ui
@@ -1,78 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk" version="4.0"/>
<template class="DinoUiManageAccountsDialog">
+ <property name="title" translatable="1">Accounts</property>
<property name="width-request">700</property>
<property name="height-request">400</property>
<property name="modal">True</property>
<child type="titlebar">
- <object class="GtkHeaderBar">
- <property name="title" translatable="yes">Accounts</property>
- <property name="show_close_button">True</property>
- <property name="visible">True</property>
- </object>
+ <object class="GtkHeaderBar"/>
</child>
- <child internal-child="vbox">
- <object class="GtkBox">
- <property name="visible">True</property>
+ <child internal-child="content_area">
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkStack" id="main_stack">
<child>
- <object class="GtkStack" id="main_stack">
- <property name="visible">True</property>
- <child>
+ <object class="GtkStackPage">
+ <property name="name">accounts_exist</property>
+ <property name="child">
<object class="GtkBox">
- <property name="can_focus">True</property>
- <property name="expand">True</property>
- <property name="visible">True</property>
+ <property name="focusable">1</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<child>
<object class="GtkBox">
- <property name="expand">True</property>
- <property name="orientation">horizontal</property>
- <property name="margin">15</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="margin-start">15</property>
+ <property name="margin-end">15</property>
+ <property name="margin-top">15</property>
+ <property name="margin-bottom">15</property>
<property name="spacing">20</property>
- <property name="visible">True</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="width-request">250</property>
- <property name="vexpand">True</property>
- <property name="hexpand">False</property>
- <property name="visible">True</property>
+ <property name="vexpand">1</property>
+ <property name="hexpand">0</property>
<child>
<object class="GtkScrolledWindow">
- <property name="shadow-type">in</property>
- <property name="expand">True</property>
- <property name="visible">True</property>
- <child>
+<!-- <property name="shadow-type">in</property>-->
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
- <property name="visible">True</property>
<child>
<object class="GtkListBox" id="account_list">
- <property name="expand">True</property>
- <property name="visible">True</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
</object>
</child>
</object>
- </child>
+ </property>
</object>
</child>
<child>
- <object class="GtkToolbar">
+ <object class="GtkBox">
+ <property name="css-classes">toolbar</property>
<style>
<class name="inline-toolbar"/>
</style>
- <property name="icon-size">menu</property>
- <property name="toolbar-style">icons</property>
- <property name="visible">True</property>
<child>
- <object class="GtkToolButton" id="add_account_button">
+ <object class="GtkButton" id="add_account_button">
<property name="icon-name">list-add-symbolic</property>
- <property name="visible">True</property>
</object>
</child>
<child>
- <object class="GtkToolButton" id="remove_account_button">
+ <object class="GtkButton" id="remove_account_button">
<property name="icon-name">list-remove-symbolic</property>
- <property name="visible">True</property>
</object>
</child>
</object>
@@ -81,23 +77,19 @@
</child>
<child>
<object class="GtkGrid" id="settings_list">
- <property name="expand">True</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
<property name="column-spacing">10</property>
<property name="row-spacing">5</property>
- <property name="visible">True</property>
<child>
<object class="GtkBox">
- <property name="visible">True</property>
<property name="halign">end</property>
<child>
- <object class="GtkBox">
- <property name="visible">True</property>
- </object>
+ <object class="GtkBox"/>
</child>
<child>
<object class="GtkButton" id="image_button">
- <property name="relief">none</property>
- <property name="visible">True</property>
+ <property name="has-frame">False</property>
<style>
<class name="image-button"/>
</style>
@@ -105,145 +97,124 @@
<object class="DinoUiAvatarImage" id="image">
<property name="height">50</property>
<property name="width">50</property>
- <property name="xalign">1</property>
- <property name="visible">True</property>
+<!-- <property name="xalign">1</property>-->
<property name="allow_gray">False</property>
</object>
</child>
</object>
</child>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ <property name="row-span">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">2</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="jid_label">
<property name="xalign">0</property>
<property name="yalign">1</property>
- <property name="visible">True</property>
<attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+ <attribute name="weight" value="PANGO_WEIGHT_BOLD"></attribute>
</attributes>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel" id="state_label">
<property name="xalign">0</property>
<property name="yalign">0</property>
- <property name="visible">True</property>
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkSwitch" id="active_switch">
- <property name="visible">True</property>
<property name="halign">end</property>
<property name="valign">center</property>
+ <layout>
+ <property name="column">2</property>
+ <property name="row">0</property>
+ <property name="row-span">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">2</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">Password</property>
+ <property name="label" translatable="1">Password</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="DinoUiUtilEntryLabelHybrid" id="password_hybrid">
<property name="xalign">0</property>
<property name="width_request">200</property>
<property name="visibility">False</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">2</property>
+ <property name="column-span">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- <property name="width">2</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">Local alias</property>
+ <property name="label" translatable="1">Local alias</property>
<property name="xalign">1</property>
- <property name="visible">True</property>
<style>
<class name="dim-label"/>
</style>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">3</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="DinoUiUtilEntryLabelHybrid" id="alias_hybrid">
<property name="xalign">0</property>
<property name="width_request">200</property>
- <property name="visible">True</property>
+` <layout>
+ <property name="column">1</property>
+ <property name="row">3</property>
+ <property name="column-span">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- <property name="width">2</property>
- <property name="height">1</property>
- </packing>
</child>
</object>
</child>
</object>
</child>
</object>
- <packing>
- <property name="name">accounts_exist</property>
- </packing>
- </child>
- <child>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">no_accounts</property>
+ <property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<property name="valign">center</property>
- <property name="visible">True</property>
<child>
<object class="GtkImage">
- <property name="visible">True</property>
<property name="icon-name">system-users-symbolic</property>
- <property name="icon-size">4</property>
<property name="pixel-size">72</property>
<style>
<class name="dim-label"/>
@@ -252,10 +223,7 @@
</child>
<child>
<object class="GtkLabel">
- <property name="label" translatable="yes">No accounts configured</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="visible">True</property>
+ <property name="label" translatable="1">No accounts configured</property>
<style>
<class name="dim-label"/>
</style>
@@ -263,9 +231,8 @@
</child>
<child>
<object class="GtkButton" id="no_accounts_add">
- <property name="label" translatable="yes">Add an account</property>
+ <property name="label" translatable="1">Add an account</property>
<property name="halign">center</property>
- <property name="visible">True</property>
<style>
<class name="text-button"/>
<class name="suggested-action"/>
@@ -273,13 +240,12 @@
</object>
</child>
</object>
- <packing>
- <property name="name">no_accounts</property>
- </packing>
- </child>
+ </property>
</object>
</child>
</object>
+ </child>
+ </object>
</child>
</template>
</interface>
diff --git a/main/data/menu_encryption.ui b/main/data/menu_encryption.ui
index 9e63b17d..5f478fe2 100644
--- a/main/data/menu_encryption.ui
+++ b/main/data/menu_encryption.ui
@@ -2,32 +2,21 @@
<interface>
<requires lib="gtk+" version="3.16"/>
<object class="GtkPopoverMenu" id="menu_encryption">
- <property name="can_focus">False</property>
- <child>
+ <property name="child">
<object class="GtkBox" id="encryption_box">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <property name="margin">10</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
<child>
- <object class="GtkRadioButton" id="button_unencrypted">
- <property name="label" translatable="yes">Unencrypted</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <object class="GtkCheckButton" id="button_unencrypted">
+ <property name="label" translatable="1">Unencrypted</property>
+ <property name="focusable">1</property>
+ <property name="active">1</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
</object>
- <packing>
- <property name="submenu">main</property>
- </packing>
- </child>
+ </property>
</object>
-</interface>
+</interface> \ No newline at end of file
diff --git a/main/data/message_item_widget_edit_mode.ui b/main/data/message_item_widget_edit_mode.ui
index b33d8aa3..907dbbf0 100644
--- a/main/data/message_item_widget_edit_mode.ui
+++ b/main/data/message_item_widget_edit_mode.ui
@@ -6,27 +6,21 @@
<property name="spacing">5</property>
<property name="margin_top">5</property>
<property name="margin_bottom">5</property>
- <property name="visible">True</property>
<child>
<object class="GtkFrame" id="frame">
- <property name="visible">True</property>
<style>
<class name="dino-chatinput"/>
</style>
<child>
<object class="GtkBox">
- <property name="visible">True</property>
<child>
- <object class="DinoUiChatTextView" id="chat_text_view">
- <property name="visible">True</property>
- </object>
+ <object class="DinoUiChatTextView" id="chat_text_view" />
</child>
<child>
<object class="GtkMenuButton" id="emoji_button">
- <property name="relief">none</property>
+ <property name="has-frame">False</property>
<property name="margin-top">3</property>
<property name="valign">start</property>
- <property name="visible">True</property>
<style>
<class name="dino-chatinput-button"/>
<class name="flat"/>
@@ -35,7 +29,6 @@
<object class="GtkImage">
<property name="icon-name">dino-emoticon-symbolic</property>
<property name="icon-size">1</property>
- <property name="visible">True</property>
</object>
</child>
</object>
@@ -48,17 +41,14 @@
<object class="GtkBox">
<property name="spacing">5</property>
<property name="halign">end</property>
- <property name="visible">True</property>
<child>
<object class="GtkButton" id="cancel_button">
<property name="label" translatable="yes">Cancel</property>
- <property name="visible">True</property>
</object>
</child>
<child>
<object class="GtkButton" id="send_button">
<property name="label" translatable="yes">Update message</property>
- <property name="visible">True</property>
<style>
<class name="suggested-action"/>
</style>
diff --git a/main/data/occupant_list.ui b/main/data/occupant_list.ui
index d899eb5f..6cbf5910 100644
--- a/main/data/occupant_list.ui
+++ b/main/data/occupant_list.ui
@@ -2,30 +2,23 @@
<interface>
<requires lib="gtk+" version="3.22"/>
<template class="DinoUiOccupantMenuList">
- <property name="visible">True</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
- <property name="visible">True</property>
<child>
- <object class="GtkToolItem">
- <property name="visible">True</property>
- <child>
- <object class="GtkSearchEntry" id="search_entry">
- <property name="margin">8</property>
- <property name="visible">True</property>
- </object>
- </child>
+ <object class="GtkSearchEntry" id="search_entry">
+ <property name="margin_top">8</property>
+ <property name="margin_bottom">8</property>
+ <property name="margin_start">8</property>
+ <property name="margin_end">8</property>
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="max_content_height">500</property>
<property name="propagate_natural_height">True</property>
- <property name="visible">True</property>
<child>
<object class="GtkListBox" id="list_box">
- <property name="visible">True</property>
</object>
</child>
</object>
diff --git a/main/data/occupant_list_item.ui b/main/data/occupant_list_item.ui
index e2b35ad6..1915aee6 100644
--- a/main/data/occupant_list_item.ui
+++ b/main/data/occupant_list_item.ui
@@ -1,45 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <template class="DinoUiOccupantMenuListRow" parent="GtkListBoxRow">
- <property name="visible">True</property>
+ <requires lib="gtk" version="4.0"/>
+ <object class="GtkGrid" id="main_grid">
+ <property name="margin-top">3</property>
+ <property name="margin-start">7</property>
+ <property name="margin-bottom">3</property>
+ <property name="margin-end">7</property>
+ <property name="column-spacing">10</property>
<child>
- <object class="GtkGrid">
- <property name="orientation">horizontal</property>
- <property name="margin-top">3</property>
- <property name="margin-left">7</property>
- <property name="margin-bottom">3</property>
- <property name="margin-right">7</property>
- <property name="column-spacing">10</property>
- <property name="visible">True</property>
- <child>
- <object class="DinoUiAvatarImage" id="image">
- <property name="height">30</property>
- <property name="width">30</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkGrid">
- <property name="orientation">vertical</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="name_label">
- <property name="max_width_chars">1</property>
- <property name="ellipsize">end</property>
- <property name="expand">True</property>
- <property name="xalign">0</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- </object>
- </child>
+ <object class="DinoUiAvatarImage" id="image">
+ <property name="height">30</property>
+ <property name="width">30</property>
</object>
</child>
- </template>
-</interface>
+ <child>
+ <object class="GtkLabel" id="name_label">
+ <property name="max_width_chars">1</property>
+ <property name="ellipsize">end</property>
+ <property name="hexpand">1</property>
+ <property name="xalign">0</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ </object>
+</interface> \ No newline at end of file
diff --git a/main/data/search_autocomplete.ui b/main/data/search_autocomplete.ui
index 94ec5d7f..5146ac5a 100644
--- a/main/data/search_autocomplete.ui
+++ b/main/data/search_autocomplete.ui
@@ -5,18 +5,17 @@
<property name="visible">True</property>
<child>
<object class="DinoUiAvatarImage" id="image">
- <property name="margin">4</property>
+ <property name="margin-top">4</property>
+ <property name="margin-bottom">4</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="height">24</property>
<property name="width">24</property>
- <property name="visible">True</property>
<property name="allow_gray">False</property>
</object>
</child>
<child>
<object class="GtkLabel" id="label">
- <property name="visible">True</property>
<property name="ellipsize">end</property>
</object>
</child>
diff --git a/main/data/settings_dialog.ui b/main/data/settings_dialog.ui
index d5b7ac92..84d56c1d 100644
--- a/main/data/settings_dialog.ui
+++ b/main/data/settings_dialog.ui
@@ -1,81 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="DinoUiSettingsDialog">
+ <property name="title" translatable="yes">Settings</property>
<property name="modal">True</property>
<child type="titlebar">
<object class="GtkHeaderBar">
- <property name="title" translatable="yes">Settings</property>
- <property name="show_close_button">True</property>
- <property name="visible">True</property>
</object>
</child>
- <child internal-child="vbox">
+ <child internal-child="content_area">
<object class="GtkBox">
- <property name="visible">True</property>
<child>
<object class="GtkGrid">
- <property name="margin">10</property>
+ <property name="margin_top">10</property>
+ <property name="margin_bottom">10</property>
+ <property name="margin_start">10</property>
+ <property name="margin_end">10</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
<property name="row-spacing">10</property>
- <property name="visible">True</property>
<child>
<object class="GtkCheckButton" id="typing_checkbutton">
<property name="label" translatable="yes">Send typing notifications</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkCheckButton" id="marker_checkbutton">
<property name="label" translatable="yes">Send read receipts</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkCheckButton" id="notification_checkbutton">
<property name="label" translatable="yes">Notify when a new message arrives</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkCheckButton" id="emoji_checkbutton">
<property name="label" translatable="yes">Convert smileys to emojis</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">3</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
<child>
<object class="GtkCheckButton" id="check_spelling_checkbutton">
<property name="label" translatable="yes">Check spelling</property>
- <property name="visible">True</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">4</property>
+ </layout>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
</object>
</child>
diff --git a/main/data/theme.css b/main/data/theme.css
index 059585b7..3bdbb19f 100644
--- a/main/data/theme.css
+++ b/main/data/theme.css
@@ -27,8 +27,8 @@ window.dino-main .dino-conversation viewport /* Some themes set this */ {
}
@keyframes highlight {
- from { background: alpha(@warning_color, 0.5) }
- to { background: transparent }
+ from { background: alpha(@warning_color, 0.5); }
+ to { background: transparent; }
}
window.dino-main .dino-conversation .highlight-once {
@@ -38,10 +38,23 @@ window.dino-main .dino-conversation .highlight-once {
animation-name: highlight;
}
-window.dino-main .dino-conversation .message-box:hover {
+window.dino-main .dino-conversation .message-box.highlight {
background: alpha(@theme_fg_color, 0.04);
}
+window.dino-main .dino-conversation .message-box {
+ padding: 4px 15px 4px 15px;
+}
+
+window.dino-main .dino-conversation .message-box:not(.has-skeleton) {
+ padding-left: 58px;
+}
+
+window.dino-main .dino-conversation .message-box.has-skeleton.last-group-item {
+ padding-top: 8px;
+ padding-bottom: 8px;
+}
+
window.dino-main .unread-count-notify {
background-color: alpha(@theme_fg_color, 0.8);
color: @theme_base_color;
@@ -142,7 +155,7 @@ window.dino-main .incoming-call-box {
window.dino-main .multiparty-participants {
border-top: 1px solid alpha(@theme_fg_color, 0.05);
- background: alpha(@theme_fg_color, 0.04)
+ background: alpha(@theme_fg_color, 0.04);
}
window.dino-main .dino-sidebar > frame.collapsed {
@@ -171,34 +184,40 @@ window.dino-main .dino-chatinput frame box {
background: transparent;
}
-window.dino-main button.dino-attach-button {
- min-width: 24px; /* Make button the same with as avatars */
+window.dino-main .dino-attach-button {
+ min-width: 24px; /* Make button the same width as avatars */
}
-window.dino-main button.dino-chatinput-button {
+window.dino-main .dino-attach-button,
+window.dino-main .dino-chatinput-button button {
border: none;
background: transparent;
box-shadow: none;
min-height: 0;
padding: 7px 5px;
- color: alpha(@theme_fg_color, 0.6);
+ color: alpha(@theme_fg_color, 0.7);
outline: none;
}
-window.dino-main button.dino-chatinput-button:hover {
+window.dino-main .dino-attach-button:hover,
+window.dino-main .dino-chatinput-button button:hover {
color: @theme_selected_bg_color;
}
-window.dino-main button.dino-chatinput-button:backdrop {
+window.dino-main .dino-attach-button:backdrop,
+window.dino-main .dino-chatinput-button button:backdrop {
color: alpha(@theme_unfocused_fg_color, 0.6);
}
-window.dino-main button.dino-chatinput-button:active,
-window.dino-main button.dino-chatinput-button:checked {
+window.dino-main .dino-attach-button:active,
+window.dino-main .dino-attach-button:checked,
+window.dino-main .dino-chatinput-button button:active,
+window.dino-main .dino-chatinput-button button:checked {
color: alpha(@theme_selected_bg_color, 0.8);
}
-window.dino-main button.dino-chatinput-button:checked:backdrop {
+window.dino-main .dino-attach-button:backdrop,
+window.dino-main .dino-chatinput-button button:checked:backdrop {
color: alpha(@theme_unfocused_selected_bg_color, 0.8);
}
@@ -357,7 +376,7 @@ box.dino-input-error label.input-status-highlight-once {
.dino-call-window .participant-name {
color: white;
- text-shadow: black;
+ text-shadow: 1px 1px 2px black;
}
.dino-call-window .text-no-controls {
diff --git a/main/data/unified_main_content.ui b/main/data/unified_main_content.ui
index 03c206c1..3fb7b6e5 100644
--- a/main/data/unified_main_content.ui
+++ b/main/data/unified_main_content.ui
@@ -1,94 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk" version="4.0"/>
<object class="GtkPaned" id="paned">
+ <property name="shrink-start-child">False</property>
+ <property name="shrink-end-child">False</property>
+ <property name="resize-start-child">False</property>
<property name="position">300</property>
- <property name="orientation">horizontal</property>
- <property name="visible">True</property>
<child>
<object class="GtkStack" id="left_stack">
- <property name="visible">True</property>
<child>
- <object class="GtkScrolledWindow" id="scrolled">
- <property name="expand">True</property>
- <property name="hscrollbar_policy">never</property>
- <property name="visible">True</property>
- <child>
- <object class="DinoUiConversationSelector" id="conversation_list">
- <property name="visible">True</property>
- </object>
- </child>
- </object>
- <packing>
+ <object class="GtkStackPage">
<property name="name">content</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox">
- <property name="margin">20</property>
- <property name="spacing">10</property>
- <property name="valign">start</property>
- <property name="halign">start</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkImage" id="conversation_list_placeholder_image">
- <property name="visible">True</property>
- <property name="valign">start</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="wrap">True</property>
- <property name="margin-top">70</property>
- <property name="margin-right">50</property>
- <property name="visible">True</property>
- <property name="valign">end</property>
- <property name="label" translatable="yes">Click here to start a conversation or join a channel.</property>
- <style>
- <class name="dim-label"/>
- </style>
+ <property name="child">
+ <object class="GtkScrolledWindow">
+ <property name="hscrollbar_policy">never</property>
+ <child>
+ <object class="DinoUiConversationSelector" id="conversation_list">
+ </object>
+ </child>
</object>
- </child>
+ </property>
</object>
- <packing>
- <property name="name">placeholder</property>
- </packing>
</child>
- </object>
- <packing>
- <property name="resize">False</property>
- <property name="shrink">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkOverlay">
- <property name="visible">True</property>
<child>
- <object class="GtkStack" id="right_stack">
- <property name="visible">True</property>
- <child>
- <object class="DinoUiConversationView" id="conversation_view">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="name">content</property>
- </packing>
- </child>
- <child>
+ <object class="GtkStackPage">
+ <property name="name">placeholder</property>
+ <property name="child">
<object class="GtkBox">
- <property name="orientation">vertical</property>
- <property name="expand">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="visible">True</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="margin-top">20</property>
+ <property name="margin-bottom">20</property>
+ <property name="spacing">10</property>
+ <property name="valign">start</property>
+ <property name="halign">start</property>
<child>
- <object class="GtkImage">
- <property name="icon-name">im.dino.Dino-symbolic</property>
- <property name="pixel-size">144</property>
- <property name="margin-bottom">30</property>
- <property name="visible">True</property>
+ <object class="GtkImage" id="conversation_list_placeholder_image">
+ <property name="valign">start</property>
<style>
<class name="dim-label"/>
</style>
@@ -96,52 +44,87 @@
</child>
<child>
<object class="GtkLabel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">You have no open chats</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
+ <property name="wrap">1</property>
+ <property name="margin-top">70</property>
+ <property name="margin-end">50</property>
+ <property name="valign">end</property>
+ <property name="label" translatable="1">Click here to start a conversation or join a channel.</property>
<style>
<class name="dim-label"/>
</style>
- <attributes>
- <attribute name="scale" value="1.2"/>
- </attributes>
</object>
</child>
</object>
- <packing>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkOverlay">
+ <property name="child">
+ <object class="GtkStack" id="right_stack">
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">content</property>
+ <property name="child">
+ <object class="DinoUiConversationView" id="conversation_view">
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
<property name="name">placeholder</property>
- </packing>
+ <property name="child">
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon-name">im.dino.Dino-symbolic</property>
+ <property name="pixel-size">144</property>
+ <property name="margin-bottom">30</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label" translatable="1">You have no open chats</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ <attributes>
+ <attribute name="scale" value="1.2"></attribute>
+ </attributes>
+ </object>
+ </child>
+ </object>
+ </property>
+ </object>
</child>
</object>
- </child>
+ </property>
<child type="overlay">
<object class="GtkRevealer" id="search_revealer">
- <property name="visible">True</property>
<property name="halign">end</property>
<property name="transition-type">slide-left</property>
<style>
<class name="dino-sidebar"/>
</style>
- <child>
- <object class="GtkFrame">
- <property name="visible">True</property>
+ <property name="child">
+ <object class="GtkFrame" id="search_frame">
<property name="width-request">400</property>
- <property name="shadow-type">none</property>
- <child>
- <object class="DinoUiGlobalSearch" id="search_box">
- <property name="visible">True</property>
- </object>
- </child>
</object>
- </child>
+ </property>
</object>
</child>
</object>
- <packing>
- <property name="resize">True</property>
- <property name="shrink">False</property>
- </packing>
</child>
</object>
-</interface>
+</interface> \ No newline at end of file
diff --git a/main/data/unified_window_placeholder.ui b/main/data/unified_window_placeholder.ui
index 88186f62..32fcd819 100644
--- a/main/data/unified_window_placeholder.ui
+++ b/main/data/unified_window_placeholder.ui
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
+ <requires lib="gtk" version="4.0"/>
<template class="DinoUiMainWindowPlaceholder">
<property name="valign">center</property>
<property name="visible">True</property>
@@ -8,14 +9,15 @@
<property name="orientation">vertical</property>
<property name="valign">center</property>
<property name="halign">center</property>
- <property name="hexpand">True</property>
- <property name="visible">True</property>
+ <property name="hexpand">1</property>
<child>
<object class="GtkImage">
<property name="icon-name">im.dino.Dino-symbolic</property>
<property name="pixel-size">144</property>
- <property name="margin">30</property>
- <property name="visible">True</property>
+ <property name="margin-start">30</property>
+ <property name="margin-end">30</property>
+ <property name="margin-top">30</property>
+ <property name="margin-bottom">30</property>
<style>
<class name="dim-label"/>
</style>
@@ -23,22 +25,18 @@
</child>
<child>
<object class="GtkLabel" id="title_label">
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
+ <property name="visible">0</property>
<style>
<class name="dim-label"/>
</style>
<attributes>
- <attribute name="scale" value="1.3"/>
+ <attribute name="scale" value="1.3"></attribute>
</attributes>
</object>
</child>
<child>
<object class="GtkLabel" id="label">
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
<property name="margin-top">5</property>
- <property name="visible">True</property>
<style>
<class name="dim-label"/>
</style>
@@ -48,7 +46,6 @@
<object class="GtkButton" id="primary_button">
<property name="margin-top">15</property>
<property name="halign">center</property>
- <property name="visible">True</property>
<style>
<class name="text-button"/>
<class name="suggested-action"/>
@@ -57,8 +54,9 @@
</child>
<child>
<object class="GtkButton" id="secondary_button">
+ <property name="visible">0</property>
<property name="halign">center</property>
- <property name="no_show_all">True</property>
+<!-- <property name="no_show_all">True</property>-->
<style>
<class name="text-button"/>
</style>