epic: port to blueprint

This commit is contained in:
Peter Eisenmann
2022-03-26 14:08:19 +01:00
parent d98745fa46
commit 908daa33cc
47 changed files with 2033 additions and 1975 deletions

3
.gitignore vendored
View File

@@ -7,4 +7,5 @@ tmp/
# temporary files
*~
# temporary glade files
\#*
\#*
/subprojects/blueprint-compiler

View File

@@ -1,3 +1,31 @@
blueprints = custom_target('blueprints',
input: files(
'ui/pages/confirm.blp',
'ui/pages/disk.blp',
'ui/pages/done.blp',
'ui/pages/encrypt.blp',
'ui/pages/install.blp',
'ui/pages/internet.blp',
'ui/pages/keyboard_layout.blp',
'ui/pages/language.blp',
'ui/pages/locale.blp',
'ui/pages/restart.blp',
'ui/pages/software.blp',
'ui/pages/user.blp',
'ui/pages/failed.blp',
'ui/widgets/device_row.blp',
'ui/widgets/horizontally_scrollable_list.blp',
'ui/widgets/language_row.blp',
'ui/widgets/progress_row.blp',
'ui/widgets/selection_row.blp',
'ui/widgets/software_row.blp',
'ui/widgets/no_partitions_row.blp',
'ui/confirm_quit_popup.blp',
'ui/main_window.blp',
),
output: '.',
command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],
)
pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
gnome = import('gnome')
@@ -5,6 +33,7 @@ gnome.compile_resources(
meson.project_name(),
meson.project_name() + '.gresource.xml',
gresource_bundle: true,
dependencies: blueprints,
install: true,
install_dir: pkgdatadir
)

View File

@@ -0,0 +1,72 @@
using Gtk 4.0;
template ConfirmQuitPopup : .AdwWindow {
destroy-with-parent: "True";
content:
WindowHandle {
Box {
margin-start: 12;
margin-end: 12;
margin-top: 12;
margin-bottom: 12;
orientation: vertical;
spacing: 12;
Image {
pixel-size: 128;
icon-name: "dialog-warning-symbolic";
}
Label {
halign: center;
valign: center;
/* Translators: Shown if user wants to close window with running installation */
label: _("Stopping a running installation will leave the disk in an undefined state that might potentially be harmful");
justify: center;
wrap: true;
max-width-chars: 45;
styles [
"title-2",
]
}
Box {
spacing: 6;
homogeneous: true;
Button continue_button {
/* Translators: Underscore can not be the same as for 'Stop Installation'. */
label: _("_Continue Installation");
focusable: true;
receives-default: true;
use-underline: true;
styles [
"suggested-action",
"pill",
]
}
Button stop_button {
/* Translators: Underscore can not be the same as for 'Continue Installation'. */
label: _("_Stop Installation");
focusable: true;
receives-default: true;
use-underline: true;
styles [
"destructive-action",
"pill",
]
}
}
}
}
;
}

View File

@@ -1,71 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<requires lib="libadwaita" version="1.0"/>
<template class="ConfirmQuitPopup" parent="AdwWindow">
<property name="destroy-with-parent">True</property>
<property name="content">
<object class="GtkWindowHandle">
<child>
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkImage">
<property name="pixel-size">128</property>
<property name="icon-name">dialog-warning-symbolic</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="halign">center</property>
<property name="valign">center</property>
<property name="label" translatable="1" comments="Shown if user wants to close window with running installation">Stopping a running installation will leave the disk in an undefined state that might potentially be harmful</property>
<property name="justify">center</property>
<property name="wrap">1</property>
<property name="max-width-chars">45</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child>
<object class="GtkBox">
<property name="spacing">6</property>
<property name="homogeneous">1</property>
<child>
<object class="GtkButton" id="continue_button">
<property name="label" translatable="1" comments="Underscore can not be the same as for &apos;Stop Installation&apos;.">_Continue Installation</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="use-underline">1</property>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="stop_button">
<property name="label" translatable="1" comments="Underscore can not be the same as for &apos;Continue Installation&apos;.">_Stop Installation</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="use-underline">1</property>
<style>
<class name="destructive-action"/>
<class name="pill"/>
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</property>
</template>
</interface>

View File

@@ -0,0 +1,103 @@
using Gtk 4.0;
template OsInstallerWindow : .AdwApplicationWindow {
width-request: "360";
height-request: "480";
default-width: "420";
default-height: "560";
destroy => _on_quit();
Box {
orientation: vertical;
.AdwHeaderBar {
show-start-title-buttons: "0";
show-end-title-buttons: "0";
[start]
Box {
valign: start;
WindowControls {
side: start;
}
Revealer previous_revealer {
transition-type: crossfade;
margin-end: 6;
child:
Button {
action-name: "app.previous-page";
focusable: true;
focus-on-click: false;
icon-name: "go-previous-symbolic";
}
;
}
Revealer next_revealer {
transition-type: crossfade;
child:
Button {
action-name: "app.next-page";
focusable: true;
focus-on-click: false;
icon-name: "go-next-symbolic";
}
;
}
}
[title]
Stack image_stack {
margin-bottom: 12;
margin-top: 12;
transition-type: crossfade;
StackPage {
name: "1";
child:
Image {
pixel-size: 128;
}
;
}
StackPage {
name: "2";
child:
Image {
pixel-size: 128;
}
;
}
}
[end]
WindowControls {
valign: start;
side: end;
}
styles [
"flat",
]
}
.AdwClamp {
vexpand: "1";
margin-start: "6";
margin-end: "6";
maximum-size: "400";
tightening-threshold: "320";
Stack main_stack {
transition-type: slide_left_right;
}
}
}
}

View File

@@ -1,110 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<requires lib="libadwaita" version="1.0"/>
<template class="OsInstallerWindow" parent="AdwApplicationWindow">
<property name="width-request">360</property>
<property name="height-request">480</property>
<property name="default-width">420</property>
<property name="default-height">560</property>
<signal name="destroy" handler="_on_quit" swapped="no"/>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="AdwHeaderBar">
<property name="show-start-title-buttons">0</property>
<property name="show-end-title-buttons">0</property>
<child type="start">
<object class="GtkBox">
<property name="valign">start</property>
<child>
<object class="GtkWindowControls">
<property name="side">start</property>
</object>
</child>
<child>
<object class="GtkRevealer" id="previous_revealer">
<property name="transition-type">crossfade</property>
<property name="margin-end">6</property>
<property name="child">
<object class="GtkButton">
<property name="action-name">app.previous-page</property>
<property name="focusable">1</property>
<property name="focus-on-click">0</property>
<property name="icon-name">go-previous-symbolic</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkRevealer" id="next_revealer">
<property name="transition-type">crossfade</property>
<property name="child">
<object class="GtkButton">
<property name="action-name">app.next-page</property>
<property name="focusable">1</property>
<property name="focus-on-click">0</property>
<property name="icon-name">go-next-symbolic</property>
</object>
</property>
</object>
</child>
</object>
</child>
<child type="title">
<object class="GtkStack" id="image_stack">
<property name="margin-bottom">12</property>
<property name="margin-top">12</property>
<property name="transition-type">crossfade</property>
<child>
<object class="GtkStackPage">
<property name="name">1</property>
<property name="child">
<object class="GtkImage">
<property name="pixel-size">128</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">2</property>
<property name="child">
<object class="GtkImage">
<property name="pixel-size">128</property>
</object>
</property>
</object>
</child>
</object>
</child>
<child type="end">
<object class="GtkWindowControls">
<property name="valign">start</property>
<property name="side">end</property>
</object>
</child>
<style>
<class name="flat"/>
</style>
</object>
</child>
<child>
<object class="AdwClamp">
<property name="vexpand">1</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="maximum-size">400</property>
<property name="tightening-threshold">320</property>
<child>
<object class="GtkStack" id="main_stack">
<property name="transition-type">slide-left-right</property>
</object>
</child>
</object>
</child>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,49 @@
using Gtk 4.0;
template ConfirmPage : Box {
margin-bottom: 18;
orientation: vertical;
spacing: 18;
Box {
halign: center;
valign: end;
orientation: vertical;
spacing: 6;
Label {
/* Translators: Followed by a disk or partition name */
label: _("This will delete all data on");
wrap: true;
styles [
"title-2",
]
}
Label disk_label {
wrap: true;
wrap-mode: word_char;
styles [
"title-3",
]
}
}
Button confirm_button {
/* Translators: Button label to confirm disk deletion */
label: _("_Confirm");
focusable: true;
receives-default: true;
halign: center;
use-underline: true;
styles [
"destructive-action",
"pill",
]
}
}

View File

@@ -1,48 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="ConfirmPage" parent="GtkBox">
<property name="margin-bottom">18</property>
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<child>
<object class="GtkBox">
<property name="halign">center</property>
<property name="valign">end</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Followed by a disk or partition name">This will delete all data on</property>
<property name="wrap">1</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="disk_label">
<property name="wrap">1</property>
<property name="wrap-mode">word-char</property>
<style>
<class name="title-3"/>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="confirm_button">
<property name="label" translatable="1" comments="Button label to confirm disk deletion">_Confirm</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="halign">center</property>
<property name="use-underline">1</property>
<style>
<class name="destructive-action"/>
<class name="pill"/>
</style>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,220 @@
using Gtk 4.0;
template DiskPage : Box {
orientation: vertical;
Stack text_stack {
transition-type: slide_left_right;
StackPage {
name: "disks";
child:
CenterBox {
[center]
Label {
halign: center;
/* Translators: Explanation for disk selection page. */
label: _("Select Drive for Installation");
justify: center;
wrap: true;
styles [
"title-2",
]
}
[end]
Button refresh_button {
halign: end;
width-request: 32;
focusable: true;
halign: end;
valign: center;
Image {
icon-name: "view-refresh-symbolic";
}
styles [
"circular",
"flat",
]
}
}
;
}
StackPage {
name: "partitions";
child:
Label disk_label {
justify: center;
wrap: true;
styles [
"title-2",
]
}
;
}
}
Box {
vexpand: true;
orientation: vertical;
ScrolledWindow {
vexpand: true;
focusable: true;
margin-start: 6;
margin-end: 6;
hscrollbar-policy: external;
propagate-natural-width: true;
propagate-natural-height: true;
child:
Viewport {
vscroll-policy: natural;
child:
Stack list_stack {
margin-start: 18;
margin-end: 18;
margin-top: 6;
margin-bottom: 6;
vhomogeneous: false;
transition-type: slide_left_right;
StackPage {
name: "disks";
child:
ListBox disk_list {
receives-default: true;
valign: start;
styles [
"boxed-list",
]
}
;
}
StackPage {
name: "partitions";
child:
Box {
orientation: vertical;
spacing: 12;
ListBox whole_disk_list {
selection-mode: none;
ListBoxRow {
name: "back_row";
focusable: true;
selectable: false;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
spacing: 12;
Label disk_size {
width-chars: 5;
max-width-chars: 7;
xalign: 1;
styles [
"dim-label",
]
}
Box {
hexpand: true;
orientation: vertical;
spacing: 2;
Label {
valign: end;
/* Translators: Label to go back to overview of all disks */
label: _("Use Whole Disk");
wrap: true;
xalign: 0;
}
Label disk_device_path {
valign: start;
width-chars: 5;
max-width-chars: 7;
xalign: 0;
styles [
"dim-label",
]
}
}
Image {
icon-name: "go-next-symbolic";
}
}
;
}
styles [
"boxed-list",
]
}
ListBox partition_list {
valign: start;
styles [
"boxed-list",
]
}
}
;
}
}
;
}
;
styles [
"scrollbar",
]
}
styles [
"scrollable-box",
]
}
Button settings_button {
/* Translators: Button label to open disk management tool. Underscore can not be for same as for 'Reload' */
label: _("_Manage Disks");
focusable: true;
halign: center;
valign: end;
margin-top: 12;
margin-bottom: 18;
use-underline: true;
styles [
"pill",
]
}
}

View File

@@ -1,214 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="DiskPage" parent="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkStack" id="text_stack">
<property name="transition-type">slide-left-right</property>
<child>
<object class="GtkStackPage">
<property name="name">disks</property>
<property name="child">
<object class="GtkCenterBox">
<child type="center">
<object class="GtkLabel">
<property name="halign">center</property>
<property name="label" translatable="1" comments="Explanation for disk selection page.">Select Drive for Installation</property>
<property name="justify">center</property>
<property name="wrap">1</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child type="end">
<object class="GtkButton" id="refresh_button">
<property name="halign">end</property>
<property name="width-request">32</property>
<property name="focusable">1</property>
<property name="halign">end</property>
<property name="valign">center</property>
<child>
<object class="GtkImage">
<property name="icon-name">view-refresh-symbolic</property>
</object>
</child>
<style>
<class name="circular"/>
<class name="flat"/>
</style>
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">partitions</property>
<property name="child">
<object class="GtkLabel" id="disk_label">
<property name="justify">center</property>
<property name="wrap">1</property>
<style>
<class name="title-2"/>
</style>
</object>
</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="vexpand">1</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="vexpand">1</property>
<property name="focusable">1</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="hscrollbar-policy">external</property>
<property name="propagate-natural-width">1</property>
<property name="propagate-natural-height">1</property>
<property name="child">
<object class="GtkViewport">
<property name="vscroll-policy">natural</property>
<property name="child">
<object class="GtkStack" id="list_stack">
<property name="margin-start">18</property>
<property name="margin-end">18</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="vhomogeneous">0</property>
<property name="transition-type">slide-left-right</property>
<child>
<object class="GtkStackPage">
<property name="name">disks</property>
<property name="child">
<object class="GtkListBox" id="disk_list">
<property name="receives-default">1</property>
<property name="valign">start</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">partitions</property>
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkListBox" id="whole_disk_list">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<property name="name">back_row</property>
<property name="focusable">1</property>
<property name="selectable">0</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel" id="disk_size">
<property name="width-chars">5</property>
<property name="max-width-chars">7</property>
<property name="xalign">1</property>
<style>
<class name="dim-label"/>
</style>
</object>
</child>
<child>
<object class="GtkBox">
<property name="hexpand">1</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkLabel">
<property name="valign">end</property>
<property name="label" translatable="1" comments="Label to go back to overview of all disks">Use Whole Disk</property>
<property name="wrap">1</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkLabel" id="disk_device_path">
<property name="valign">start</property>
<property name="width-chars">5</property>
<property name="max-width-chars">7</property>
<property name="xalign">0</property>
<style>
<class name="dim-label"/>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkImage">
<property name="icon-name">go-next-symbolic</property>
</object>
</child>
</object>
</property>
</object>
</child>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
<child>
<object class="GtkListBox" id="partition_list">
<property name="valign">start</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
</object>
</property>
</object>
</child>
</object>
</property>
</object>
</property>
<style>
<class name="scrollbar"/>
</style>
</object>
</child>
<style>
<class name="scrollable-box"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="settings_button">
<property name="label" translatable="1" comments="Button label to open disk management tool. Underscore can not be for same as for &apos;Reload&apos;">_Manage Disks</property>
<property name="focusable">1</property>
<property name="halign">center</property>
<property name="valign">end</property>
<property name="margin-top">12</property>
<property name="margin-bottom">18</property>
<property name="use-underline">1</property>
<style>
<class name="pill"/>
</style>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,50 @@
using Gtk 4.0;
template DonePage : Box {
orientation: vertical;
Box {
halign: center;
margin-bottom: 18;
orientation: vertical;
spacing: 12;
Label {
/* Translators: Informative label after successful installation */
label: _("Installation complete");
styles [
"title-2",
]
}
Button restart_button {
/* Translators: Button label to restart system directly after successful installation. Underscore can not be for same letter as 'Restart Later'. */
label: _("_Restart System");
focusable: true;
receives-default: true;
use-underline: true;
styles [
"suggested-action",
"pill",
]
}
Button {
/* Translators: Button label to delay restart after successful installation. Underscore can not be for same letter as 'Restart System'. */
label: _("Restart _Later");
focusable: true;
receives-default: true;
action-name: "app.quit";
use-underline: true;
styles [
"pill",
]
}
}
}

View File

@@ -1,47 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="DonePage" parent="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="halign">center</property>
<property name="margin-bottom">18</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Informative label after successful installation">Installation complete</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="restart_button">
<property name="label" translatable="1" comments="Button label to restart system directly after successful installation. Underscore can not be for same letter as &apos;Restart Later&apos;.">_Restart System</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="use-underline">1</property>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="GtkButton">
<property name="label" translatable="1" comments="Button label to delay restart after successful installation. Underscore can not be for same letter as &apos;Restart System&apos;.">Restart _Later</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="action-name">app.quit</property>
<property name="use-underline">1</property>
<style>
<class name="pill"/>
</style>
</object>
</child>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,142 @@
using Gtk 4.0;
template EncryptPage : Box {
margin-bottom: 18;
orientation: vertical;
spacing: 12;
Box {
orientation: vertical;
ListBox default_list {
selection-mode: none;
ListBoxRow {
name: "encryption";
focusable: true;
selectable: false;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
spacing: 12;
Label {
/* Translators: Used with option to enable disk encryption */
label: _("Encrypt Installation");
wrap: true;
}
Switch switch {
focusable: true;
receives-default: true;
valign: center;
}
}
;
}
styles [
"boxed-list",
]
}
Revealer revealer {
vexpand: true;
valign: start;
transition-duration: 200;
child:
ListBox {
margin-top: 12;
selection-mode: none;
ListBoxRow {
focusable: true;
activatable: false;
selectable: false;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
orientation: vertical;
spacing: 12;
Box {
spacing: 12;
Label {
hexpand: true;
/* Translators: Description of entry field for pin/password used for disk encryption */
label: _("Encryption PIN");
wrap: true;
xalign: 0;
}
Entry pin_field {
hexpand: true;
activates-default: true;
width-chars: 10;
max-width-chars: 16;
truncate-multiline: true;
/* Translators: Placeholder for disk encryption pin/password field */
placeholder-text: _("PIN");
input-purpose: pin;
}
}
Box {
spacing: 12;
Image {
icon-name: "dialog-warning-symbolic";
}
Label {
hexpand: true;
/* Translators: Warning label for disk encryption */
label: _("Memorize this PIN well. Without it you will not be able to access your files.");
wrap: true;
}
}
}
;
}
styles [
"boxed-list",
]
}
;
}
}
Button continue_button {
/* Translators: On button. */
label: _("_Continue");
focusable: true;
receives-default: true;
halign: center;
valign: center;
use-underline: true;
styles [
"suggested-action",
"pill",
]
}
}

View File

@@ -1,139 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="EncryptPage" parent="GtkBox">
<property name="margin-bottom">18</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkListBox" id="default_list">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<property name="name">encryption</property>
<property name="focusable">1</property>
<property name="selectable">0</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Used with option to enable disk encryption">Encrypt Installation</property>
<property name="wrap">1</property>
</object>
</child>
<child>
<object class="GtkSwitch" id="switch">
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="valign">center</property>
</object>
</child>
</object>
</property>
</object>
</child>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
<child>
<object class="GtkRevealer" id="revealer">
<property name="vexpand">1</property>
<property name="valign">start</property>
<property name="transition-duration">200</property>
<property name="child">
<object class="GtkListBox">
<property name="margin-top">12</property>
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<property name="focusable">1</property>
<property name="activatable">0</property>
<property name="selectable">0</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkBox">
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="hexpand">1</property>
<property name="label" translatable="1" comments="Description of entry field for pin/password used for disk encryption">Encryption PIN</property>
<property name="wrap">1</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkEntry" id="pin_field">
<property name="hexpand">1</property>
<property name="activates-default">1</property>
<property name="width-chars">10</property>
<property name="max-width-chars">16</property>
<property name="truncate-multiline">1</property>
<property name="placeholder-text" translatable="1" comments="Placeholder for disk encryption pin/password field">PIN</property>
<property name="input-purpose">pin</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="spacing">12</property>
<child>
<object class="GtkImage">
<property name="icon-name">dialog-warning-symbolic</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="hexpand">1</property>
<property name="label" translatable="1" comments="Warning label for disk encryption">Memorize this PIN well. Without it you will not be able to access your files.</property>
<property name="wrap">1</property>
</object>
</child>
</object>
</child>
</object>
</property>
</object>
</child>
<style>
<class name="boxed-list"/>
</style>
</object>
</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton" id="continue_button">
<property name="label" translatable="1" comments="On button.">_Continue</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="use-underline">1</property>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,49 @@
using Gtk 4.0;
template FailedPage : Box {
margin-bottom: 18;
orientation: vertical;
spacing: 12;
Label {
halign: center;
valign: center;
/* Translators: Shown as simple informative text */
label: _("The installation failed");
justify: center;
wrap: true;
max-width-chars: 50;
styles [
"title-2",
]
}
Box terminal_box {
orientation: vertical;
styles [
"terminal-box",
]
}
Button search_button {
focusable: true;
receives-default: true;
halign: center;
Label {
/* Translators: Shown if installation fails. */
label: _("Search for Help on the Internet");
use-markup: true;
wrap: true;
}
styles [
"pill",
]
}
}

View File

@@ -1,50 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="FailedPage" parent="GtkBox">
<property name="margin-bottom">18</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="halign">center</property>
<property name="valign">center</property>
<property name="label" translatable="1" comments="Shown as simple informative text">The installation failed</property>
<property name="justify">center</property>
<property name="wrap">1</property>
<property name="max-width-chars">50</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child>
<object class="GtkBox" id="terminal_box">
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<style>
<class name="terminal-box"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="search_button">
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="halign">center</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Shown if installation fails.">Search for Help on the Internet</property>
<property name="use-markup">1</property>
<property name="wrap">1</property>
</object>
</child>
<style>
<class name="pill"/>
</style>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,71 @@
using Gtk 4.0;
template InstallPage : Box {
margin-bottom: 18;
orientation: vertical;
spacing: 12;
Box {
vexpand: true;
orientation: vertical;
spacing: 12;
Label {
/* Translators: Simple label used during Installation */
label: _("Installing");
styles [
"title-2",
]
}
Stack stack {
vexpand: true;
transition-type: crossfade;
StackPage {
name: "spinner";
child:
Spinner spinner {
halign: center;
height-request: 64;
width-request: 64;
}
;
}
StackPage {
name: "terminal";
child:
Box terminal_box {
orientation: vertical;
styles [
"terminal-box",
]
}
;
}
}
}
ToggleButton terminal_button {
focusable: true;
/* Translators: Hover information on toggle button that shows terminal output during installation. */
tooltip-text: _("Show Terminal Output");
halign: center;
Image {
icon-name: "utilities-terminal-symbolic";
}
styles [
"pill",
]
}
}

View File

@@ -1,73 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="InstallPage" parent="GtkBox">
<property name="margin-bottom">18</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkBox">
<property name="vexpand">1</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Simple label used during Installation">Installing</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child>
<object class="GtkStack" id="stack">
<property name="vexpand">1</property>
<property name="transition-type">crossfade</property>
<child>
<object class="GtkStackPage">
<property name="name">spinner</property>
<property name="child">
<object class="GtkSpinner" id="spinner">
<property name="halign">center</property>
<property name="height-request">64</property>
<property name="width-request">64</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">terminal</property>
<property name="child">
<object class="GtkBox" id="terminal_box">
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<style>
<class name="terminal-box"/>
</style>
</object>
</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkToggleButton" id="terminal_button">
<property name="focusable">1</property>
<property name="tooltip-text" translatable="1" comments="Hover information on toggle button that shows terminal output during installation.">Show Terminal Output</property>
<property name="halign">center</property>
<child>
<object class="GtkImage">
<property name="icon-name">utilities-terminal-symbolic</property>
</object>
</child>
<style>
<class name="pill"/>
</style>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,29 @@
using Gtk 4.0;
template InternetPage : Box {
margin-bottom: 18;
orientation: vertical;
spacing: 18;
Button settings_button {
focusable: true;
receives-default: true;
halign: center;
valign: center;
use-underline: true;
Label {
/* Translators: On button for opening wifi settings. */
label: _("_Setup Internet Connection");
use-underline: true;
justify: center;
wrap: true;
}
styles [
"suggested-action",
"pill",
]
}
}

View File

@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="InternetPage" parent="GtkBox">
<property name="margin-bottom">18</property>
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<child>
<object class="GtkButton" id="settings_button">
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="use-underline">1</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="On button for opening wifi settings.">_Setup Internet Connection</property>
<property name="use-underline">1</property>
<property name="justify">center</property>
<property name="wrap">1</property>
</object>
</child>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,157 @@
using Gtk 4.0;
template KeyboardLayoutPage : Box {
orientation: vertical;
spacing: 12;
Label {
/* Translators: Explanation for keyboard layout selection page. */
label: _("Select Keyboard Layout");
justify: center;
wrap: true;
styles [
"title-2",
]
}
Entry {
focusable: true;
valign: start;
activates-default: true;
truncate-multiline: true;
primary-icon-activatable: false;
primary-icon-sensitive: false;
/* Translators: Used as placeholder in a entry field to try out a keyboard layout */
placeholder-text: _("Test the Keyboard Layout Here");
}
Box {
hexpand: true;
orientation: vertical;
ScrolledWindow {
focusable: true;
hexpand: true;
vexpand: true;
margin-start: 0;
margin-end: 0;
hscrollbar-policy: external;
propagate-natural-width: true;
propagate-natural-height: true;
child:
Stack stack {
margin-start: 24;
margin-end: 24;
margin-top: 12;
margin-bottom: 12;
vhomogeneous: false;
transition-type: crossfade;
StackPage {
name: "layouts";
child:
Box {
valign: start;
orientation: vertical;
spacing: 12;
ListBox change_language_list {
valign: start;
hexpand: true;
selection-mode: none;
ListBoxRow {
focusable: true;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
spacing: 12;
Label {
/* Translators: Followed by a language name. */
label: _("Keyboard Language");
wrap: true;
}
Label language_label {
hexpand: true;
wrap: true;
xalign: 1;
}
Image {
icon-name: "emblem-system-symbolic";
}
}
;
}
styles [
"boxed-list",
]
}
ListBox layout_list {
styles [
"boxed-list",
]
}
}
;
}
StackPage {
name: "languages";
child:
ListBox language_list {
valign: start;
styles [
"boxed-list",
]
}
;
}
}
;
styles [
"scrollbar",
]
}
styles [
"scrollable-box",
]
}
Button continue_button {
/* Translators: On button. */
label: _("_Continue");
sensitive: false;
focusable: true;
receives-default: true;
halign: center;
valign: end;
margin-bottom: 18;
use-underline: true;
styles [
"suggested-action",
"pill",
]
}
}

View File

@@ -1,154 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<requires lib="libadwaita" version="1.0"/>
<template class="KeyboardLayoutPage" parent="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Explanation for keyboard layout selection page.">Select Keyboard Layout</property>
<property name="justify">center</property>
<property name="wrap">1</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child>
<object class="GtkEntry">
<property name="focusable">1</property>
<property name="valign">start</property>
<property name="activates-default">1</property>
<property name="truncate-multiline">1</property>
<property name="primary-icon-activatable">0</property>
<property name="primary-icon-sensitive">0</property>
<property name="placeholder-text" translatable="1" comments="Used as placeholder in a entry field to try out a keyboard layout">Test the Keyboard Layout Here</property>
</object>
</child>
<child>
<object class="GtkBox">
<property name="hexpand">1</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="focusable">1</property>
<property name="hexpand">1</property>
<property name="vexpand">1</property>
<property name="margin-start">0</property>
<property name="margin-end">0</property>
<property name="hscrollbar-policy">external</property>
<property name="propagate-natural-width">1</property>
<property name="propagate-natural-height">1</property>
<property name="child">
<object class="GtkStack" id="stack">
<property name="margin-start">24</property>
<property name="margin-end">24</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="vhomogeneous">0</property>
<property name="transition-type">crossfade</property>
<child>
<object class="GtkStackPage">
<property name="name">layouts</property>
<property name="child">
<object class="GtkBox">
<property name="valign">start</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkListBox" id="change_language_list">
<property name="valign">start</property>
<property name="hexpand">1</property>
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<property name="focusable">1</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Followed by a language name.">Keyboard Language</property>
<property name="wrap">1</property>
</object>
</child>
<child>
<object class="GtkLabel" id="language_label">
<property name="hexpand">1</property>
<property name="wrap">1</property>
<property name="xalign">1</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="icon-name">emblem-system-symbolic</property>
</object>
</child>
</object>
</property>
</object>
</child>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
<child>
<object class="GtkListBox" id="layout_list">
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">languages</property>
<property name="child">
<object class="GtkListBox" id="language_list">
<property name="valign">start</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</property>
</object>
</child>
</object>
</property>
<style>
<class name="scrollbar"/>
</style>
</object>
</child>
<style>
<class name="scrollable-box"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="continue_button">
<property name="label" translatable="1" comments="On button.">_Continue</property>
<property name="sensitive">0</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="halign">center</property>
<property name="valign">end</property>
<property name="margin-bottom">18</property>
<property name="use-underline">1</property>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,85 @@
using Gtk 4.0;
template LanguagePage : Overlay {
child: Box {
orientation: vertical;
ScrolledWindow {
focusable: true;
hscrollbar-policy: external;
vscrollbar-policy: external;
propagate-natural-width: true;
propagate-natural-height: true;
child:
Viewport {
vscroll-policy: natural;
child:
Box {
margin-top: 12;
margin-bottom: 70;
orientation: vertical;
spacing: 12;
ListBox language_list {
styles [
"boxed-list",
]
}
Revealer show_all_revealer {
transition-type: slide_up;
child:
Button show_all_button {
width-request: 32;
focusable: true;
receives-default: true;
halign: center;
valign: center;
margin-bottom: 18;
Image {
icon-name: "view-more-symbolic";
}
styles [
"pill",
]
}
;
}
}
;
}
;
}
}
;
[overlay]
Box {
can-target: false;
height-request: 64;
valign: end;
orientation: vertical;
styles [
"bottom-gradient",
]
}
[overlay]
Box {
can-target: false;
height-request: 16;
valign: start;
orientation: vertical;
styles [
"top-gradient",
]
}
}

View File

@@ -1,88 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="LanguagePage" parent="GtkOverlay">
<property name="child">
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="focusable">1</property>
<property name="hscrollbar-policy">external</property>
<property name="vscrollbar-policy">external</property>
<property name="propagate-natural-width">1</property>
<property name="propagate-natural-height">1</property>
<property name="child">
<object class="GtkViewport">
<property name="vscroll-policy">natural</property>
<property name="child">
<object class="GtkBox">
<property name="margin-top">12</property>
<property name="margin-bottom">70</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkListBox" id="language_list">
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
<child>
<object class="GtkRevealer" id="show_all_revealer">
<property name="transition-type">slide-up</property>
<property name="child">
<object class="GtkButton" id="show_all_button">
<property name="width-request">32</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="margin-bottom">18</property>
<child>
<object class="GtkImage">
<property name="icon-name">view-more-symbolic</property>
</object>
</child>
<style>
<class name="pill"/>
</style>
</object>
</property>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</object>
</property>
<child type="overlay">
<object class="GtkBox">
<property name="can-target">0</property>
<property name="height-request">64</property>
<property name="valign">end</property>
<property name="orientation">vertical</property>
<style>
<class name="bottom-gradient"/>
</style>
</object>
</child>
<child type="overlay">
<object class="GtkBox">
<property name="can-target">0</property>
<property name="height-request">16</property>
<property name="valign">start</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<style>
<class name="top-gradient"/>
</style>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,289 @@
using Gtk 4.0;
template LocalePage : Box {
orientation: vertical;
Stack overview_stack {
vhomogeneous: false;
StackPage {
name: "overview";
child:
Box {
margin-bottom: 18;
orientation: vertical;
spacing: 12;
Label {
valign: start;
/* Translators: Above list of continents and countries */
label: _("Adapt to Location");
justify: center;
wrap: true;
styles [
"title-2",
]
}
ListBox overview_list {
selection-mode: none;
ListBoxRow {
name: "timezone";
focusable: true;
selectable: false;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 12;
margin-bottom: 12;
spacing: 12;
Label {
/* Translators: Presented next to the current Timezone. */
label: _("Timezone");
wrap: true;
}
Label timezone_label {
ellipsize: end;
hexpand: true;
wrap: true;
xalign: 1;
}
Image {
icon-name: "emblem-system-symbolic";
}
}
;
}
ListBoxRow {
name: "formats";
focusable: true;
selectable: false;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 12;
margin-bottom: 12;
orientation: vertical;
spacing: 6;
Box {
spacing: 12;
Label {
/* Translators: Presented next to the current Formats. */
label: _("Formats");
wrap: true;
}
Label formats_label {
ellipsize: end;
hexpand: true;
wrap: true;
xalign: 1;
}
Image {
icon-name: "emblem-system-symbolic";
}
}
Label {
/* Translators: Description of what is covered by formats. */
label: _("Defines the default format used for dates, times, numbers, etc.");
wrap: true;
max-width-chars: 60;
xalign: 0;
styles [
"dim-label",
]
}
}
;
}
styles [
"boxed-list",
]
}
Button confirm_button {
/* Translators: On button. */
label: _("_Confirm");
focusable: true;
receives-default: true;
halign: center;
valign: center;
use-underline: true;
styles [
"suggested-action",
"pill",
]
}
}
;
}
StackPage {
name: "list";
child:
Box {
margin-bottom: 18;
orientation: vertical;
spacing: 12;
Stack text_stack {
valign: start;
StackPage {
name: "timezone";
child:
Label {
valign: start;
/* Translators: Above list of continents and countries */
label: _("Select Location");
justify: center;
wrap: true;
styles [
"title-2",
]
}
;
}
StackPage {
name: "formats";
child:
Label {
valign: start;
/* Translators: Above list of format locales */
label: _("Select Region");
justify: center;
wrap: true;
styles [
"title-2",
]
}
;
}
}
Box {
orientation: vertical;
ScrolledWindow {
vexpand: true;
margin-start: 6;
margin-end: 6;
hscrollbar-policy: external;
propagate-natural-width: true;
propagate-natural-height: true;
child:
Stack list_stack {
margin-start: 18;
margin-end: 18;
margin-top: 6;
margin-bottom: 6;
vhomogeneous: false;
transition-type: crossfade;
StackPage {
name: "timezone_continents";
child:
ListBox continents_list {
valign: start;
styles [
"boxed-list",
]
}
;
}
StackPage {
name: "timezone_countries";
child:
ListBox countries_list {
valign: start;
styles [
"boxed-list",
]
}
;
}
StackPage {
name: "timezone_subzones";
child:
ListBox subzones_list {
valign: start;
styles [
"boxed-list",
]
}
;
}
StackPage {
name: "formats";
child:
ListBox formats_list {
valign: start;
styles [
"boxed-list",
]
}
;
}
}
;
styles [
"scrollbar",
]
}
styles [
"scrollable-box",
]
}
}
;
}
}
}

View File

@@ -1,279 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="LocalePage" parent="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkStack" id="overview_stack">
<property name="vhomogeneous">0</property>
<child>
<object class="GtkStackPage">
<property name="name">overview</property>
<property name="child">
<object class="GtkBox">
<property name="margin-bottom">18</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="valign">start</property>
<property name="label" translatable="1" comments="Above list of continents and countries">Adapt to Location</property>
<property name="justify">center</property>
<property name="wrap">1</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child>
<object class="GtkListBox" id="overview_list">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<property name="name">timezone</property>
<property name="focusable">1</property>
<property name="selectable">0</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Presented next to the current Timezone.">Timezone</property>
<property name="wrap">1</property>
</object>
</child>
<child>
<object class="GtkLabel" id="timezone_label">
<property name="ellipsize">end</property>
<property name="hexpand">1</property>
<property name="wrap">1</property>
<property name="xalign">1</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="icon-name">emblem-system-symbolic</property>
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="name">formats</property>
<property name="focusable">1</property>
<property name="selectable">0</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkBox">
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Presented next to the current Formats.">Formats</property>
<property name="wrap">1</property>
</object>
</child>
<child>
<object class="GtkLabel" id="formats_label">
<property name="ellipsize">end</property>
<property name="hexpand">1</property>
<property name="wrap">1</property>
<property name="xalign">1</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="icon-name">emblem-system-symbolic</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Description of what is covered by formats.">Defines the default format used for dates, times, numbers, etc.</property>
<property name="wrap">1</property>
<property name="max-width-chars">60</property>
<property name="xalign">0</property>
<style>
<class name="dim-label"/>
</style>
</object>
</child>
</object>
</property>
</object>
</child>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="confirm_button">
<property name="label" translatable="1" comments="On button.">_Confirm</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="use-underline">1</property>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">list</property>
<property name="child">
<object class="GtkBox">
<property name="margin-bottom">18</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkStack" id="text_stack">
<property name="valign">start</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkStackPage">
<property name="name">timezone</property>
<property name="child">
<object class="GtkLabel">
<property name="valign">start</property>
<property name="label" translatable="1" comments="Above list of continents and countries">Select Location</property>
<property name="justify">center</property>
<property name="wrap">1</property>
<style>
<class name="title-2"/>
</style>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">formats</property>
<property name="child">
<object class="GtkLabel">
<property name="valign">start</property>
<property name="label" translatable="1" comments="Above list of format locales">Select Region</property>
<property name="justify">center</property>
<property name="wrap">1</property>
<style>
<class name="title-2"/>
</style>
</object>
</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="vexpand">1</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="hscrollbar-policy">external</property>
<property name="propagate-natural-width">1</property>
<property name="propagate-natural-height">1</property>
<property name="child">
<object class="GtkStack" id="list_stack">
<property name="margin-start">18</property>
<property name="margin-end">18</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="vhomogeneous">0</property>
<property name="transition-type">crossfade</property>
<child>
<object class="GtkStackPage">
<property name="name">timezone_continents</property>
<property name="child">
<object class="GtkListBox" id="continents_list">
<property name="valign">start</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">timezone_countries</property>
<property name="child">
<object class="GtkListBox" id="countries_list">
<property name="valign">start</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">timezone_subzones</property>
<property name="child">
<object class="GtkListBox" id="subzones_list">
<property name="valign">start</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">formats</property>
<property name="child">
<object class="GtkListBox" id="formats_list">
<property name="valign">start</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</property>
</object>
</child>
</object>
</property>
<style>
<class name="scrollbar"/>
</style>
</object>
</child>
<style>
<class name="scrollable-box"/>
</style>
</object>
</child>
</object>
</property>
</object>
</child>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,34 @@
using Gtk 4.0;
template RestartPage : Box {
margin-bottom: 18;
orientation: vertical;
spacing: 18;
Box {
vexpand: true;
halign: center;
valign: start;
orientation: vertical;
Label {
vexpand: true;
/* Translators: Shown when restarting system after installation. */
label: _("Restarting");
styles [
"title-2",
]
}
Spinner spinner {
vexpand: true;
margin-top: 18;
width-request: 64;
height-request: 64;
spinning: false;
}
}
}

View File

@@ -1,35 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="RestartPage" parent="GtkBox">
<property name="margin-bottom">18</property>
<property name="orientation">vertical</property>
<property name="spacing">18</property>
<child>
<object class="GtkBox">
<property name="vexpand">1</property>
<property name="halign">center</property>
<property name="valign">start</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="vexpand">1</property>
<property name="label" translatable="1" comments="Shown when restarting system after installation.">Restarting</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child>
<object class="GtkSpinner" id="spinner">
<property name="vexpand">1</property>
<property name="margin-top">18</property>
<property name="width-request">64</property>
<property name="height-request">64</property>
<property name="spinning">0</property>
</object>
</child>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,80 @@
using Gtk 4.0;
template SoftwarePage : Box {
orientation: vertical;
spacing: 12;
Label {
valign: start;
/* Translators: Informative label above a list of software that can be selected for installation */
label: _("Select Additional Software to Install");
justify: center;
wrap: true;
styles [
"title-2",
]
}
Button continue_button {
/* Translators: On button. */
label: _("_Continue");
focusable: true;
receives-default: true;
halign: center;
valign: end;
margin-bottom: 18;
use-underline: true;
styles [
"suggested-action",
"pill",
]
}
Box {
vexpand: true;
orientation: vertical;
ScrolledWindow {
vexpand: true;
focusable: true;
margin-start: 6;
margin-end: 6;
hscrollbar-policy: external;
propagate-natural-width: true;
propagate-natural-height: true;
child:
Viewport {
vscroll-policy: natural;
child:
ListBox software_list {
margin-start: 18;
margin-end: 18;
margin-top: 6;
margin-bottom: 6;
selection-mode: none;
styles [
"boxed-list",
]
}
;
}
;
styles [
"scrollbar",
]
}
styles [
"scrollable-box",
]
}
}

View File

@@ -1,74 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="SoftwarePage" parent="GtkBox">
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="valign">start</property>
<property name="label" translatable="1" comments="Informative label above a list of software that can be selected for installation">Select Additional Software to Install</property>
<property name="justify">center</property>
<property name="wrap">1</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="continue_button">
<property name="label" translatable="1" comments="On button.">_Continue</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="halign">center</property>
<property name="valign">end</property>
<property name="margin-bottom">18</property>
<property name="use-underline">1</property>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
<child>
<object class="GtkBox">
<property name="vexpand">1</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="vexpand">1</property>
<property name="focusable">1</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="hscrollbar-policy">external</property>
<property name="propagate-natural-width">1</property>
<property name="propagate-natural-height">1</property>
<property name="child">
<object class="GtkViewport">
<property name="vscroll-policy">natural</property>
<property name="child">
<object class="GtkListBox" id="software_list">
<property name="margin-start">18</property>
<property name="margin-end">18</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="selection-mode">none</property>
<style>
<class name="boxed-list"/>
</style>
</object>
</property>
</object>
</property>
<style>
<class name="scrollbar"/>
</style>
</object>
</child>
<style>
<class name="scrollable-box"/>
</style>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,144 @@
using Gtk 4.0;
template UserPage : Box {
margin-bottom: 18;
orientation: vertical;
spacing: 12;
Label {
/* Translators: Explanation for disk selection page. */
label: _("Enter Account Information");
justify: center;
wrap: true;
styles [
"title-2",
]
}
ListBox default_list {
selection-mode: none;
ListBoxRow {
activatable: false;
selectable: false;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
spacing: 12;
Label {
hexpand: true;
/* Translators: Used with entry field for User's name */
label: _("Name");
wrap: true;
xalign: 0;
}
Entry user_name_field {
focusable: true;
width-chars: 10;
max-width-chars: 24;
/* Translators: Placeholder in user name entry field */
placeholder-text: _("Enter a Name");
}
}
;
}
ListBoxRow {
name: "automatic_login";
selectable: false;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
spacing: 12;
Label {
/* Translators: Used with option to enable automatic login of user upon booting */
label: _("Automatic Login");
wrap: true;
xalign: 0;
}
Switch autologin_switch {
focusable: true;
valign: center;
active: true;
}
}
;
}
ListBoxRow {
activatable: false;
selectable: false;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
spacing: 12;
Label {
hexpand: true;
/* Translators: Used with entry field for setting a password for new user */
label: _("Password");
wrap: true;
xalign: 0;
}
Entry password_field {
focusable: true;
visibility: false;
width-chars: 10;
max-width-chars: 24;
/* Translators: Placeholder in password entry field */
placeholder-text: _("Enter a Password");
input-purpose: password;
}
}
;
}
styles [
"boxed-list",
]
}
Button continue_button {
/* Translators: On button. */
label: _("_Continue");
sensitive: false;
focusable: true;
receives-default: true;
halign: center;
use-underline: true;
styles [
"suggested-action",
"pill",
]
}
}

View File

@@ -1,135 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="UserPage" parent="GtkBox">
<property name="margin-bottom">18</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Explanation for disk selection page.">Enter Account Information</property>
<property name="justify">center</property>
<property name="wrap">1</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child>
<object class="GtkListBox" id="default_list">
<property name="selection-mode">none</property>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<property name="selectable">0</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="hexpand">1</property>
<property name="label" translatable="1" comments="Used with entry field for User&apos;s name">Name</property>
<property name="wrap">1</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkEntry" id="user_name_field">
<property name="focusable">1</property>
<property name="width-chars">10</property>
<property name="max-width-chars">24</property>
<property name="placeholder-text" translatable="1" comments="Placeholder in user name entry field">Enter a Name</property>
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="name">automatic_login</property>
<property name="selectable">0</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Used with option to enable automatic login of user upon booting">Automatic Login</property>
<property name="wrap">1</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkSwitch" id="autologin_switch">
<property name="focusable">1</property>
<property name="valign">center</property>
<property name="active">1</property>
</object>
</child>
</object>
</property>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="activatable">0</property>
<property name="selectable">0</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">12</property>
<child>
<object class="GtkLabel">
<property name="hexpand">1</property>
<property name="label" translatable="1" comments="Used with entry field for setting a password for new user">Password</property>
<property name="wrap">1</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkEntry" id="password_field">
<property name="focusable">1</property>
<property name="visibility">0</property>
<property name="invisible-char">●</property>
<property name="width-chars">10</property>
<property name="max-width-chars">24</property>
<property name="placeholder-text" translatable="1" comments="Placeholder in password entry field">Enter a Password</property>
<property name="input-purpose">password</property>
</object>
</child>
</object>
</property>
</object>
</child>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="continue_button">
<property name="label" translatable="1" comments="On button.">_Continue</property>
<property name="sensitive">0</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="halign">center</property>
<property name="use-underline">1</property>
<style>
<class name="suggested-action"/>
<class name="pill"/>
</style>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,143 @@
using Gtk 4.0;
template DeviceRow : ListBoxRow {
focusable: true;
selectable: false;
child:
Grid {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
row-spacing: 2;
column-spacing: 12;
Stack arrow_stack {
halign: end;
hhomogeneous: false;
vhomogeneous: false;
Image {
halign: end;
icon-name: "go-next-symbolic";
}
StackPage {
name: "too_small";
child:
Label too_small_label {
visible: false;
halign: start;
/* Translators: Shown for partitions that are not big enough to be installed on */
label: _("Not enough space for installation");
wrap: true;
xalign: 1;
styles [
"dim-label",
]
}
;
}
layout {
column: "2";
row: "0";
row-span: "2";
}
}
Stack name_stack {
hexpand: true;
hhomogeneous: false;
StackPage {
name: "disk";
child:
Label disk_name {
/* Translators: Shown if no name can be determined for a disk. */
label: _("Unknow Disk");
use-markup: true;
wrap: true;
ellipsize: end;
xalign: 0;
}
;
}
StackPage {
name: "partition";
child:
Box {
valign: end;
spacing: 4;
Label static_label {
/* Translators: Followed by 'Partition' and a partiton name or number. */
label: _("Use");
use-markup: true;
xalign: 0;
}
Label partition_name {
hexpand: true;
/* Translators: Label to pick one out of a list of partitions. Followed by a partition name or a number if the partition has no name. */
label: _("Partition");
use-markup: true;
ellipsize: end;
width-chars: 8;
xalign: 0;
}
}
;
}
layout {
column: "1";
row: "0";
}
}
Label device_path {
valign: start;
ellipsize: start;
xalign: 0;
styles [
"dim-label",
]
layout {
column: "1";
row: "1";
}
}
Label size {
width-chars: 5;
max-width-chars: 7;
xalign: 1;
styles [
"dim-label",
]
layout {
column: "0";
row: "0";
row-span: "2";
}
}
}
;
}

View File

@@ -1,134 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="DeviceRow" parent="GtkListBoxRow">
<property name="focusable">1</property>
<property name="selectable">0</property>
<property name="child">
<object class="GtkGrid">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="row-spacing">2</property>
<property name="column-spacing">12</property>
<child>
<object class="GtkStack" id="arrow_stack">
<property name="halign">end</property>
<property name="hhomogeneous">0</property>
<property name="vhomogeneous">0</property>
<child>
<object class="GtkImage">
<property name="halign">end</property>
<property name="icon-name">go-next-symbolic</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">too_small</property>
<property name="child">
<object class="GtkLabel" id="too_small_label">
<property name="visible">0</property>
<property name="halign">start</property>
<property name="label" translatable="1" comments="Shown for partitions that are not big enough to be installed on">Not enough space for installation</property>
<property name="wrap">1</property>
<property name="xalign">1</property>
<style>
<class name="dim-label"/>
</style>
</object>
</property>
</object>
</child>
<layout>
<property name="column">2</property>
<property name="row">0</property>
<property name="row-span">2</property>
</layout>
</object>
</child>
<child>
<object class="GtkStack" id="name_stack">
<property name="hexpand">1</property>
<property name="hhomogeneous">0</property>
<child>
<object class="GtkStackPage">
<property name="name">disk</property>
<property name="child">
<object class="GtkLabel" id="disk_name">
<property name="label" translatable="1" comments="Shown if no name can be determined for a disk.">Unknow Disk</property>
<property name="use-markup">1</property>
<property name="wrap">1</property>
<property name="ellipsize">end</property>
<property name="xalign">0</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">partition</property>
<property name="child">
<object class="GtkBox">
<property name="valign">end</property>
<property name="spacing">4</property>
<child>
<object class="GtkLabel" id="static_label">
<property name="label" translatable="1" comments="Followed by &apos;Partition&apos; and a partiton name or number.">Use</property>
<property name="use-markup">1</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkLabel" id="partition_name">
<property name="hexpand">1</property>
<property name="label" translatable="1" comments="Label to pick one out of a list of partitions. Followed by a partition name or a number if the partition has no name.">Partition</property>
<property name="use-markup">1</property>
<property name="ellipsize">end</property>
<property name="width-chars">8</property>
<property name="xalign">0</property>
</object>
</child>
</object>
</property>
</object>
</child>
<layout>
<property name="column">1</property>
<property name="row">0</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel" id="device_path">
<property name="valign">start</property>
<property name="ellipsize">start</property>
<property name="xalign">0</property>
<style>
<class name="dim-label"/>
</style>
<layout>
<property name="column">1</property>
<property name="row">1</property>
</layout>
</object>
</child>
<child>
<object class="GtkLabel" id="size">
<property name="width-chars">5</property>
<property name="max-width-chars">7</property>
<property name="xalign">1</property>
<style>
<class name="dim-label"/>
</style>
<layout>
<property name="column">0</property>
<property name="row">0</property>
<property name="row-span">2</property>
</layout>
</object>
</child>
</object>
</property>
</template>
</interface>

View File

@@ -0,0 +1,68 @@
using Gtk 4.0;
template ScrollableListBox : Box {
orientation: vertical;
ScrolledWindow {
hscrollbar-policy: external;
vscrollbar-policy: external;
propagate-natural-width: true;
propagate-natural-height: true;
}
Box {
orientation: vertical;
ScrolledWindow {
focusable: true;
hscrollbar-policy: external;
vscrollbar-policy: external;
propagate-natural-width: true;
propagate-natural-height: true;
child:
Viewport {
vscroll-policy: natural;
child:
Box {
margin-top: 12;
margin-bottom: 70;
orientation: vertical;
spacing: 12;
ListBox language_list {
styles [
"boxed-list",
]
}
Revealer show_all_revealer {
transition-type: slide_up;
child:
Button show_all_button {
width-request: 32;
focusable: true;
receives-default: true;
halign: center;
valign: center;
margin-bottom: 18;
Image {
icon-name: "view-more-symbolic";
}
styles [
"circular",
]
}
;
}
}
;
}
;
}
}
}

View File

@@ -1,72 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="ScrollableListBox" parent="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="hscrollbar-policy">external</property>
<property name="vscrollbar-policy">external</property>
<property name="propagate-natural-width">1</property>
<property name="propagate-natural-height">1</property>
</object>
</child>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="focusable">1</property>
<property name="hscrollbar-policy">external</property>
<property name="vscrollbar-policy">external</property>
<property name="propagate-natural-width">1</property>
<property name="propagate-natural-height">1</property>
<property name="child">
<object class="GtkViewport">
<property name="vscroll-policy">natural</property>
<property name="child">
<object class="GtkBox">
<property name="margin-top">12</property>
<property name="margin-bottom">70</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkListBox" id="language_list">
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
<child>
<object class="GtkRevealer" id="show_all_revealer">
<property name="transition-type">slide-up</property>
<property name="child">
<object class="GtkButton" id="show_all_button">
<property name="width-request">32</property>
<property name="focusable">1</property>
<property name="receives-default">1</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="margin-bottom">18</property>
<child>
<object class="GtkImage">
<property name="icon-name">view-more-symbolic</property>
</object>
</child>
<style>
<class name="circular"/>
</style>
</object>
</property>
</object>
</child>
</object>
</property>
</object>
</property>
</object>
</child>
</object>
</child>
</template>
</interface>

View File

@@ -0,0 +1,28 @@
using Gtk 4.0;
template LanguageRow : ListBoxRow {
focusable: true;
selectable: false;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
spacing: 18;
[center]
Label label {
hexpand: true;
wrap: true;
ellipsize: end;
lines: 2;
}
Image {
icon-name: "go-next-symbolic";
}
}
;
}

View File

@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="LanguageRow" parent="GtkListBoxRow">
<property name="focusable">1</property>
<property name="selectable">0</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">18</property>
<child type="center">
<object class="GtkLabel" id="label">
<property name="hexpand">1</property>
<property name="wrap">1</property>
<property name="ellipsize">end</property>
<property name="lines">2</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="icon-name">go-next-symbolic</property>
</object>
</child>
</object>
</property>
</template>
</interface>

View File

@@ -0,0 +1,75 @@
using Gtk 4.0;
template NoPartitionsRow : ListBoxRow {
activatable: false;
focusable: true;
selectable: false;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
spacing: 12;
Image {
icon-name: "dialog-information-symbolic";
}
Box {
hexpand: true;
orientation: vertical;
Label {
/* Translators: Shown if a disk is currently not compatible with the way a system was booted. */
label: _("Selecting a partition is not possible.");
wrap: true;
xalign: 0;
}
Label {
/* Translators: Followed by a list of requirements */
label: _("The disk requires:");
wrap: true;
xalign: 0;
}
Stack {
hhomogeneous: false;
vhomogeneous: false;
StackPage {
name: "efi";
child:
Label {
/* Translators: Technical terms, the abbreviations should not be translated. */
label: _(" • GPT partitioning\n • EFI partition");
wrap: true;
xalign: 0;
}
;
}
StackPage {
name: "bios";
child:
Label {
/* Translators: Technical terms, the abbreviations should not be translated */
label: _(" • BIOS boot partition");
wrap: true;
xalign: 0;
}
;
}
}
}
}
;
}

View File

@@ -1,74 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="NoPartitionsRow" parent="GtkListBoxRow">
<property name="activatable">0</property>
<property name="focusable">1</property>
<property name="selectable">0</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">12</property>
<child>
<object class="GtkImage">
<property name="icon-name">dialog-information-symbolic</property>
</object>
</child>
<child>
<object class="GtkBox">
<property name="hexpand">1</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Shown if a disk is currently not compatible with the way a system was booted.">Selecting a partition is not possible.</property>
<property name="wrap">1</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label" translatable="1" comments="Followed by a list of requirements">The disk requires:</property>
<property name="wrap">1</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkStack">
<property name="hhomogeneous">0</property>
<property name="vhomogeneous">0</property>
<child>
<object class="GtkStackPage">
<property name="name">efi</property>
<property name="child">
<object class="GtkLabel">
<property name="label" translatable="1" comments="Technical terms, the abbreviations should not be translated."> • GPT partitioning
• EFI partition</property>
<property name="wrap">1</property>
<property name="xalign">0</property>
</object>
</property>
</object>
</child>
<child>
<object class="GtkStackPage">
<property name="name">bios</property>
<property name="child">
<object class="GtkLabel">
<property name="label" translatable="1" comments="Technical terms, the abbreviations should not be translated"> • BIOS boot partition</property>
<property name="wrap">1</property>
<property name="xalign">0</property>
</object>
</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</property>
</template>
</interface>

View File

@@ -0,0 +1,25 @@
using Gtk 4.0;
template ProgressRow : ListBoxRow {
focusable: true;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
spacing: 6;
Label label {
ellipsize: end;
hexpand: true;
xalign: 0;
}
Image {
icon-name: "go-next-symbolic";
}
}
;
}

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="ProgressRow" parent="GtkListBoxRow">
<property name="focusable">1</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label">
<property name="ellipsize">end</property>
<property name="hexpand">1</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="icon-name">go-next-symbolic</property>
</object>
</child>
</object>
</property>
</template>
</interface>

View File

@@ -0,0 +1,32 @@
using Gtk 4.0;
template SelectionRow : ListBoxRow {
focusable: true;
child:
Box {
margin-start: 12;
margin-end: 12;
margin-top: 6;
margin-bottom: 6;
spacing: 6;
Label label {
wrap: true;
ellipsize: end;
lines: 2;
xalign: 0;
}
Revealer check_mark_revealer {
transition-type: crossfade;
child:
Image {
icon-name: "object-select-symbolic";
}
;
}
}
;
}

View File

@@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="SelectionRow" parent="GtkListBoxRow">
<property name="focusable">1</property>
<property name="child">
<object class="GtkBox">
<property name="margin-start">12</property>
<property name="margin-end">12</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label">
<property name="wrap">1</property>
<property name="ellipsize">end</property>
<property name="lines">2</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkRevealer" id="check_mark_revealer">
<property name="transition-type">crossfade</property>
<property name="child">
<object class="GtkImage">
<property name="icon-name">object-select-symbolic</property>
</object>
</property>
</object>
</child>
</object>
</property>
</template>
</interface>

View File

@@ -0,0 +1,49 @@
using Gtk 4.0;
template SoftwareRow : ListBoxRow {
focusable: true;
child:
Box {
margin-start: 6;
margin-end: 6;
margin-top: 6;
margin-bottom: 6;
spacing: 6;
Image icon {
width-request: 32;
height-request: 32;
valign: center;
}
Box {
halign: center;
valign: center;
orientation: vertical;
spacing: 6;
Label name_label {
valign: end;
ellipsize: end;
xalign: 0;
styles [
"title-2",
]
}
Label description_label {
valign: center;
wrap: true;
xalign: 0;
}
}
Switch switch {
focusable: true;
valign: center;
}
}
;
}

View File

@@ -1,55 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="SoftwareRow" parent="GtkListBoxRow">
<property name="focusable">1</property>
<property name="child">
<object class="GtkBox">
<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="spacing">6</property>
<child>
<object class="GtkImage" id="icon">
<property name="width-request">32</property>
<property name="height-request">32</property>
<property name="valign">center</property>
<property name="icon_size">5</property>
</object>
</child>
<child>
<object class="GtkBox">
<property name="halign">center</property>
<property name="valign">center</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="name_label">
<property name="valign">end</property>
<property name="ellipsize">end</property>
<property name="xalign">0</property>
<style>
<class name="title-2"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="description_label">
<property name="valign">center</property>
<property name="wrap">1</property>
<property name="xalign">0</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkSwitch" id="switch">
<property name="focusable">1</property>
<property name="valign">center</property>
</object>
</child>
</object>
</property>
</template>
</interface>

View File

@@ -0,0 +1,8 @@
[wrap-git]
directory = blueprint-compiler
url = https://gitlab.gnome.org/jwestman/blueprint-compiler.git
revision = main
depth = 1
[provide]
program_names = blueprint-compiler