diff --git a/.gitignore b/.gitignore index a665706b..d9df8370 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ debian/.debhelper *.pyc /localbuild .buildconfig -install/ \ No newline at end of file +install/ +/subprojects/blueprint-compiler diff --git a/subprojects/blueprint-compiler.wrap b/subprojects/blueprint-compiler.wrap new file mode 100644 index 00000000..f2b09ab2 --- /dev/null +++ b/subprojects/blueprint-compiler.wrap @@ -0,0 +1,8 @@ +[wrap-git] +directory = blueprint-compiler +url = https://gitlab.gnome.org/jwestman/blueprint-compiler.git +revision = v0.10.1 +depth = 1 + +[provide] +program_names = blueprint-compiler \ No newline at end of file diff --git a/vanilla_first_setup/gtk/default-conn-check.blp b/vanilla_first_setup/gtk/default-conn-check.blp new file mode 100644 index 00000000..8a4f18ac --- /dev/null +++ b/vanilla_first_setup/gtk/default-conn-check.blp @@ -0,0 +1,22 @@ +using Gtk 4.0; + +template $VanillaDefaultConnCheck : $AdwBin { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + $AdwStatusPage status_page { + icon-name: "content-loading-symbolic"; + title: _("Checking Connection…"); + description: _("Please wait until the connection check is done."); + + Button btn_recheck { + label: "Check Again"; + halign: center; + + styles [ + "pill", + ] + } + } +} diff --git a/vanilla_first_setup/gtk/default-conn-check.ui b/vanilla_first_setup/gtk/default-conn-check.ui deleted file mode 100644 index 5f3b6272..00000000 --- a/vanilla_first_setup/gtk/default-conn-check.ui +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vanilla_first_setup/gtk/default-hostname.blp b/vanilla_first_setup/gtk/default-hostname.blp new file mode 100644 index 00000000..a93f6418 --- /dev/null +++ b/vanilla_first_setup/gtk/default-hostname.blp @@ -0,0 +1,36 @@ +using Gtk 4.0; + +template $VanillaDefaultHostname : $AdwBin { + halign: "fill"; + valign: "center"; + hexpand: "true"; + + Box { + orientation: vertical; + + $AdwStatusPage status_page { + icon-name: "computer-symbolic"; + title: _("Device Details"); + description: _("Provide details about your device"); + + $AdwPreferencesPage { + $AdwPreferencesGroup { + $AdwEntryRow hostname_entry { + title: _("Device Name"); + input-purpose: "name"; + } + } + } + } + + Button btn_next { + halign: center; + label: _("Next"); + + styles [ + "pill", + "suggested-action", + ] + } + } +} diff --git a/vanilla_first_setup/gtk/default-hostname.ui b/vanilla_first_setup/gtk/default-hostname.ui deleted file mode 100644 index 565ef733..00000000 --- a/vanilla_first_setup/gtk/default-hostname.ui +++ /dev/null @@ -1,45 +0,0 @@ - - - - - diff --git a/vanilla_first_setup/gtk/default-theme.blp b/vanilla_first_setup/gtk/default-theme.blp new file mode 100644 index 00000000..63aae257 --- /dev/null +++ b/vanilla_first_setup/gtk/default-theme.blp @@ -0,0 +1,55 @@ +using Gtk 4.0; + +template $VanillaDefaultTheme : Box { + orientation: vertical; + halign: fill; + valign: center; + hexpand: true; + + Box { + valign: center; + spacing: 10; + halign: center; + + CheckButton btn_default { + tooltip-text: _("Default"); + halign: center; + active: true; + + styles [ + "theme-selector", + "light", + "card", + ] + } + + CheckButton btn_dark { + tooltip-text: _("Dark"); + halign: center; + + styles [ + "theme-selector", + "dark", + "card", + ] + } + } + + $AdwStatusPage { + title: _("Color Scheme"); + description: _("Choose a color scheme for your system."); + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + Button btn_next { + label: _("Next"); + halign: center; + + styles [ + "pill", + "suggested-action", + ] + } + } +} diff --git a/vanilla_first_setup/gtk/default-theme.ui b/vanilla_first_setup/gtk/default-theme.ui deleted file mode 100644 index 9a5808f8..00000000 --- a/vanilla_first_setup/gtk/default-theme.ui +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vanilla_first_setup/gtk/default-user.blp b/vanilla_first_setup/gtk/default-user.blp new file mode 100644 index 00000000..96aefdf5 --- /dev/null +++ b/vanilla_first_setup/gtk/default-user.blp @@ -0,0 +1,57 @@ +using Gtk 4.0; + +template $VanillaDefaultUser : $AdwBin { + halign: "fill"; + valign: "center"; + hexpand: "true"; + + Box { + orientation: vertical; + + $AdwAvatar { + valign: "center"; + size: "128"; + show-initials: "true"; + text: bind fullname_entry.text; + } + + $AdwStatusPage status_page { + title: _("Create User"); + description: _("Provide details for your user account"); + + $AdwPreferencesPage { + $AdwPreferencesGroup { + $AdwEntryRow fullname_entry { + title: _("Name"); + input-purpose: "name"; + } + + $AdwEntryRow username_entry { + title: _("Username"); + input-purpose: "name"; + } + + $AdwPasswordEntryRow password_entry { + title: _("Password"); + input-purpose: "password"; + } + + $AdwPasswordEntryRow password_confirmation { + title: _("Confirm Password"); + input-purpose: "password"; + } + } + } + } + + Button btn_next { + halign: center; + label: _("Next"); + + styles [ + "pill", + "suggested-action", + ] + } + } +} diff --git a/vanilla_first_setup/gtk/default-user.ui b/vanilla_first_setup/gtk/default-user.ui deleted file mode 100644 index 63152668..00000000 --- a/vanilla_first_setup/gtk/default-user.ui +++ /dev/null @@ -1,70 +0,0 @@ - - - - - diff --git a/vanilla_first_setup/gtk/default-welcome.blp b/vanilla_first_setup/gtk/default-welcome.blp new file mode 100644 index 00000000..2057b593 --- /dev/null +++ b/vanilla_first_setup/gtk/default-welcome.blp @@ -0,0 +1,66 @@ +using Gtk 4.0; + +template $VanillaDefaultWelcome : $AdwBin { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + $AdwStatusPage status_page { + icon-name: "org.vanillaos.FirstSetup-flower"; + + Box { + spacing: 8; + orientation: vertical; + + Overlay { + Label { + label: _("Welcome!"); + opacity: 0; + + styles [ + "title-1", + ] + } + + [overlay] + Label title_label { + label: _("Welcome!"); + + styles [ + "title-1", + ] + } + } + + Label { + label: "Make your choices, this wizard will take care of everything."; + justify: center; + } + + Box { + spacing: 8; + halign: center; + margin-top: 8; + + Button btn_advanced { + label: "Advanced"; + halign: center; + + styles [ + "pill", + ] + } + + Button btn_next { + label: "Start"; + halign: center; + + styles [ + "pill", + "suggested-action", + ] + } + } + } + } +} diff --git a/vanilla_first_setup/gtk/default-welcome.ui b/vanilla_first_setup/gtk/default-welcome.ui deleted file mode 100644 index f48a2a70..00000000 --- a/vanilla_first_setup/gtk/default-welcome.ui +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vanilla_first_setup/gtk/dialog.blp b/vanilla_first_setup/gtk/dialog.blp new file mode 100644 index 00000000..9e20e368 --- /dev/null +++ b/vanilla_first_setup/gtk/dialog.blp @@ -0,0 +1,25 @@ +using Gtk 4.0; + +template $VanillaDialog : $AdwWindow { + title: _("Showing Information"); + default-width: "500"; + modal: "True"; + + Box { + orientation: vertical; + + $AdwHeaderBar { + styles [ + "flat", + ] + } + + Label label_text { + margin-top: 10; + margin-start: 10; + margin-end: 10; + margin-bottom: 20; + wrap: true; + } + } +} diff --git a/vanilla_first_setup/gtk/dialog.ui b/vanilla_first_setup/gtk/dialog.ui deleted file mode 100644 index a63f29a9..00000000 --- a/vanilla_first_setup/gtk/dialog.ui +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - diff --git a/vanilla_first_setup/gtk/done.blp b/vanilla_first_setup/gtk/done.blp new file mode 100644 index 00000000..ca7d27cf --- /dev/null +++ b/vanilla_first_setup/gtk/done.blp @@ -0,0 +1,74 @@ +using Gtk 4.0; + +template $VanillaDone : $AdwBin { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + $AdwStatusPage status_page { + icon-name: "emblem-default-symbolic"; + title: _("All done!"); + description: _("Restart your device to enjoy your Vanilla OS experience."); + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + Box { + halign: center; + orientation: vertical; + + Box log_box { + visible: false; + margin-start: 40; + margin-end: 40; + margin-top: 1; + margin-bottom: 18; + width-request: 500; + height-request: 200; + orientation: vertical; + + Label log_output { + margin-top: 12; + margin-start: 12; + margin-end: 12; + } + + styles [ + "card", + ] + } + + Button btn_reboot { + label: "Reboot Now"; + halign: center; + valign: center; + + styles [ + "pill", + "suggested-action", + ] + } + + Button btn_retry { + label: "Retry"; + halign: center; + visible: false; + + styles [ + "pill", + ] + } + + Button btn_close { + label: "Close"; + halign: center; + visible: false; + + styles [ + "pill", + "suggested-action", + ] + } + } + } +} diff --git a/vanilla_first_setup/gtk/done.ui b/vanilla_first_setup/gtk/done.ui deleted file mode 100644 index 91d10f5b..00000000 --- a/vanilla_first_setup/gtk/done.ui +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - diff --git a/vanilla_first_setup/gtk/layout-applications.blp b/vanilla_first_setup/gtk/layout-applications.blp new file mode 100644 index 00000000..149d0804 --- /dev/null +++ b/vanilla_first_setup/gtk/layout-applications.blp @@ -0,0 +1,35 @@ +using Gtk 4.0; + +template $VanillaLayoutApplications : $AdwBin { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + $AdwStatusPage status_page { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + Box { + orientation: vertical; + vexpand: true; + hexpand: true; + valign: center; + + $AdwPreferencesPage { + $AdwPreferencesGroup bundles_list { + } + } + + Button btn_next { + label: "Next"; + halign: center; + + styles [ + "pill", + "suggested-action", + ] + } + } + } +} diff --git a/vanilla_first_setup/gtk/layout-applications.ui b/vanilla_first_setup/gtk/layout-applications.ui deleted file mode 100644 index 152a07d1..00000000 --- a/vanilla_first_setup/gtk/layout-applications.ui +++ /dev/null @@ -1,41 +0,0 @@ - - - - - \ No newline at end of file diff --git a/vanilla_first_setup/gtk/layout-preferences.blp b/vanilla_first_setup/gtk/layout-preferences.blp new file mode 100644 index 00000000..574fa662 --- /dev/null +++ b/vanilla_first_setup/gtk/layout-preferences.blp @@ -0,0 +1,35 @@ +using Gtk 4.0; + +template $VanillaLayoutPreferences : $AdwBin { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + $AdwStatusPage status_page { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + Box { + orientation: vertical; + vexpand: true; + hexpand: true; + valign: center; + + $AdwPreferencesPage { + $AdwPreferencesGroup prefs_list { + } + } + + Button btn_next { + label: "Next"; + halign: center; + + styles [ + "pill", + "suggested-action", + ] + } + } + } +} diff --git a/vanilla_first_setup/gtk/layout-preferences.ui b/vanilla_first_setup/gtk/layout-preferences.ui deleted file mode 100644 index 15b1bec6..00000000 --- a/vanilla_first_setup/gtk/layout-preferences.ui +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vanilla_first_setup/gtk/layout-yes-no.blp b/vanilla_first_setup/gtk/layout-yes-no.blp new file mode 100644 index 00000000..13c880b5 --- /dev/null +++ b/vanilla_first_setup/gtk/layout-yes-no.blp @@ -0,0 +1,54 @@ +using Gtk 4.0; + +template $VanillaLayoutYesNo : $AdwBin { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + $AdwStatusPage status_page { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + Box { + orientation: vertical; + vexpand: true; + hexpand: true; + valign: center; + + Box { + valign: center; + spacing: 10; + halign: center; + + Button btn_no { + label: "No"; + halign: center; + + styles [ + "pill", + ] + } + + Button btn_yes { + label: _("Yes, enable it"); + halign: center; + + styles [ + "pill", + "suggested-action", + ] + } + + Button btn_info { + icon-name: "dialog-information-symbolic"; + visible: false; + + styles [ + "flat", + ] + } + } + } + } +} diff --git a/vanilla_first_setup/gtk/layout-yes-no.ui b/vanilla_first_setup/gtk/layout-yes-no.ui deleted file mode 100644 index 0973f1fd..00000000 --- a/vanilla_first_setup/gtk/layout-yes-no.ui +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vanilla_first_setup/gtk/post-script.blp b/vanilla_first_setup/gtk/post-script.blp new file mode 100644 index 00000000..c973c84a --- /dev/null +++ b/vanilla_first_setup/gtk/post-script.blp @@ -0,0 +1,31 @@ +using Gtk 4.0; + +template $VanillaPostScript : $AdwBin { + $AdwStatusPage { + valign: "fill"; + halign: "fill"; + icon-name: "org.vanillaos.FirstSetup-flower"; + title: _("Finalizing"); + description: _("Your device will be ready soon."); + + Box console_box { + margin-start: 40; + margin-end: 40; + margin-top: 1; + margin-bottom: 18; + height-request: 250; + orientation: vertical; + + Box console_output { + margin-top: 12; + margin-start: 12; + margin-end: 12; + orientation: vertical; + } + + styles [ + "card", + ] + } + } +} diff --git a/vanilla_first_setup/gtk/post-script.ui b/vanilla_first_setup/gtk/post-script.ui deleted file mode 100644 index 7553981f..00000000 --- a/vanilla_first_setup/gtk/post-script.ui +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - diff --git a/vanilla_first_setup/gtk/progress.blp b/vanilla_first_setup/gtk/progress.blp new file mode 100644 index 00000000..f528e3cd --- /dev/null +++ b/vanilla_first_setup/gtk/progress.blp @@ -0,0 +1,114 @@ +using Gtk 4.0; + +template $VanillaProgress : Box { + orientation: vertical; + + Box tour_box { + visible: true; + margin-start: 40; + margin-end: 40; + margin-top: 1; + margin-bottom: 18; + height-request: 400; + orientation: vertical; + + $AdwCarousel carousel_tour { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + vexpand: "true"; + allow-scroll-wheel: "False"; + allow-mouse-drag: "False"; + allow-long-swipes: "False"; + } + + $AdwCarouselIndicatorDots { + carousel: "carousel_tour"; + orientation: "horizontal"; + margin-bottom: "18"; + } + } + + Box console_box { + visible: false; + margin-start: 40; + margin-end: 40; + margin-top: 1; + margin-bottom: 18; + height-request: 400; + orientation: vertical; + + Box console_output { + visible: true; + margin-top: 12; + margin-start: 12; + margin-end: 12; + orientation: vertical; + } + + styles [ + "card", + ] + } + + Box { + orientation: horizontal; + + Label progressbar_text { + wrap: true; + wrap-mode: word_char; + halign: start; + valign: center; + margin-top: 40; + margin-start: 40; + label: _("Installing..."); + + styles [ + "title-4", + ] + } + + Box { + halign: fill; + hexpand: true; + } + + Button console_button { + visible: true; + margin-end: 40; + margin-start: 12; + margin-top: 40; + icon-name: "media-view-subtitles-symbolic"; + halign: end; + valign: center; + tooltip-text: _("Show Console output"); + + styles [ + "circular", + ] + } + + Button tour_button { + visible: false; + margin-end: 40; + margin-start: 12; + margin-top: 40; + icon-name: "image-x-generic-symbolic"; + halign: end; + valign: center; + tooltip-text: _("Show Slideshow"); + + styles [ + "circular", + ] + } + } + + ProgressBar progressbar { + show-text: false; + margin-top: 12; + margin-start: 40; + margin-bottom: 40; + margin-end: 40; + } +} diff --git a/vanilla_first_setup/gtk/progress.ui b/vanilla_first_setup/gtk/progress.ui deleted file mode 100644 index caf7eef8..00000000 --- a/vanilla_first_setup/gtk/progress.ui +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vanilla_first_setup/gtk/tour.blp b/vanilla_first_setup/gtk/tour.blp new file mode 100644 index 00000000..831f8d3c --- /dev/null +++ b/vanilla_first_setup/gtk/tour.blp @@ -0,0 +1,35 @@ +using Gtk 4.0; + +template $VanillaTour : $AdwBin { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + $AdwStatusPage status_page { + halign: "fill"; + valign: "fill"; + hexpand: "true"; + + Box { + orientation: vertical; + vexpand: true; + hexpand: true; + valign: center; + + Box { + valign: center; + spacing: 10; + halign: center; + + Button btn_read_more { + label: _("Read More"); + halign: center; + + styles [ + "pill", + ] + } + } + } + } +} diff --git a/vanilla_first_setup/gtk/tour.ui b/vanilla_first_setup/gtk/tour.ui deleted file mode 100644 index 2b369ac2..00000000 --- a/vanilla_first_setup/gtk/tour.ui +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vanilla_first_setup/gtk/window.blp b/vanilla_first_setup/gtk/window.blp new file mode 100644 index 00000000..5c6f6603 --- /dev/null +++ b/vanilla_first_setup/gtk/window.blp @@ -0,0 +1,41 @@ +using Gtk 4.0; + +template $VanillaWindow : $AdwApplicationWindow { + default-width: "800"; + default-height: "750"; + title: "First Setup"; + + Box { + orientation: vertical; + + $AdwHeaderBar headerbar { + styles [ + "flat", + ] + title-widget: + $AdwCarouselIndicatorDots carousel_indicator_dots { + carousel: "carousel"; + orientation: "horizontal"; + } + + ; + + [start] + Button btn_back { + label: _("Back"); + halign: center; + visible: false; + } + } + + $AdwToastOverlay toasts { + $AdwCarousel carousel { + vexpand: "True"; + hexpand: "True"; + allow-scroll-wheel: "False"; + allow-mouse-drag: "False"; + allow-long-swipes: "False"; + } + } + } +} diff --git a/vanilla_first_setup/gtk/window.ui b/vanilla_first_setup/gtk/window.ui deleted file mode 100644 index 18124b31..00000000 --- a/vanilla_first_setup/gtk/window.ui +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - diff --git a/vanilla_first_setup/meson.build b/vanilla_first_setup/meson.build index a1d9c003..89592db7 100644 --- a/vanilla_first_setup/meson.build +++ b/vanilla_first_setup/meson.build @@ -2,11 +2,33 @@ pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.proje moduledir = join_paths(pkgdatadir, 'vanilla_first_setup') gnome = import('gnome') +blueprints = custom_target('blueprints', + input: files( + 'gtk/default-conn-check.blp', + 'gtk/default-hostname.blp', + 'gtk/default-theme.blp', + 'gtk/default-user.blp', + 'gtk/default-welcome.blp', + 'gtk/dialog.blp', + 'gtk/done.blp', + 'gtk/layout-applications.blp', + 'gtk/layout-preferences.blp', + 'gtk/layout-yes-no.blp', + 'gtk/post-script.blp', + 'gtk/progress.blp', + 'gtk/tour.blp', + 'gtk/window.blp', + ), + output: '.', + command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'], +) + gnome.compile_resources('vanilla-first-setup', 'vanilla-first-setup.gresource.xml', gresource_bundle: true, install: true, install_dir: pkgdatadir, + dependencies: blueprints, ) python = import('python')