Browse Source

identity-verification-view: Port to Blueprint

fractal-13
Kévin Commaille 7 months ago committed by Kévin Commaille
parent
commit
10f7133fd0
  1. 24
      po/POTFILES.in
  2. 13
      src/blp-resources.in
  3. 79
      src/identity_verification_view/accept_request_page.blp
  4. 84
      src/identity_verification_view/accept_request_page.ui
  5. 72
      src/identity_verification_view/cancelled_page.blp
  6. 76
      src/identity_verification_view/cancelled_page.ui
  7. 94
      src/identity_verification_view/choose_method_page.blp
  8. 98
      src/identity_verification_view/choose_method_page.ui
  9. 63
      src/identity_verification_view/completed_page.blp
  10. 67
      src/identity_verification_view/completed_page.ui
  11. 91
      src/identity_verification_view/confirm_qr_code_page.blp
  12. 90
      src/identity_verification_view/confirm_qr_code_page.ui
  13. 104
      src/identity_verification_view/mod.blp
  14. 125
      src/identity_verification_view/mod.ui
  15. 66
      src/identity_verification_view/no_supported_methods_page.blp
  16. 69
      src/identity_verification_view/no_supported_methods_page.ui
  17. 62
      src/identity_verification_view/qr_code_scanned_page.blp
  18. 66
      src/identity_verification_view/qr_code_scanned_page.ui
  19. 59
      src/identity_verification_view/room_left_page.blp
  20. 62
      src/identity_verification_view/room_left_page.ui
  21. 29
      src/identity_verification_view/sas_emoji.blp
  22. 27
      src/identity_verification_view/sas_emoji.ui
  23. 87
      src/identity_verification_view/sas_page.blp
  24. 95
      src/identity_verification_view/sas_page.ui
  25. 95
      src/identity_verification_view/scan_qr_code_page.blp
  26. 99
      src/identity_verification_view/scan_qr_code_page.ui
  27. 84
      src/identity_verification_view/wait_for_other_page.blp
  28. 88
      src/identity_verification_view/wait_for_other_page.ui
  29. 13
      src/ui-resources.gresource.xml

24
po/POTFILES.in

@ -40,28 +40,28 @@ src/contrib/qr_code.rs
src/error_page.blp
src/error_page.rs
src/identity_verification_view/accept_request_page.rs
src/identity_verification_view/accept_request_page.ui
src/identity_verification_view/accept_request_page.blp
src/identity_verification_view/cancelled_page.rs
src/identity_verification_view/cancelled_page.ui
src/identity_verification_view/cancelled_page.blp
src/identity_verification_view/choose_method_page.rs
src/identity_verification_view/choose_method_page.ui
src/identity_verification_view/choose_method_page.blp
src/identity_verification_view/completed_page.rs
src/identity_verification_view/completed_page.ui
src/identity_verification_view/completed_page.blp
src/identity_verification_view/confirm_qr_code_page.rs
src/identity_verification_view/confirm_qr_code_page.ui
src/identity_verification_view/confirm_qr_code_page.blp
src/identity_verification_view/mod.rs
src/identity_verification_view/mod.ui
src/identity_verification_view/mod.blp
src/identity_verification_view/no_supported_methods_page.rs
src/identity_verification_view/no_supported_methods_page.ui
src/identity_verification_view/no_supported_methods_page.blp
src/identity_verification_view/qr_code_scanned_page.rs
src/identity_verification_view/qr_code_scanned_page.ui
src/identity_verification_view/room_left_page.ui
src/identity_verification_view/qr_code_scanned_page.blp
src/identity_verification_view/room_left_page.blp
src/identity_verification_view/sas_page.rs
src/identity_verification_view/sas_page.ui
src/identity_verification_view/sas_page.blp
src/identity_verification_view/scan_qr_code_page.rs
src/identity_verification_view/scan_qr_code_page.ui
src/identity_verification_view/scan_qr_code_page.blp
src/identity_verification_view/wait_for_other_page.rs
src/identity_verification_view/wait_for_other_page.ui
src/identity_verification_view/wait_for_other_page.blp
src/login/advanced_dialog.ui
src/login/greeter.ui
src/login/homeserver_page.rs

13
src/blp-resources.in

@ -42,4 +42,17 @@ components/rows/substring_entry_row.blp
components/rows/switch_loading_row.blp
components/user_page.blp
error_page.blp
identity_verification_view/accept_request_page.blp
identity_verification_view/cancelled_page.blp
identity_verification_view/choose_method_page.blp
identity_verification_view/completed_page.blp
identity_verification_view/confirm_qr_code_page.blp
identity_verification_view/mod.blp
identity_verification_view/no_supported_methods_page.blp
identity_verification_view/qr_code_scanned_page.blp
identity_verification_view/room_left_page.blp
identity_verification_view/sas_emoji.blp
identity_verification_view/sas_page.blp
identity_verification_view/scan_qr_code_page.blp
identity_verification_view/wait_for_other_page.blp
window.blp

79
src/identity_verification_view/accept_request_page.blp

@ -0,0 +1,79 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationAcceptRequestPage: Adw.Bin {
Gtk.ScrolledWindow scrolled_window {
hscrollbar-policy: never;
propagate-natural-height: true;
child: Adw.Clamp {
maximum-size: 400;
tightening-threshold: 300;
child: Gtk.Box {
orientation: vertical;
spacing: 18;
valign: center;
margin-bottom: 24;
Gtk.Label title {
wrap: true;
wrap-mode: word_char;
justify: center;
accessible-role: heading;
accessibility {
level: 1;
}
styles [
"title-1",
]
}
Gtk.Label instructions {
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
Gtk.Picture {
file: "resource:///org/gnome/Fractal/assets/other-device.svg";
accessible-role: presentation;
}
Adw.WrapBox {
child-spacing: 12;
line-spacing: 12;
align: 0.5;
$LoadingButton decline_btn {
content-label: _("Decline");
halign: center;
clicked => $decline() swapped;
styles [
"destructive-action",
"pill",
]
}
$LoadingButton accept_btn {
content-label: _("Verify");
halign: center;
clicked => $accept() swapped;
styles [
"suggested-action",
"pill",
]
}
}
};
};
}
}

84
src/identity_verification_view/accept_request_page.ui

@ -1,84 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationAcceptRequestPage" parent="AdwBin">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-height">True</property>
<property name="child">
<object class="AdwClamp">
<property name="maximum-size">400</property>
<property name="tightening-threshold">300</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<property name="valign">center</property>
<property name="margin-bottom">24</property>
<child>
<object class="GtkLabel" id="title">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="accessible-role">heading</property>
<accessibility>
<property name="level">1</property>
</accessibility>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="instructions">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="GtkPicture">
<property name="file">resource:///org/gnome/Fractal/assets/other-device.svg</property>
<property name="accessible-role">presentation</property>
</object>
</child>
<child>
<object class="AdwWrapBox">
<property name="child-spacing">12</property>
<property name="line-spacing">12</property>
<property name="align">0.5</property>
<child>
<object class="LoadingButton" id="decline_btn">
<property name="content-label" translatable="yes">Decline</property>
<property name="halign">center</property>
<signal name="clicked" handler="decline" swapped="yes"/>
<style>
<class name="destructive-action"/>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="LoadingButton" id="accept_btn">
<property name="content-label" translatable="yes">Verify</property>
<property name="halign">center</property>
<signal name="clicked" handler="accept" swapped="yes"/>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</template>
</interface>

72
src/identity_verification_view/cancelled_page.blp

@ -0,0 +1,72 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationCancelledPage: Adw.Bin {
Gtk.ScrolledWindow scrolled_window {
hscrollbar-policy: never;
propagate-natural-height: true;
child: Adw.Clamp {
maximum-size: 400;
tightening-threshold: 300;
child: Gtk.Box {
orientation: vertical;
spacing: 18;
valign: center;
Gtk.Label title {
wrap: true;
wrap-mode: word_char;
justify: center;
accessible-role: heading;
accessibility {
level: 1;
}
styles [
"title-1",
]
}
Gtk.Label message {
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
Adw.WrapBox {
child-spacing: 12;
line-spacing: 12;
align: 0.5;
$LoadingButton dismiss_btn {
halign: center;
content-label: _("_Done");
clicked => $dismiss() swapped;
styles [
"pill",
]
}
$LoadingButton try_again_btn {
halign: center;
content-label: _("Send New Request");
clicked => $try_again() swapped;
styles [
"suggested-action",
"pill",
]
}
}
};
};
}
}

76
src/identity_verification_view/cancelled_page.ui

@ -1,76 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationCancelledPage" parent="AdwBin">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-height">True</property>
<property name="child">
<object class="AdwClamp">
<property name="maximum-size">400</property>
<property name="tightening-threshold">300</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<property name="valign">center</property>
<child>
<object class="GtkLabel" id="title">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="accessible-role">heading</property>
<accessibility>
<property name="level">1</property>
</accessibility>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="message">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="AdwWrapBox">
<property name="child-spacing">12</property>
<property name="line-spacing">12</property>
<property name="align">0.5</property>
<child>
<object class="LoadingButton" id="dismiss_btn">
<property name="halign">center</property>
<property name="content-label" translatable="yes">_Done</property>
<signal name="clicked" handler="dismiss" swapped="yes"/>
<style>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="LoadingButton" id="try_again_btn">
<property name="halign">center</property>
<property name="content-label" translatable="yes">Send New Request</property>
<signal name="clicked" handler="try_again" swapped="yes"/>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</template>
</interface>

94
src/identity_verification_view/choose_method_page.blp

@ -0,0 +1,94 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationChooseMethodPage: Adw.Bin {
Gtk.ScrolledWindow scrolled_window {
hscrollbar-policy: never;
propagate-natural-height: true;
child: Adw.Clamp {
maximum-size: 400;
tightening-threshold: 300;
child: Gtk.Box {
orientation: vertical;
spacing: 18;
valign: center;
Gtk.Label title {
wrap: true;
wrap-mode: word_char;
justify: center;
accessible-role: heading;
accessibility {
level: 1;
}
styles [
"title-1",
]
}
Gtk.Label instructions {
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
$TriQRCode qrcode {
valign: center;
halign: center;
margin-top: 24;
margin-bottom: 24;
styles [
"card",
]
}
Gtk.Label cannot_scan_label {
label: _("Can’t scan QR code?");
wrap: true;
wrap-mode: word_char;
justify: center;
}
$LoadingButton scan_qr_code_btn {
halign: center;
content-label: _("Scan QR code with this session");
clicked => $start_qr_code_scan() swapped;
styles [
"pill",
]
}
$LoadingButton start_sas_btn {
content-label: _("Compare Emoji");
halign: center;
clicked => $start_sas() swapped;
styles [
"pill",
]
}
$LoadingButton cancel_btn {
halign: center;
content-label: _("Cancel Verification");
clicked => $cancel() swapped;
styles [
"destructive-action",
"pill",
]
}
};
};
}
}

98
src/identity_verification_view/choose_method_page.ui

@ -1,98 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationChooseMethodPage" parent="AdwBin">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-height">True</property>
<property name="child">
<object class="AdwClamp">
<property name="maximum-size">400</property>
<property name="tightening-threshold">300</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<property name="valign">center</property>
<child>
<object class="GtkLabel" id="title">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="accessible-role">heading</property>
<accessibility>
<property name="level">1</property>
</accessibility>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="instructions">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="TriQRCode" id="qrcode">
<property name="valign">center</property>
<property name="halign">center</property>
<property name="margin-top">24</property>
<property name="margin-bottom">24</property>
<style>
<class name="card"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="cannot_scan_label">
<property name="label" translatable="yes">Can’t scan QR code?</property>
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
</object>
</child>
<child>
<object class="LoadingButton" id="scan_qr_code_btn">
<property name="halign">center</property>
<property name="content-label" translatable="yes">Scan QR code with this session</property>
<signal name="clicked" handler="start_qr_code_scan" swapped="yes"/>
<style>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="LoadingButton" id="start_sas_btn">
<property name="content-label" translatable="yes">Compare Emoji</property>
<property name="halign">center</property>
<signal name="clicked" handler="start_sas" swapped="yes"/>
<style>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="LoadingButton" id="cancel_btn">
<property name="halign">center</property>
<property name="content-label" translatable="yes">Cancel Verification</property>
<signal name="clicked" handler="cancel" swapped="yes"/>
<style>
<class name="destructive-action"/>
<class name="pill"/>
</style>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</template>
</interface>

63
src/identity_verification_view/completed_page.blp

@ -0,0 +1,63 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationCompletedPage: Adw.Bin {
Gtk.ScrolledWindow scrolled_window {
hscrollbar-policy: never;
propagate-natural-height: true;
child: Adw.Clamp {
maximum-size: 400;
tightening-threshold: 300;
child: Gtk.Box {
orientation: vertical;
spacing: 18;
valign: center;
Gtk.Label title {
wrap: true;
wrap-mode: word_char;
justify: center;
accessible-role: heading;
accessibility {
level: 1;
}
styles [
"title-1",
]
}
Gtk.Picture {
file: "resource:///org/gnome/Fractal/assets/setup-complete.svg";
accessible-role: presentation;
}
Gtk.Label message {
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
Gtk.Button dismiss_btn {
can-shrink: true;
halign: center;
label: _("_Done");
use-underline: true;
clicked => $dismiss() swapped;
styles [
"suggested-action",
"pill",
]
}
};
};
}
}

67
src/identity_verification_view/completed_page.ui

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationCompletedPage" parent="AdwBin">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-height">True</property>
<property name="child">
<object class="AdwClamp">
<property name="maximum-size">400</property>
<property name="tightening-threshold">300</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<property name="valign">center</property>
<child>
<object class="GtkLabel" id="title">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="accessible-role">heading</property>
<accessibility>
<property name="level">1</property>
</accessibility>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkPicture">
<property name="file">resource:///org/gnome/Fractal/assets/setup-complete.svg</property>
<property name="accessible-role">presentation</property>
</object>
</child>
<child>
<object class="GtkLabel" id="message">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="dismiss_btn">
<property name="can-shrink">True</property>
<property name="halign">center</property>
<property name="label" translatable="yes">_Done</property>
<property name="use-underline">True</property>
<signal name="clicked" handler="dismiss" swapped="yes"/>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</template>
</interface>

91
src/identity_verification_view/confirm_qr_code_page.blp

@ -0,0 +1,91 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationConfirmQrCodePage: Adw.Bin {
Gtk.ScrolledWindow scrolled_window {
hscrollbar-policy: never;
propagate-natural-height: true;
child: Adw.Clamp {
maximum-size: 400;
tightening-threshold: 300;
child: Gtk.Box {
orientation: vertical;
spacing: 18;
valign: center;
Gtk.Label title {
label: _("Confirm Scan");
wrap: true;
wrap-mode: word_char;
justify: center;
accessible-role: heading;
accessibility {
level: 1;
}
styles [
"title-1",
]
}
Gtk.Picture {
file: "resource:///org/gnome/Fractal/assets/setup-complete.svg";
accessible-role: presentation;
}
Gtk.Label question {
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
Adw.WrapBox {
child-spacing: 12;
line-spacing: 12;
align: 0.5;
$LoadingButton cancel_btn {
content-label: _("Cancel");
halign: center;
clicked => $cancel() swapped;
accessibility {
described-by: [
question,
];
}
styles [
"destructive-action",
"pill",
]
}
$LoadingButton confirm_btn {
content-label: _("Confirm");
halign: center;
clicked => $confirm_scanned() swapped;
accessibility {
described-by: [
question,
];
}
styles [
"suggested-action",
"pill",
]
}
}
};
};
}
}

90
src/identity_verification_view/confirm_qr_code_page.ui

@ -1,90 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationConfirmQrCodePage" parent="AdwBin">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-height">True</property>
<property name="child">
<object class="AdwClamp">
<property name="maximum-size">400</property>
<property name="tightening-threshold">300</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<property name="valign">center</property>
<child>
<object class="GtkLabel" id="title">
<property name="label" translatable="yes">Confirm Scan</property>
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="accessible-role">heading</property>
<accessibility>
<property name="level">1</property>
</accessibility>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkPicture">
<property name="file">resource:///org/gnome/Fractal/assets/setup-complete.svg</property>
<property name="accessible-role">presentation</property>
</object>
</child>
<child>
<object class="GtkLabel" id="question">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="AdwWrapBox">
<property name="child-spacing">12</property>
<property name="line-spacing">12</property>
<property name="align">0.5</property>
<child>
<object class="LoadingButton" id="cancel_btn">
<property name="content-label" translatable="yes">Cancel</property>
<property name="halign">center</property>
<signal name="clicked" handler="cancel" swapped="yes"/>
<accessibility>
<relation name="described-by">question</relation>
</accessibility>
<style>
<class name="destructive-action"/>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="LoadingButton" id="confirm_btn">
<property name="content-label" translatable="yes">Confirm</property>
<property name="halign">center</property>
<signal name="clicked" handler="confirm_scanned" swapped="yes"/>
<accessibility>
<relation name="described-by">question</relation>
</accessibility>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</template>
</interface>

104
src/identity_verification_view/mod.blp

@ -0,0 +1,104 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationView: Adw.Bin {
accessibility {
label: _("Identity Verification");
}
Gtk.Stack main_stack {
transition-type: crossfade;
vexpand: true;
notify::transition-running => $handle_transition_running() swapped;
Gtk.StackPage {
name: "accept-request";
title: _("New Identity Verification Request");
child: $IdentityVerificationAcceptRequestPage accept_request_page {
verification: bind template.verification;
};
}
Gtk.StackPage {
name: "wait-for-other-party";
title: _("Wait for Other Party");
child: $IdentityVerificationWaitForOtherPage wait_for_other_page {
verification: bind template.verification;
};
}
Gtk.StackPage {
name: "no-supported-methods";
title: _("No Supported Verification Methods");
child: $IdentityVerificationNoSupportedMethodsPage no_supported_methods_page {
verification: bind template.verification;
};
}
Gtk.StackPage {
name: "choose-method";
title: _("Verification Request Methods");
child: $IdentityVerificationChooseMethodPage choose_method_page {
verification: bind template.verification;
};
}
Gtk.StackPage {
name: "qr-code-scanned";
title: _("Scan Complete");
child: $IdentityVerificationQrCodeScannedPage qr_code_scanned_page {
verification: bind template.verification;
};
}
Gtk.StackPage {
name: "confirm-qr-code";
title: _("Confirm Scan Result");
child: $IdentityVerificationConfirmQrCodePage confirm_qr_code_page {
verification: bind template.verification;
};
}
Gtk.StackPage {
name: "sas";
title: _("Short Authentication String Verification");
child: $IdentityVerificationSasPage sas_page {
verification: bind template.verification;
};
}
Gtk.StackPage {
name: "completed";
title: _("Verification Successful");
child: $IdentityVerificationCompletedPage completed_page {
verification: bind template.verification;
};
}
Gtk.StackPage {
name: "cancelled";
title: _("Verification Cancelled");
child: $IdentityVerificationCancelledPage cancelled_page {
verification: bind template.verification;
};
}
Gtk.StackPage {
name: "room-left";
title: _("Verification Cancelled");
child: $IdentityVerificationRoomLeftPage room_left_page {
verification: bind template.verification;
};
}
}
}

125
src/identity_verification_view/mod.ui

@ -1,125 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationView" parent="AdwBin">
<accessibility>
<property name="label" translatable="yes">Identity Verification</property>
</accessibility>
<child>
<object class="GtkStack" id="main_stack">
<property name="transition-type">crossfade</property>
<property name="vexpand">True</property>
<signal name="notify::transition-running" handler="handle_transition_running" swapped="yes"/>
<child>
<object class="GtkStackPage">
<property name="name">accept-request</property>
<property name="title" translatable="yes">New Identity Verification Request</property>
<property name="child">
<object class="IdentityVerificationAcceptRequestPage" id="accept_request_page">
<property name="verification" bind-source="IdentityVerificationView" bind-property="verification" bind-flags="sync-create"/>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">wait-for-other-party</property>
<property name="title" translatable="yes">Wait for Other Party</property>
<property name="child">
<object class="IdentityVerificationWaitForOtherPage" id="wait_for_other_page">
<property name="verification" bind-source="IdentityVerificationView" bind-property="verification" bind-flags="sync-create"/>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">no-supported-methods</property>
<property name="title" translatable="yes">No Supported Verification Methods</property>
<property name="child">
<object class="IdentityVerificationNoSupportedMethodsPage" id="no_supported_methods_page">
<property name="verification" bind-source="IdentityVerificationView" bind-property="verification" bind-flags="sync-create"/>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">choose-method</property>
<property name="title" translatable="yes">Verification Request Methods</property>
<property name="child">
<object class="IdentityVerificationChooseMethodPage" id="choose_method_page">
<property name="verification" bind-source="IdentityVerificationView" bind-property="verification" bind-flags="sync-create"/>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">qr-code-scanned</property>
<property name="title" translatable="yes">Scan Complete</property>
<property name="child">
<object class="IdentityVerificationQrCodeScannedPage" id="qr_code_scanned_page">
<property name="verification" bind-source="IdentityVerificationView" bind-property="verification" bind-flags="sync-create"/>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">confirm-qr-code</property>
<property name="title" translatable="yes">Confirm Scan Result</property>
<property name="child">
<object class="IdentityVerificationConfirmQrCodePage" id="confirm_qr_code_page">
<property name="verification" bind-source="IdentityVerificationView" bind-property="verification" bind-flags="sync-create"/>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">sas</property>
<property name="title" translatable="yes">Short Authentication String Verification</property>
<property name="child">
<object class="IdentityVerificationSasPage" id="sas_page">
<property name="verification" bind-source="IdentityVerificationView" bind-property="verification" bind-flags="sync-create"/>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">completed</property>
<property name="title" translatable="yes">Verification Successful</property>
<property name="child">
<object class="IdentityVerificationCompletedPage" id="completed_page">
<property name="verification" bind-source="IdentityVerificationView" bind-property="verification" bind-flags="sync-create"/>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">cancelled</property>
<property name="title" translatable="yes">Verification Cancelled</property>
<property name="child">
<object class="IdentityVerificationCancelledPage" id="cancelled_page">
<property name="verification" bind-source="IdentityVerificationView" bind-property="verification" bind-flags="sync-create"/>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">room-left</property>
<property name="title" translatable="yes">Verification Cancelled</property>
<property name="child">
<object class="IdentityVerificationRoomLeftPage" id="room_left_page">
<property name="verification" bind-source="IdentityVerificationView" bind-property="verification" bind-flags="sync-create"/>
</object>
</property>
</object>
</child>
</object>
</child>
</template>
</interface>

66
src/identity_verification_view/no_supported_methods_page.blp

@ -0,0 +1,66 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationNoSupportedMethodsPage: Adw.Bin {
Gtk.ScrolledWindow scrolled_window {
hscrollbar-policy: never;
propagate-natural-height: true;
child: Adw.Clamp {
maximum-size: 400;
tightening-threshold: 300;
child: Gtk.Box {
orientation: vertical;
spacing: 18;
valign: center;
Gtk.Label title {
wrap: true;
wrap-mode: word_char;
justify: center;
label: _("No Supported Verification Methods");
accessible-role: heading;
accessibility {
level: 1;
}
styles [
"title-1",
]
}
Gtk.Label message {
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
Gtk.Label instructions {
wrap: true;
wrap-mode: word_char;
justify: center;
label: _("You can accept this verification from another session or decline it for all your sessions");
styles [
"body",
]
}
$LoadingButton cancel_btn {
halign: center;
clicked => $cancel() swapped;
styles [
"pill",
]
}
};
};
}
}

69
src/identity_verification_view/no_supported_methods_page.ui

@ -1,69 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationNoSupportedMethodsPage" parent="AdwBin">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-height">True</property>
<property name="child">
<object class="AdwClamp">
<property name="maximum-size">400</property>
<property name="tightening-threshold">300</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<property name="valign">center</property>
<child>
<object class="GtkLabel" id="title">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="label" translatable="yes">No Supported Verification Methods</property>
<property name="accessible-role">heading</property>
<accessibility>
<property name="level">1</property>
</accessibility>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="message">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="instructions">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="label" translatable="yes">You can accept this verification from another session or decline it for all your sessions</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="LoadingButton" id="cancel_btn">
<property name="halign">center</property>
<signal name="clicked" handler="cancel" swapped="yes"/>
<style>
<class name="pill"/>
</style>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</template>
</interface>

62
src/identity_verification_view/qr_code_scanned_page.blp

@ -0,0 +1,62 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationQrCodeScannedPage: Adw.Bin {
Gtk.ScrolledWindow scrolled_window {
hscrollbar-policy: never;
propagate-natural-height: true;
child: Adw.Clamp {
maximum-size: 400;
tightening-threshold: 300;
child: Gtk.Box {
orientation: vertical;
spacing: 18;
valign: center;
Gtk.Label title {
label: _("Scan Complete");
wrap: true;
wrap-mode: word_char;
justify: center;
accessible-role: heading;
accessibility {
level: 1;
}
styles [
"title-1",
]
}
Gtk.Picture {
file: "resource:///org/gnome/Fractal/assets/setup-complete.svg";
accessible-role: presentation;
}
Gtk.Label message {
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
$LoadingButton cancel_btn {
halign: center;
content-label: _("Cancel Verification");
clicked => $cancel() swapped;
styles [
"destructive-action",
"pill",
]
}
};
};
}
}

66
src/identity_verification_view/qr_code_scanned_page.ui

@ -1,66 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationQrCodeScannedPage" parent="AdwBin">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-height">True</property>
<property name="child">
<object class="AdwClamp">
<property name="maximum-size">400</property>
<property name="tightening-threshold">300</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<property name="valign">center</property>
<child>
<object class="GtkLabel" id="title">
<property name="label" translatable="yes">Scan Complete</property>
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="accessible-role">heading</property>
<accessibility>
<property name="level">1</property>
</accessibility>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkPicture">
<property name="file">resource:///org/gnome/Fractal/assets/setup-complete.svg</property>
<property name="accessible-role">presentation</property>
</object>
</child>
<child>
<object class="GtkLabel" id="message">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="LoadingButton" id="cancel_btn">
<property name="halign">center</property>
<property name="content-label" translatable="yes">Cancel Verification</property>
<signal name="clicked" handler="cancel" swapped="yes"/>
<style>
<class name="destructive-action"/>
<class name="pill"/>
</style>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</template>
</interface>

59
src/identity_verification_view/room_left_page.blp

@ -0,0 +1,59 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationRoomLeftPage: Adw.Bin {
Gtk.ScrolledWindow {
hscrollbar-policy: never;
propagate-natural-height: true;
child: Adw.Clamp {
maximum-size: 400;
tightening-threshold: 300;
child: Gtk.Box {
orientation: vertical;
spacing: 18;
valign: center;
Gtk.Label {
wrap: true;
wrap-mode: word_char;
justify: center;
label: _("Verification Cancelled");
accessible-role: heading;
accessibility {
level: 1;
}
styles [
"title-1",
]
}
Gtk.Label {
wrap: true;
wrap-mode: word_char;
justify: center;
label: _("You are no longer in the room where the verification was taking place");
styles [
"body",
]
}
Gtk.Button dismiss_btn {
halign: center;
can-shrink: true;
label: _("_Done");
use-underline: true;
clicked => $dismiss() swapped;
styles [
"pill",
]
}
};
};
}
}

62
src/identity_verification_view/room_left_page.ui

@ -1,62 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationRoomLeftPage" parent="AdwBin">
<child>
<object class="GtkScrolledWindow">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-height">True</property>
<property name="child">
<object class="AdwClamp">
<property name="maximum-size">400</property>
<property name="tightening-threshold">300</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<property name="valign">center</property>
<child>
<object class="GtkLabel">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="label" translatable="yes">Verification Cancelled</property>
<property name="accessible-role">heading</property>
<accessibility>
<property name="level">1</property>
</accessibility>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="label" translatable="yes">You are no longer in the room where the verification was taking place</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="dismiss_btn">
<property name="halign">center</property>
<property name="can-shrink">True</property>
<property name="label" translatable="yes">_Done</property>
<property name="use-underline">True</property>
<signal name="clicked" handler="dismiss" swapped="yes"/>
<style>
<class name="pill"/>
</style>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</template>
</interface>

29
src/identity_verification_view/sas_emoji.blp

@ -0,0 +1,29 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationSasEmoji: Adw.Bin {
accessibility {
labelled-by: [
emoji,
];
described-by: [
emoji_name,
];
}
valign: center;
Gtk.Box {
spacing: 6;
orientation: vertical;
Gtk.Label emoji {
styles [
"emoji",
]
}
Gtk.Label emoji_name {}
}
}

27
src/identity_verification_view/sas_emoji.ui

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationSasEmoji" parent="AdwBin">
<accessibility>
<relation name="labelled-by">emoji</relation>
<relation name="described-by">emoji_name</relation>
</accessibility>
<property name="valign">center</property>
<child>
<object class="GtkBox">
<property name="spacing">6</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="emoji">
<style>
<class name="emoji"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="emoji_name">
</object>
</child>
</object>
</child>
</template>
</interface>

87
src/identity_verification_view/sas_page.blp

@ -0,0 +1,87 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationSasPage: Adw.Bin {
Gtk.ScrolledWindow scrolled_window {
hscrollbar-policy: never;
propagate-natural-height: true;
child: Adw.Clamp {
maximum-size: 400;
tightening-threshold: 300;
child: Gtk.Box {
orientation: vertical;
spacing: 18;
valign: center;
Gtk.Label title {
wrap: true;
wrap-mode: word_char;
justify: center;
accessible-role: heading;
accessibility {
level: 1;
}
styles [
"title-1",
]
}
Gtk.Label instructions {
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
Gtk.Box row_1 {
valign: center;
halign: center;
spacing: 30;
margin-top: 24;
}
Gtk.Box row_2 {
valign: center;
halign: center;
spacing: 30;
margin-bottom: 24;
}
Adw.WrapBox {
child-spacing: 12;
line-spacing: 12;
align: 0.5;
$LoadingButton mismatch_btn {
content-label: _("Do Not Match");
halign: center;
clicked => $data_mismatch() swapped;
styles [
"destructive-action",
"pill",
]
}
$LoadingButton match_btn {
content-label: _("Match");
halign: center;
clicked => $data_match() swapped;
styles [
"suggested-action",
"pill",
]
}
}
};
};
}
}

95
src/identity_verification_view/sas_page.ui

@ -1,95 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationSasPage" parent="AdwBin">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-height">True</property>
<property name="child">
<object class="AdwClamp">
<property name="maximum-size">400</property>
<property name="tightening-threshold">300</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<property name="valign">center</property>
<child>
<object class="GtkLabel" id="title">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="accessible-role">heading</property>
<accessibility>
<property name="level">1</property>
</accessibility>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="instructions">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="GtkBox" id="row_1">
<property name="valign">center</property>
<property name="halign">center</property>
<property name="spacing">30</property>
<property name="margin-top">24</property>
</object>
</child>
<child>
<object class="GtkBox" id="row_2">
<property name="valign">center</property>
<property name="halign">center</property>
<property name="spacing">30</property>
<property name="margin-bottom">24</property>
</object>
</child>
<child>
<object class="AdwWrapBox">
<property name="child-spacing">12</property>
<property name="line-spacing">12</property>
<property name="align">0.5</property>
<child>
<object class="LoadingButton" id="mismatch_btn">
<!-- Translators: During emoji comparison, this is the label of the button to click when the emojis do not match. -->
<property name="content-label" translatable="yes">Do Not Match</property>
<property name="halign">center</property>
<signal name="clicked" handler="data_mismatch" swapped="yes"/>
<style>
<class name="destructive-action"/>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="LoadingButton" id="match_btn">
<!-- Translators: During emoji comparison, this is the label of the button to click when the emojis match. -->
<property name="content-label" translatable="yes">Match</property>
<property name="halign">center</property>
<signal name="clicked" handler="data_match" swapped="yes"/>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</template>
</interface>

95
src/identity_verification_view/scan_qr_code_page.blp

@ -0,0 +1,95 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationScanQrCodePage: Adw.Bin {
Gtk.ScrolledWindow scrolled_window {
hscrollbar-policy: never;
propagate-natural-height: true;
child: Adw.Clamp {
maximum-size: 400;
tightening-threshold: 300;
child: Gtk.Box {
orientation: vertical;
spacing: 18;
valign: center;
Gtk.Label title {
wrap: true;
wrap-mode: word_char;
justify: center;
accessible-role: heading;
accessibility {
level: 1;
}
styles [
"title-1",
]
}
Gtk.Label instructions {
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
Adw.Bin qrcode_scanner_bin {
margin-top: 12;
margin-bottom: 12;
valign: center;
halign: center;
}
Gtk.Label cannot_scan_label {
label: _("Can’t scan QR code?");
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
Gtk.Button show_qr_code_btn {
halign: center;
can-shrink: true;
label: _("Show a QR code to scan with another device");
clicked => $show_qrcode() swapped;
styles [
"pill",
]
}
$LoadingButton start_sas_btn {
content-label: _("Compare Emoji");
halign: center;
clicked => $start_sas() swapped;
styles [
"pill",
]
}
$LoadingButton cancel_btn {
halign: center;
content-label: _("Cancel Verification");
clicked => $cancel() swapped;
styles [
"destructive-action",
"pill",
]
}
};
};
}
}

99
src/identity_verification_view/scan_qr_code_page.ui

@ -1,99 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationScanQrCodePage" parent="AdwBin">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-height">True</property>
<property name="child">
<object class="AdwClamp">
<property name="maximum-size">400</property>
<property name="tightening-threshold">300</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<property name="valign">center</property>
<child>
<object class="GtkLabel" id="title">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="accessible-role">heading</property>
<accessibility>
<property name="level">1</property>
</accessibility>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="instructions">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="AdwBin" id="qrcode_scanner_bin">
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="valign">center</property>
<property name="halign">center</property>
</object>
</child>
<child>
<object class="GtkLabel" id="cannot_scan_label">
<property name="label" translatable="yes">Can’t scan QR code?</property>
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="show_qr_code_btn">
<property name="halign">center</property>
<property name="can-shrink">True</property>
<property name="label" translatable="yes">Show a QR code to scan with another device</property>
<signal name="clicked" handler="show_qrcode" swapped="yes"/>
<style>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="LoadingButton" id="start_sas_btn">
<property name="content-label" translatable="yes">Compare Emoji</property>
<property name="halign">center</property>
<signal name="clicked" handler="start_sas" swapped="yes"/>
<style>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="LoadingButton" id="cancel_btn">
<property name="halign">center</property>
<property name="content-label" translatable="yes">Cancel Verification</property>
<signal name="clicked" handler="cancel" swapped="yes"/>
<style>
<class name="destructive-action"/>
<class name="pill"/>
</style>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</template>
</interface>

84
src/identity_verification_view/wait_for_other_page.blp

@ -0,0 +1,84 @@
using Gtk 4.0;
using Adw 1;
template $IdentityVerificationWaitForOtherPage: Adw.Bin {
Gtk.ScrolledWindow scrolled_window {
hscrollbar-policy: never;
propagate-natural-height: true;
child: Adw.Clamp {
maximum-size: 400;
tightening-threshold: 300;
child: Gtk.Box {
orientation: vertical;
spacing: 18;
valign: center;
halign: center;
Gtk.Label title {
wrap: true;
wrap-mode: word_char;
justify: center;
accessible-role: heading;
accessibility {
level: 1;
}
styles [
"title-1",
]
}
Gtk.Label instructions {
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
Gtk.Label trust {
label: _("To be secure, the verification should happen in person or use a trusted way of communication.");
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
Gtk.Picture {
file: "resource:///org/gnome/Fractal/icons/scalable/status/other-device.svg";
accessible-role: presentation;
}
Gtk.Label {
label: _("The request is not showing up on the other device?");
wrap: true;
wrap-mode: word_char;
justify: center;
styles [
"body",
]
}
$LoadingButton cancel_btn {
halign: center;
content-label: _("Cancel Verification Request");
clicked => $cancel() swapped;
styles [
"destructive-action",
"pill",
]
}
};
};
}
}

88
src/identity_verification_view/wait_for_other_page.ui

@ -1,88 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="IdentityVerificationWaitForOtherPage" parent="AdwBin">
<child>
<object class="GtkScrolledWindow" id="scrolled_window">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-height">True</property>
<property name="child">
<object class="AdwClamp">
<property name="maximum-size">400</property>
<property name="tightening-threshold">300</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<property name="valign">center</property>
<property name="halign">center</property>
<child>
<object class="GtkLabel" id="title">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<property name="accessible-role">heading</property>
<accessibility>
<property name="level">1</property>
</accessibility>
<style>
<class name="title-1"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="instructions">
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="trust">
<property name="label" translatable="yes">To be secure, the verification should happen in person or use a trusted way of communication.</property>
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="GtkPicture">
<property name="file">resource:///org/gnome/Fractal/icons/scalable/status/other-device.svg</property>
<property name="accessible-role">presentation</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="yes">The request is not showing up on the other device?</property>
<property name="wrap">True</property>
<property name="wrap-mode">word-char</property>
<property name="justify">center</property>
<style>
<class name="body"/>
</style>
</object>
</child>
<child>
<object class="LoadingButton" id="cancel_btn">
<property name="halign">center</property>
<property name="content-label" translatable="yes">Cancel Verification Request</property>
<signal name="clicked" handler="cancel" swapped="yes"/>
<style>
<class name="destructive-action"/>
<class name="pill"/>
</style>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</template>
</interface>

13
src/ui-resources.gresource.xml

@ -1,19 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/Fractal/ui/">
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/accept_request_page.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/cancelled_page.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/choose_method_page.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/completed_page.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/confirm_qr_code_page.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/mod.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/no_supported_methods_page.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/qr_code_scanned_page.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/room_left_page.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/sas_emoji.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/sas_page.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/scan_qr_code_page.ui</file>
<file compressed="true" preprocess="xml-stripblanks">identity_verification_view/wait_for_other_page.ui</file>
<file compressed="true" preprocess="xml-stripblanks">login/advanced_dialog.ui</file>
<file compressed="true" preprocess="xml-stripblanks">login/greeter.ui</file>
<file compressed="true" preprocess="xml-stripblanks">login/homeserver_page.ui</file>

Loading…
Cancel
Save