From e14da235b8af5789724867365ab3e8357bd778f5 Mon Sep 17 00:00:00 2001 From: Eduardo Flores Date: Wed, 10 Jul 2024 22:30:26 -0700 Subject: [PATCH] fix: add dbus flag --- Cargo.lock | 12 ++++++++++++ Cargo.toml | 2 +- dev.edfloreshz.Tasks.json | 3 ++- src/app.rs | 16 +++++++++------- src/app/config.rs | 10 ++++------ src/app/settings.rs | 5 ++--- src/content.rs | 2 +- src/details.rs | 8 +++----- 8 files changed, 34 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62e5c8c..e29ccd2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1111,7 +1111,9 @@ source = "git+https://github.com/pop-os/libcosmic.git#f60c6893eb828f0e5c2caa8e0a dependencies = [ "atomicwrites 0.4.2", "cosmic-config-derive", + "cosmic-settings-daemon", "dirs", + "futures-util", "iced_futures", "known-folders", "notify", @@ -1121,6 +1123,7 @@ dependencies = [ "tokio", "tracing", "xdg", + "zbus 4.2.2", ] [[package]] @@ -1132,6 +1135,14 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "cosmic-settings-daemon" +version = "0.1.0" +source = "git+https://github.com/pop-os/dbus-settings-bindings#cd21ddcb1b5cbfc80ab84b34d3c8b1ff3d81179a" +dependencies = [ + "zbus 4.2.2", +] + [[package]] name = "cosmic-text" version = "0.11.2" @@ -2982,6 +2993,7 @@ dependencies = [ "ashpd", "chrono", "cosmic-config", + "cosmic-settings-daemon", "cosmic-theme", "css-color", "derive_setters", diff --git a/Cargo.toml b/Cargo.toml index 4f85f3f..f476636 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,7 @@ emojis = "0.6.1" [dependencies.libcosmic] git = "https://github.com/pop-os/libcosmic.git" default-features = false -features = ["multi-window", "tokio", "winit", "wgpu"] +features = ["multi-window", "tokio", "winit", "wgpu", "dbus-config"] [dependencies.smol_str] version = "0.2.1" diff --git a/dev.edfloreshz.Tasks.json b/dev.edfloreshz.Tasks.json index 55f82a3..9e5ad94 100644 --- a/dev.edfloreshz.Tasks.json +++ b/dev.edfloreshz.Tasks.json @@ -7,8 +7,9 @@ "command": "tasks", "finish-args": [ "--share=ipc", - "--socket=fallback-x11", "--socket=wayland", + "--socket=fallback-x11", + "--talk-name=com.system76.CosmicSettingsDaemon.*", "--device=dri" ], "build-options": { diff --git a/src/app.rs b/src/app.rs index fff867d..7bbb0e3 100644 --- a/src/app.rs +++ b/src/app.rs @@ -5,6 +5,8 @@ use std::{env, process}; use chrono::{Local, NaiveDate}; use cli_clipboard::{ClipboardContext, ClipboardProvider}; use cosmic::app::{message, Core, Message as CosmicMessage}; +use cosmic::cosmic_config::Update; +use cosmic::cosmic_theme::ThemeMode; use cosmic::iced::alignment::{Horizontal, Vertical}; use cosmic::iced::keyboard::{Key, Modifiers}; use cosmic::iced::{ @@ -68,7 +70,7 @@ pub enum Message { Key(Modifiers, Key), Modifiers(Modifiers), AppTheme(usize), - SystemThemeModeChange(cosmic_theme::ThemeMode), + SystemThemeModeChange, OpenNewListDialog, OpenRenameListDialog, OpenDeleteListDialog, @@ -499,7 +501,7 @@ impl Application for Tasks { Self::APP_ID.into(), CONFIG_VERSION, ) - .map(|update| { + .map(|update: Update| { if !update.errors.is_empty() { log::info!( "errors loading config {:?}: {:?}", @@ -507,14 +509,14 @@ impl Application for Tasks { update.errors ); } - Message::SystemThemeModeChange(update.config) + Message::SystemThemeModeChange }), cosmic_config::config_subscription::<_, cosmic_theme::ThemeMode>( TypeId::of::(), cosmic_theme::THEME_MODE_ID.into(), cosmic_theme::ThemeMode::version(), ) - .map(|update| { + .map(|update: Update| { if !update.errors.is_empty() { log::info!( "errors loading theme mode {:?}: {:?}", @@ -522,7 +524,7 @@ impl Application for Tasks { update.errors ); } - Message::SystemThemeModeChange(update.config) + Message::SystemThemeModeChange }), ]; @@ -715,7 +717,7 @@ impl Application for Tasks { config_set!(app_theme, app_theme); return self.update_config(); } - Message::SystemThemeModeChange(_) => { + Message::SystemThemeModeChange => { return self.update_config(); } Message::FetchLists => { @@ -835,7 +837,7 @@ impl Application for Tasks { let entity = self.nav_model.active(); self.nav_model.text_set(entity, name.clone()); if let Some(list) = self.nav_model.active_data_mut::() { - list.name = name.clone(); + list.name.clone_from(&name); let command = Command::perform( todo::update_list(list.clone(), self.service.clone()), |_| message::none(), diff --git a/src/app/config.rs b/src/app/config.rs index c5769f9..b7b11c7 100644 --- a/src/app/config.rs +++ b/src/app/config.rs @@ -20,12 +20,10 @@ impl TasksConfig { pub fn config() -> TasksConfig { match Self::config_handler() { Some(config_handler) => { - let config = - TasksConfig::get_entry(&config_handler).unwrap_or_else(|(errs, config)| { - log::info!("errors loading config: {:?}", errs); - config - }); - config + TasksConfig::get_entry(&config_handler).unwrap_or_else(|(errs, config)| { + log::info!("errors loading config: {:?}", errs); + config + }) } None => TasksConfig::default(), } diff --git a/src/app/settings.rs b/src/app/settings.rs index fae31be..1696154 100644 --- a/src/app/settings.rs +++ b/src/app/settings.rs @@ -42,11 +42,10 @@ pub fn set_icon_cache() { pub fn get_flags() -> Flags { let (config_handler, config) = (TasksConfig::config_handler(), TasksConfig::config()); - let flags = Flags { + Flags { config_handler, config, - }; - flags + } } pub fn migrate(prev_app_id: &str) { diff --git a/src/content.rs b/src/content.rs index 774a1d4..1ef322d 100644 --- a/src/content.rs +++ b/src/content.rs @@ -188,7 +188,7 @@ impl Content { let mut commands = Vec::new(); match message { Message::List(list) => { - self.list = list.clone(); + self.list.clone_from(&list); if let Some(list) = list { commands.push(Command::GetTasks(list.id().clone())); } diff --git a/src/details.rs b/src/details.rs index e7db530..eff2cc0 100644 --- a/src/details.rs +++ b/src/details.rs @@ -14,7 +14,6 @@ use crate::fl; pub struct Details { pub task: Option, - pub is_editable: bool, pub priority_model: segmented_button::Model, pub subtask_input: String, pub subtasks: SlotMap, @@ -69,7 +68,6 @@ impl Details { Self { task: None, priority_model, - is_editable: false, subtask_input: String::new(), subtasks: SlotMap::new(), editing: SecondaryMap::new(), @@ -82,12 +80,12 @@ impl Details { match message { Message::SetTitle(title) => { if let Some(ref mut task) = &mut self.task { - task.title = title.clone(); + task.title.clone_from(&title); } } Message::SetNotes(notes) => { if let Some(ref mut task) = &mut self.task { - task.notes = notes.clone(); + task.notes.clone_from(¬es); } } Message::Favorite(favorite) => { @@ -117,7 +115,7 @@ impl Details { Message::SetSubTaskTitle(id, title) => { let task = self.subtasks.get_mut(id); if let Some(task) = task { - task.title = title.clone(); + task.title.clone_from(&title); } } Message::CompleteSubTask(id, completed) => {