[gnome-tour/bilelmoussaoui/fixes] Drop the custom WelcomePage
- From: Bilal Elmoussaoui <bilelmoussaoui src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-tour/bilelmoussaoui/fixes] Drop the custom WelcomePage
- Date: Wed, 26 Jan 2022 19:26:11 +0000 (UTC)
commit 9f3dc65338dbe9be058ee5fd47238d74d403d4e3
Author: Bilal Elmoussaoui <belmouss redhat com>
Date: Wed Jan 26 20:23:29 2022 +0100
Drop the custom WelcomePage
It is nowadays similar to the ImagePageWidget, so let us just use that
data/resources/ui/window.ui | 3 -
src/widgets/{pages/image.rs => image_page.rs} | 0
src/widgets/mod.rs | 5 +-
src/widgets/pages/mod.rs | 5 --
src/widgets/pages/welcome.rs | 85 ---------------------------
src/widgets/paginator.rs | 19 +++++-
src/widgets/window.rs | 3 +-
7 files changed, 20 insertions(+), 100 deletions(-)
---
diff --git a/data/resources/ui/window.ui b/data/resources/ui/window.ui
index 3359a23..5834e80 100644
--- a/data/resources/ui/window.ui
+++ b/data/resources/ui/window.ui
@@ -5,9 +5,6 @@
<property name="default-height">720</property>
<property name="content">
<object class="PaginatorWidget" id="paginator">
- <child>
- <object class="WelcomePageWidget" />
- </child>
<child>
<object class="ImagePageWidget">
<property name="resource-uri">/org/gnome/Tour/overview.svg</property>
diff --git a/src/widgets/pages/image.rs b/src/widgets/image_page.rs
similarity index 100%
rename from src/widgets/pages/image.rs
rename to src/widgets/image_page.rs
diff --git a/src/widgets/mod.rs b/src/widgets/mod.rs
index c58dca4..887e134 100644
--- a/src/widgets/mod.rs
+++ b/src/widgets/mod.rs
@@ -1,5 +1,6 @@
-mod pages;
+mod image_page;
mod paginator;
-mod window;
+mod window;
+pub use image_page::ImagePageWidget;
pub use window::Window;
diff --git a/src/widgets/paginator.rs b/src/widgets/paginator.rs
index 5b86bc2..9b2f293 100644
--- a/src/widgets/paginator.rs
+++ b/src/widgets/paginator.rs
@@ -1,3 +1,5 @@
+use crate::{utils::i18n_f, widgets::ImagePageWidget};
+use gettextrs::gettext;
use gtk::prelude::*;
use gtk::{
gdk,
@@ -70,6 +72,17 @@ mod imp {
obj.update_position();
}));
+ let name = glib::os_info("NAME").unwrap_or_else(|| "GNOME".into());
+ let version = glib::os_info("VERSION").unwrap_or_else(|| "".into());
+ // Translators: The following string is formated as "Learn about new and essential features in
GNOME 3.36" for example
+ let body = i18n_f("Learn about the key features in {} {}.", &[&name, &version]);
+ let welcome_page = ImagePageWidget::new(
+ "/org/gnome/Tour/welcome.svg",
+ gettext("Start the Tour"),
+ body,
+ );
+ obj.add_page(Some(-1), welcome_page);
+
let controller = gtk::EventControllerKey::new();
controller.connect_key_pressed(clone!(@weak obj => @default-return gtk::Inhibit(true), move
|_controller, keyval, _keycode, _state| {
if keyval == gdk::Key::Right {
@@ -98,7 +111,7 @@ mod imp {
if !self.carousel.is_bound() {
self.parent_add_child(buildable, builder, child, type_);
} else {
- buildable.add_page(child.clone().downcast::<gtk::Widget>().unwrap());
+ buildable.add_page(None, child.clone().downcast::<gtk::Widget>().unwrap());
}
}
}
@@ -134,10 +147,10 @@ impl PaginatorWidget {
Some(())
}
- pub fn add_page(&self, page: impl IsA<gtk::Widget>) {
+ pub fn add_page(&self, at: Option<i32>, page: impl IsA<gtk::Widget>) {
let imp = self.imp();
let page_nr = imp.pages.borrow().len();
- imp.carousel.insert(&page, page_nr as i32);
+ imp.carousel.insert(&page, at.unwrap_or(page_nr as i32));
imp.pages.borrow_mut().push(page.upcast());
self.update_position();
diff --git a/src/widgets/window.rs b/src/widgets/window.rs
index fec600c..dabc690 100644
--- a/src/widgets/window.rs
+++ b/src/widgets/window.rs
@@ -8,7 +8,7 @@ use crate::Application;
mod imp {
use super::*;
use crate::config;
- use crate::widgets::pages::{ImagePageWidget, WelcomePageWidget};
+ use crate::widgets::ImagePageWidget;
use adw::subclass::prelude::*;
#[derive(Debug, Default, gtk::CompositeTemplate)]
@@ -25,7 +25,6 @@ mod imp {
type ParentType = adw::ApplicationWindow;
fn class_init(klass: &mut Self::Class) {
- WelcomePageWidget::static_type();
ImagePageWidget::static_type();
Self::bind_template(klass);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]