From c5629aa7fa1642aebe12558101b11e2420a62573 Mon Sep 17 00:00:00 2001 From: Eduardo Flores Date: Sat, 2 Nov 2024 03:17:55 +0000 Subject: [PATCH] fix: add cfg flags --- src/app/mod.rs | 84 +++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 46 deletions(-) diff --git a/src/app/mod.rs b/src/app/mod.rs index c0e2f04d..5d8db73d 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -48,7 +48,6 @@ pub mod message { } use std::borrow::Cow; -use std::collections::BTreeMap; pub use self::command::Task; pub use self::core::Core; @@ -63,20 +62,18 @@ use iced::alignment::Vertical; use iced::{window, Alignment}; use iced::{Length, Subscription}; pub use message::Message; -use taffy::AlignContent; use url::Url; #[cfg(feature = "single-instance")] use { iced_futures::futures::channel::mpsc::{Receiver, Sender}, iced_futures::futures::SinkExt, std::any::TypeId, + std::collections::HashMap, zbus::{interface, proxy, zvariant::Value}, }; #[cfg(feature = "desktop")] -use crate::widget::About; -#[cfg(any(feature = "single-instance", feature = "desktop"))] -use std::collections::HashMap; +use {crate::widget::About, std::collections::BTreeMap}; pub(crate) fn iced_settings( settings: Settings, @@ -604,10 +601,39 @@ where None } - fn about_view(&self) -> Element { + #[cfg(feature = "desktop")] + /// Constructs the view for the about section. + fn about_view<'a>(&self) -> Element<'a, crate::app::cosmic::Message> { if let Some(about) = self.about() { let spacing = crate::theme::active().cosmic().spacing; + let section = |list: BTreeMap, title: &'a str| { + if list.is_empty() { + None + } else { + let developers: Vec> = list + .into_iter() + .map(|(name, email)| { + widget::button::custom( + widget::row() + .push(widget::text(name)) + .push(horizontal_space()) + .push(crate::widget::icon::from_name("link-symbolic").icon()) + .padding(spacing.space_xxs) + .align_y(Vertical::Center), + ) + .class(crate::theme::Button::Text) + .on_press(crate::app::cosmic::Message::OpenUrl(format!( + "mailto:{email}" + ))) + .width(Length::Fill) + .into() + }) + .collect(); + Some(widget::settings::section().title(title).extend(developers)) + } + }; + let application_name = about.application_name.map(widget::text::title3); let application_icon = about .application_icon @@ -627,12 +653,12 @@ where links.insert("Support".into(), support_url); } - let links_section = self.maintainer_section(links, "Links"); - let developers_section = self.maintainer_section(about.developers, "Developers"); - let designers_section = self.maintainer_section(about.designers, "Designers"); - let artists_section = self.maintainer_section(about.artists, "Artists"); - let translators_section = self.maintainer_section(about.translators, "Translators"); - let documenters_section = self.maintainer_section(about.documenters, "Documenters"); + let links_section = section(links, "Links"); + let developers_section = section(about.developers, "Developers"); + let designers_section = section(about.designers, "Designers"); + let artists_section = section(about.artists, "Artists"); + let translators_section = section(about.translators, "Translators"); + let documenters_section = section(about.documenters, "Documenters"); let developer_name = about.developer_name.map(widget::text); let version = about.version.map(widget::button::standard); @@ -667,40 +693,6 @@ where } } - fn maintainer_section<'a>( - &'a self, - list: BTreeMap, - title: &'a str, - ) -> Option> { - let spacing = crate::theme::active().cosmic().spacing; - let developers_section = if list.is_empty() { - None - } else { - let developers: Vec> = list - .into_iter() - .map(|(name, email)| { - widget::button::custom( - widget::row() - .push(widget::text(name)) - .push(horizontal_space()) - .push(crate::widget::icon::from_name("link-symbolic").icon()) - .padding(spacing.space_xxs) - .align_y(Vertical::Center), - ) - .class(crate::theme::Button::Text) - .on_press(crate::app::cosmic::Message::OpenUrl(format!( - "mailto:{email}" - ))) - .width(Length::Fill) - .into() - }) - .collect(); - let developers_section = widget::settings::section().title(title).extend(developers); - Some(developers_section) - }; - developers_section - } - /// Overrides the default style for applications fn style(&self) -> Option { None