From 45fd683bc949e82d40005d8d80dcd8a422821342 Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Fri, 5 Dec 2025 16:42:29 +0100 Subject: [PATCH] examples(about): update and fix compile --- examples/about/Cargo.toml | 3 -- examples/about/src/main.rs | 80 ++++++++++++++++---------------------- 2 files changed, 33 insertions(+), 50 deletions(-) diff --git a/examples/about/Cargo.toml b/examples/about/Cargo.toml index cf06709..0f59853 100644 --- a/examples/about/Cargo.toml +++ b/examples/about/Cargo.toml @@ -4,9 +4,6 @@ version = "0.1.0" edition = "2021" [dependencies] -tracing = "0.1.41" -tracing-subscriber = "0.3.19" -tracing-log = "0.2.0" open = "5.3.2" [dependencies.libcosmic] diff --git a/examples/about/src/main.rs b/examples/about/src/main.rs index 957433f..50f25da 100644 --- a/examples/about/src/main.rs +++ b/examples/about/src/main.rs @@ -5,17 +5,14 @@ use cosmic::app::context_drawer::{self, ContextDrawer}; use cosmic::app::{Core, Settings, Task}; -use cosmic::iced::widget::column; -use cosmic::iced_core::Size; +use cosmic::executor; +use cosmic::iced::{alignment, Length, Size}; +use cosmic::prelude::*; use cosmic::widget::{self, about::About, nav_bar}; -use cosmic::{executor, iced, ApplicationExt, Element}; /// Runs application with these settings #[rustfmt::skip] fn main() -> Result<(), Box> { - tracing_subscriber::fmt::init(); - let _ = tracing_log::LogTracer::init(); - let settings = Settings::default() .size(Size::new(1024., 768.)); @@ -67,12 +64,12 @@ impl cosmic::Application for App { let about = About::default() .name("About Demo") - .icon(Self::APP_ID) + .icon(widget::icon::from_name(Self::APP_ID)) .version("0.1.0") - .author("System 76") + .author("System76") .license("GPL-3.0-only") - //.license_url("https://www.some-custom-license-url.com") - .developers([("Michael Murphy", "mmstick@system76.com")]) + .license_url("https://choosealicense.com/licenses/gpl-3.0/") + .developers([("Michael Murphy", "info@system76.com")]) .links([ ("Website", "https://system76.com/cosmic"), ("Repository", "https://github.com/pop-os/libcosmic"), @@ -86,7 +83,11 @@ impl cosmic::Application for App { show_about: false, }; - let command = app.update_title(); + app.set_header_title("COSMIC About Example".into()); + let command = app.set_window_title( + "COSMIC About Example".into(), + app.core.main_window_id().unwrap(), + ); (app, command) } @@ -99,12 +100,17 @@ impl cosmic::Application for App { /// Called when a navigation item is selected. fn on_nav_select(&mut self, id: nav_bar::Id) -> Task { self.nav_model.activate(id); - self.update_title() + Task::none() } - fn context_drawer(&self) -> Option> { - self.show_about - .then(|| context_drawer::about(&self.about, Message::Open, Message::ToggleAbout)) + fn context_drawer(&self) -> Option> { + self.show_about.then(|| { + context_drawer::about( + &self.about, + |url| Message::Open(url.to_owned()), + Message::ToggleAbout, + ) + }) } /// Handle application events here. @@ -116,47 +122,27 @@ impl cosmic::Application for App { } Message::Open(url) => match open::that_detached(url) { Ok(_) => (), - Err(err) => tracing::error!("Failed to open URL: {err}"), + Err(err) => eprintln!("Failed to open URL: {err}"), }, } Task::none() } /// Creates a view after each update. - fn view(&self) -> Element { + fn view(&self) -> Element<'_, Self::Message> { + let show_about_button = widget::button::text("Show about").on_press(Message::ToggleAbout); let centered = cosmic::widget::container( - column![widget::button::text("Show about").on_press(Message::ToggleAbout)] - .width(iced::Length::Fill) - .height(iced::Length::Shrink) - .align_x(iced::alignment::Horizontal::Center), + widget::column() + .push(show_about_button) + .width(Length::Fill) + .height(Length::Shrink) + .align_x(alignment::Horizontal::Center), ) - .width(iced::Length::Fill) - .height(iced::Length::Shrink) - .align_x(iced::alignment::Horizontal::Center) - .align_y(iced::alignment::Vertical::Center); + .width(Length::Fill) + .height(Length::Shrink) + .align_x(alignment::Horizontal::Center) + .align_y(alignment::Vertical::Center); Element::from(centered) } } - -impl App -where - Self: cosmic::Application, -{ - fn active_page_title(&mut self) -> &str { - self.nav_model - .text(self.nav_model.active()) - .unwrap_or("Unknown Page") - } - - fn update_title(&mut self) -> Task { - let header_title = self.active_page_title().to_owned(); - let window_title = format!("{header_title} — COSMIC AppDemo"); - self.set_header_title(header_title); - if let Some(id) = self.core.main_window_id() { - self.set_window_title(window_title, id) - } else { - Task::none() - } - } -}