diff --git a/data/resources/resources.gresource.xml b/data/resources/resources.gresource.xml
index 4b3bba14..9bb4e7cb 100644
--- a/data/resources/resources.gresource.xml
+++ b/data/resources/resources.gresource.xml
@@ -50,104 +50,5 @@
sas-emoji/vi.json
sas-emoji/zh_Hans.json
style.css
- ui/account-settings-change-password-subpage.ui
- ui/account-settings-deactivate-account-subpage.ui
- ui/account-settings-device-row.ui
- ui/account-settings-devices-page.ui
- ui/account-settings-import-export-keys-subpage.ui
- ui/account-settings-log-out-subpage.ui
- ui/account-settings-notifications-page.ui
- ui/account-settings-security-page.ui
- ui/account-settings-user-page.ui
- ui/account-settings.ui
- ui/attachment-dialog.ui
- ui/avatar-with-selection.ui
- ui/components-action-button.ui
- ui/components-audio-player.ui
- ui/components-auth-dialog.ui
- ui/components-avatar.ui
- ui/components-button-row.ui
- ui/components-editable-avatar.ui
- ui/components-loading-listbox-row.ui
- ui/components-location-viewer.ui
- ui/components-media-content-viewer.ui
- ui/components-reaction-chooser.ui
- ui/components-toastable-window.ui
- ui/components-video-player.ui
- ui/content-audio-history-viewer-row.ui
- ui/content-audio-history-viewer.ui
- ui/content-completion-popover.ui
- ui/content-completion-row.ui
- ui/content-divider-row.ui
- ui/content-explore-item.ui
- ui/content-explore-server-row.ui
- ui/content-explore-servers-popover.ui
- ui/content-explore.ui
- ui/content-file-history-viewer-row.ui
- ui/content-file-history-viewer.ui
- ui/content-invite-subpage.ui
- ui/content-invite.ui
- ui/content-invitee-item.ui
- ui/content-invitee-row.ui
- ui/content-media-history-viewer-item.ui
- ui/content-media-history-viewer.ui
- ui/content-member-item.ui
- ui/content-member-page-list-view.ui
- ui/content-member-page-membership-subpage-row.ui
- ui/content-member-page.ui
- ui/content-member-row.ui
- ui/content-message-audio.ui
- ui/content-message-file.ui
- ui/content-message-location.ui
- ui/content-message-media.ui
- ui/content-message-reaction-list.ui
- ui/content-message-reaction.ui
- ui/content-message-reply.ui
- ui/content-message-row.ui
- ui/content-public-room-row.ui
- ui/content-read-receipts-list.ui
- ui/content-room-details-general-page.ui
- ui/content-room-details.ui
- ui/content-room-history.ui
- ui/content-state-creation.ui
- ui/content-state-row.ui
- ui/content-state-tombstone.ui
- ui/content-typing-row.ui
- ui/content-verification-info-bar.ui
- ui/content.ui
- ui/context-menu-bin.ui
- ui/create-dm-dialog-user-row.ui
- ui/create-dm-dialog.ui
- ui/error-page.ui
- ui/event-menu.ui
- ui/event-source-dialog.ui
- ui/greeter.ui
- ui/identity-verification-widget.ui
- ui/join-room-dialog.ui
- ui/login-advanced-dialog.ui
- ui/login-homeserver-page.ui
- ui/login-idp-button.ui
- ui/login-method-page.ui
- ui/login-sso-page.ui
- ui/login.ui
- ui/media-viewer.ui
- ui/member-menu.ui
- ui/pill.ui
- ui/qr-code-scanner.ui
- ui/room-creation.ui
- ui/room-title.ui
- ui/session-item-row.ui
- ui/session-verification.ui
- ui/session-view.ui
- ui/shortcuts.ui
- ui/sidebar-account-switcher.ui
- ui/sidebar-category-row.ui
- ui/sidebar-entry-row.ui
- ui/sidebar-room-row.ui
- ui/sidebar-verification-row.ui
- ui/sidebar.ui
- ui/spinner-button.ui
- ui/verification-emoji.ui
- ui/window.ui
diff --git a/data/resources/ui/content-explore-item.ui b/data/resources/ui/content-explore-item.ui
deleted file mode 100644
index bd83d29e..00000000
--- a/data/resources/ui/content-explore-item.ui
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- False
- False
-
-
-
-
-
diff --git a/data/resources/ui/content-invitee-item.ui b/data/resources/ui/content-invitee-item.ui
deleted file mode 100644
index 07f1ad3c..00000000
--- a/data/resources/ui/content-invitee-item.ui
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
- True
- False
-
-
-
-
-
-
diff --git a/data/resources/ui/content-member-item.ui b/data/resources/ui/content-member-item.ui
deleted file mode 100644
index 3e15849d..00000000
--- a/data/resources/ui/content-member-item.ui
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- False
- False
-
-
-
-
-
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 1054fe0a..31c4c5ea 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -4,66 +4,26 @@ data/org.gnome.Fractal.desktop.in.in
data/org.gnome.Fractal.gschema.xml.in
data/org.gnome.Fractal.metainfo.xml.in.in
-# UI files
-data/resources/ui/account-settings-change-password-subpage.ui
-data/resources/ui/account-settings-deactivate-account-subpage.ui
-data/resources/ui/account-settings-device-row.ui
-data/resources/ui/account-settings-devices-page.ui
-data/resources/ui/account-settings-log-out-subpage.ui
-data/resources/ui/account-settings-import-export-keys-subpage.ui
-data/resources/ui/account-settings-notifications-page.ui
-data/resources/ui/account-settings-user-page.ui
-data/resources/ui/account-settings-security-page.ui
-data/resources/ui/account-settings.ui
-data/resources/ui/attachment-dialog.ui
-data/resources/ui/components-auth-dialog.ui
-data/resources/ui/components-loading-listbox-row.ui
-data/resources/ui/content-audio-history-viewer.ui
-data/resources/ui/content-explore-servers-popover.ui
-data/resources/ui/content-explore.ui
-data/resources/ui/content-file-history-viewer.ui
-data/resources/ui/content-invite-subpage.ui
-data/resources/ui/content-invite.ui
-data/resources/ui/content-media-history-viewer.ui
-data/resources/ui/content-member-page.ui
-data/resources/ui/content-message-file.ui
-data/resources/ui/content-message-row.ui
-data/resources/ui/content-room-details.ui
-data/resources/ui/content-room-details-general-page.ui
-data/resources/ui/content-room-history.ui
-data/resources/ui/content-state-creation.ui
-data/resources/ui/content-state-tombstone.ui
-data/resources/ui/content.ui
-data/resources/ui/create-dm-dialog.ui
-data/resources/ui/error-page.ui
-data/resources/ui/event-menu.ui
-data/resources/ui/event-source-dialog.ui
-data/resources/ui/greeter.ui
-data/resources/ui/identity-verification-widget.ui
-data/resources/ui/join-room-dialog.ui
-data/resources/ui/login-advanced-dialog.ui
-data/resources/ui/login-homeserver-page.ui
-data/resources/ui/login-method-page.ui
-data/resources/ui/login-sso-page.ui
-data/resources/ui/login.ui
-data/resources/ui/media-viewer.ui
-data/resources/ui/member-menu.ui
-data/resources/ui/room-creation.ui
-data/resources/ui/session-verification.ui
-data/resources/ui/shortcuts.ui
-data/resources/ui/sidebar.ui
-data/resources/ui/qr-code-scanner.ui
-
-# Rust files
+src/account_switcher/mod.ui
src/application.rs
+src/components/auth_dialog.ui
src/components/editable_avatar.rs
+src/components/loading_listbox_row.ui
src/components/location_viewer.rs
src/components/media_content_viewer.rs
+src/contrib/qr_code_scanner/mod.ui
src/error_page.rs
+src/error_page.ui
src/greeter.rs
+src/greeter.ui
+src/login/advanced_dialog.ui
src/login/homeserver_page.rs
+src/login/homeserver_page.ui
src/login/method_page.rs
+src/login/method_page.ui
src/login/mod.rs
+src/login/mod.ui
+src/login/sso_page.ui
src/secret.rs
src/session/model/session.rs
src/session/model/room/member.rs
@@ -74,42 +34,80 @@ src/session/model/sidebar/category/category_type.rs
src/session/model/sidebar/entry/entry_type.rs
src/session/view/account_settings/devices_page/device_list.rs
src/session/view/account_settings/devices_page/device_row.rs
+src/session/view/account_settings/devices_page/device_row.ui
+src/session/view/account_settings/devices_page/mod.ui
+src/session/view/account_settings/mod.ui
src/session/view/account_settings/notifications_page.rs
+src/session/view/account_settings/notifications_page.ui
src/session/view/account_settings/security_page/import_export_keys_subpage.rs
+src/session/view/account_settings/security_page/import_export_keys_subpage.ui
src/session/view/account_settings/security_page/mod.rs
+src/session/view/account_settings/security_page/mod.ui
src/session/view/account_settings/user_page/change_password_subpage.rs
+src/session/view/account_settings/user_page/change_password_subpage.ui
src/session/view/account_settings/user_page/deactivate_account_subpage.rs
+src/session/view/account_settings/user_page/deactivate_account_subpage.ui
+src/session/view/account_settings/user_page/log_out_subpage.ui
src/session/view/account_settings/user_page/mod.rs
+src/session/view/account_settings/user_page/mod.ui
+src/session/view/content/explore/mod.ui
src/session/view/content/explore/public_room_row.rs
+src/session/view/content/explore/servers_popover.ui
src/session/view/content/invite.rs
+src/session/view/content/invite.ui
+src/session/view/content/mod.ui
src/session/view/content/room_details/general_page/mod.rs
+src/session/view/content/room_details/general_page/mod.ui
src/session/view/content/room_details/history_viewer/audio_row.rs
+src/session/view/content/room_details/history_viewer/audio.ui
src/session/view/content/room_details/history_viewer/file_row.rs
+src/session/view/content/room_details/history_viewer/file.ui
+src/session/view/content/room_details/history_viewer/media.ui
src/session/view/content/room_details/invite_subpage/invitee_list.rs
src/session/view/content/room_details/invite_subpage/mod.rs
+src/session/view/content/room_details/invite_subpage/mod.ui
+src/session/view/content/room_details/member_page/member_menu.ui
src/session/view/content/room_details/member_page/mod.rs
+src/session/view/content/room_details/member_page/mod.ui
src/session/view/content/room_details/mod.rs
+src/session/view/content/room_details/mod.ui
+src/session/view/content/room_history/attachment_dialog.ui
src/session/view/content/room_history/event_actions.rs
+src/session/view/content/room_history/event_actions.ui
src/session/view/content/room_history/item_row.rs
src/session/view/content/room_history/message_row/audio.rs
src/session/view/content/room_history/message_row/content.rs
+src/session/view/content/room_history/message_row/file.ui
src/session/view/content/room_history/message_row/location.rs
src/session/view/content/room_history/message_row/media.rs
+src/session/view/content/room_history/message_row/mod.ui
src/session/view/content/room_history/mod.rs
+src/session/view/content/room_history/mod.ui
src/session/view/content/room_history/state_row/creation.rs
+src/session/view/content/room_history/state_row/creation.ui
src/session/view/content/room_history/state_row/mod.rs
src/session/view/content/room_history/state_row/tombstone.rs
+src/session/view/content/room_history/state_row/tombstone.ui
src/session/view/content/room_history/typing_row.rs
src/session/view/content/room_history/verification_info_bar.rs
src/session/view/content/verification/identity_verification_widget.rs
+src/session/view/content/verification/identity_verification_widget.ui
src/session/view/content/verification/session_verification.rs
+src/session/view/content/verification/session_verification.ui
src/session/view/create_dm_dialog/mod.rs
+src/session/view/create_dm_dialog/mod.ui
+src/session/view/event_source_dialog.ui
src/session/view/join_room_dialog.rs
+src/session/view/join_room_dialog.ui
src/session/view/media_viewer.rs
+src/session/view/media_viewer.ui
src/session/view/room_creation.rs
+src/session/view/room_creation.ui
src/session/view/sidebar/category_row.rs
+src/session/view/sidebar/mod.ui
src/session/view/sidebar/room_row.rs
src/session/view/sidebar/row.rs
+src/shortcuts.ui
src/user_facing_error.rs
src/utils/media.rs
src/utils/matrix.rs
diff --git a/scripts/checks.sh b/scripts/checks.sh
index d5550e79..fb6591bf 100755
--- a/scripts/checks.sh
+++ b/scripts/checks.sh
@@ -304,7 +304,7 @@ run_typos() {
#
# This assumes the following:
# - POTFILES is located at 'po/POTFILES.in'
-# - UI (Glade) files are located in 'data/resources/ui' and use 'translatable="yes"'
+# - UI (Glade) files are located in 'src' and use 'translatable="yes"'
# - Rust files are located in 'src' and use '*gettext' methods or macros
check_potfiles() {
echo -e "$Checking po/POTFILES.in…"
@@ -354,7 +354,7 @@ check_potfiles() {
fi
# Get UI files with 'translatable="yes"'.
- ui_files=(`grep -lIr 'translatable="yes"' data/resources/ui/*`)
+ ui_files=(`grep -lIr 'translatable="yes"' src/*`)
# Get Rust files with regex 'gettext(_f)?\('.
rs_files=(`grep -lIrE 'gettext(_f)?\(' src/*`)
@@ -463,11 +463,12 @@ check_potfiles() {
fi
}
-# Check if files in data/resources/resources.gresource.xml are sorted alphabetically.
+# Check if files in resource files are sorted alphabetically.
check_resources() {
- echo -e "$Checking data/resources/resources.gresource.xml…"
+ echo -e "$Checking $1…"
local ret=0
+ local files=()
# Get files.
regex="(.*)"
@@ -475,14 +476,14 @@ check_resources() {
if [[ $line =~ $regex ]]; then
files+=("${BASH_REMATCH[1]}")
fi
- done < data/resources/resources.gresource.xml
+ done < $1
# Check sorted alphabetically
- to_sort=("${files[@]}")
+ local to_sort=("${files[@]}")
sort
for i in ${!files[@]}; do
if [[ "${files[$i]}" != "${to_sort[$i]}" ]]; then
- echo -e "$error Found file '${files[$i]#src/}' before '${to_sort[$i]#src/}' in resources.gresource.xml"
+ echo -e "$error Found file '${files[$i]#src/}' before '${to_sort[$i]#src/}' in $1"
ret=1
break
fi
@@ -490,11 +491,11 @@ check_resources() {
if [[ ret -eq 1 ]]; then
echo ""
- echo -e " Checking data/resources/resources.gresource.xml result: $fail"
+ echo -e " Checking $1 result: $fail"
echo "Please fix the above issues"
exit 1
else
- echo -e " Checking data/resources/resources.gresource.xml result: $ok"
+ echo -e " Checking $1 result: $ok"
fi
}
@@ -600,10 +601,19 @@ echo ""
if [[ $git_staged -eq 1 ]]; then
staged_files=`git diff --name-only --cached | xargs ls -d 2>/dev/null | grep data/resources/resources.gresource.xml`
if [[ -z $staged_files ]]; then
- check_resources
+ check_resources "data/resources/resources.gresource.xml"
fi
else
- check_resources
+ check_resources "data/resources/resources.gresource.xml"
+fi
+echo ""
+if [[ $git_staged -eq 1 ]]; then
+ staged_files=`git diff --name-only --cached | xargs ls -d 2>/dev/null | grep src/ui-resources.gresource.xml`
+ if [[ -z $staged_files ]]; then
+ check_resources "src/ui-resources.gresource.xml"
+ fi
+else
+ check_resources "src/ui-resources.gresource.xml"
fi
echo ""
run_cargo_sort
diff --git a/src/account_switcher/avatar_with_selection.rs b/src/account_switcher/avatar_with_selection.rs
index 9446bb13..54f3cbd4 100644
--- a/src/account_switcher/avatar_with_selection.rs
+++ b/src/account_switcher/avatar_with_selection.rs
@@ -10,7 +10,7 @@ mod imp {
use super::*;
#[derive(Debug, Default, CompositeTemplate)]
- #[template(resource = "/org/gnome/Fractal/avatar-with-selection.ui")]
+ #[template(resource = "/org/gnome/Fractal/ui/account_switcher/avatar_with_selection.ui")]
pub struct AvatarWithSelection {
#[template_child]
pub child_avatar: TemplateChild,
diff --git a/data/resources/ui/avatar-with-selection.ui b/src/account_switcher/avatar_with_selection.ui
similarity index 100%
rename from data/resources/ui/avatar-with-selection.ui
rename to src/account_switcher/avatar_with_selection.ui
diff --git a/src/account_switcher/mod.rs b/src/account_switcher/mod.rs
index 2fbcb573..3b9af1f8 100644
--- a/src/account_switcher/mod.rs
+++ b/src/account_switcher/mod.rs
@@ -18,7 +18,7 @@ mod imp {
use super::*;
#[derive(Debug, Default, CompositeTemplate)]
- #[template(resource = "/org/gnome/Fractal/sidebar-account-switcher.ui")]
+ #[template(resource = "/org/gnome/Fractal/ui/account_switcher/mod.ui")]
pub struct AccountSwitcher {
#[template_child]
pub sessions: TemplateChild,
diff --git a/data/resources/ui/sidebar-account-switcher.ui b/src/account_switcher/mod.ui
similarity index 94%
rename from data/resources/ui/sidebar-account-switcher.ui
rename to src/account_switcher/mod.ui
index c1e29d2a..c7b7f1a8 100644
--- a/data/resources/ui/sidebar-account-switcher.ui
+++ b/src/account_switcher/mod.ui
@@ -30,7 +30,7 @@
diff --git a/src/account_switcher/session_item.rs b/src/account_switcher/session_item.rs
index 30dd51ee..f1f5b435 100644
--- a/src/account_switcher/session_item.rs
+++ b/src/account_switcher/session_item.rs
@@ -10,7 +10,7 @@ mod imp {
use super::*;
#[derive(Debug, Default, CompositeTemplate)]
- #[template(resource = "/org/gnome/Fractal/session-item-row.ui")]
+ #[template(resource = "/org/gnome/Fractal/ui/account_switcher/session_item.ui")]
pub struct SessionItemRow {
#[template_child]
pub avatar: TemplateChild,
diff --git a/data/resources/ui/session-item-row.ui b/src/account_switcher/session_item.ui
similarity index 100%
rename from data/resources/ui/session-item-row.ui
rename to src/account_switcher/session_item.ui
diff --git a/src/components/action_button.rs b/src/components/action_button.rs
index dc38078d..87fb875c 100644
--- a/src/components/action_button.rs
+++ b/src/components/action_button.rs
@@ -40,7 +40,7 @@ mod imp {
use super::*;
#[derive(Debug, Default, CompositeTemplate)]
- #[template(resource = "/org/gnome/Fractal/components-action-button.ui")]
+ #[template(resource = "/org/gnome/Fractal/ui/components/action_button.ui")]
pub struct ActionButton {
/// The icon used in the default state.
pub icon_name: RefCell,
diff --git a/data/resources/ui/components-action-button.ui b/src/components/action_button.ui
similarity index 100%
rename from data/resources/ui/components-action-button.ui
rename to src/components/action_button.ui
diff --git a/src/components/audio_player.rs b/src/components/audio_player.rs
index 24c3bd88..e48cf3bf 100644
--- a/src/components/audio_player.rs
+++ b/src/components/audio_player.rs
@@ -10,7 +10,7 @@ mod imp {
use super::*;
#[derive(Debug, Default, CompositeTemplate)]
- #[template(resource = "/org/gnome/Fractal/components-audio-player.ui")]
+ #[template(resource = "/org/gnome/Fractal/ui/components/audio-player.ui")]
pub struct AudioPlayer {
/// The media file to play.
pub media_file: RefCell