Skip to content

Commit 97ace91

Browse files
authored
Merge branch 'pop-os:master' into type_to_search
2 parents 27d4867 + bd46f92 commit 97ace91

File tree

34 files changed

+2587
-2235
lines changed

34 files changed

+2587
-2235
lines changed

Cargo.lock

Lines changed: 205 additions & 211 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ cosmic-text = { git = "https://github.com/pop-os/cosmic-text//", rev = "b017d7c"
5353
# smithay-client-toolkit = { git = "https://github.com/smithay/client-toolkit//", rev = "c583de8" }
5454

5555
[patch.'https://github.com/pop-os/cosmic-protocols']
56-
cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols//", rev = "1425bd4" }
57-
cosmic-client-toolkit = { git = "https://github.com/pop-os/cosmic-protocols//", rev = "1425bd4" }
56+
cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols//", rev = "408af98" }
57+
cosmic-client-toolkit = { git = "https://github.com/pop-os/cosmic-protocols//", rev = "408af98" }
5858

5959
# [patch.'https://github.com/pop-os/cosmic-settings-daemon']
6060
# cosmic-settings-config = { git = "https://github.com/pop-os/cosmic-settings-daemon//", branch = "input_nobuild" }
@@ -67,6 +67,7 @@ cosmic-client-toolkit = { git = "https://github.com/pop-os/cosmic-protocols//",
6767
# libcosmic = { path = "../libcosmic" }
6868
# cosmic-config = { path = "../libcosmic/cosmic-config" }
6969
# cosmic-theme = { path = "../libcosmic/cosmic-theme" }
70+
# iced_futures = { path = "../libcosmic/iced/futures" }
7071

7172
# [patch.'https://github.com/pop-os/dbus-settings-bindings']
7273
# cosmic-dbus-networkmanager = { path = "../dbus-settings-bindings/networkmanager" }

cosmic-settings/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ serde = { version = "1.0.219", features = ["derive"] }
6363
slab = "0.4.9"
6464
slotmap = "1.0.7"
6565
static_init = "1.0.3"
66-
sunrise = "1.2.1"
66+
sunrise = "2.1.0"
6767
tachyonix = "0.3.1"
6868
timedate-zbus = { git = "https://github.com/pop-os/dbus-settings-bindings", optional = true }
6969
tokio = { workspace = true, features = ["fs", "io-util", "sync"] }
@@ -117,7 +117,7 @@ git = "https://github.com/AerynOS/locales-rs"
117117
optional = true
118118

119119
[features]
120-
default = ["a11y", "dbus-config", "linux", "single-instance", "wgpu"]
120+
default = ["a11y", "linux", "single-instance", "wgpu"]
121121
gettext = ["dep:gettext-rs"]
122122

123123
# Default features for Linux

cosmic-settings/src/app.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,10 @@ impl cosmic::Application for SettingsApp {
231231
}
232232
.unwrap_or(desktop_id);
233233

234-
let task = app.activate_page(active_id);
234+
let task = Task::batch([
235+
cosmic::command::set_theme(cosmic::theme::system_preference()),
236+
app.activate_page(active_id),
237+
]);
235238
(app, task)
236239
}
237240

@@ -761,8 +764,9 @@ impl cosmic::Application for SettingsApp {
761764
}
762765
}
763766

764-
Message::SetTheme(t) => return cosmic::command::set_theme(t),
765-
767+
Message::SetTheme(t) => {
768+
return cosmic::command::set_theme(t);
769+
}
766770
Message::OpenContextDrawer(page) => {
767771
self.core.window.show_context = true;
768772
self.active_context_page = Some(page);

cosmic-settings/src/pages/accessibility/mod.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -265,21 +265,22 @@ pub fn vision() -> section::Section<crate::pages::Message> {
265265
&page.screen_filter_selections[0..4]
266266
};
267267

268-
let dropdown = dropdown::popup_dropdown::<
269-
_,
270-
crate::pages::Message,
271-
crate::pages::Message,
272-
>(
268+
let dropdown = cosmic::Element::from(dropdown::popup_dropdown(
273269
selections,
274270
Some(page.screen_filter_selection as usize),
275271
move |idx| {
276272
let filter = ColorFilter::from_usize(idx).unwrap_or_default();
277273
Message::SetScreenFilterSelection(filter).into()
278274
},
279275
cosmic::iced::window::Id::RESERVED,
280-
|action| Message::Surface(action).into(),
281-
|a| a,
282-
);
276+
Message::Surface,
277+
|a| {
278+
crate::app::Message::PageMessage(crate::pages::Message::Accessibility(
279+
a,
280+
))
281+
},
282+
))
283+
.map(crate::pages::Message::Accessibility);
283284

284285
settings::item::builder(&descriptions[color_filter_type]).control(dropdown)
285286
})

cosmic-settings/src/pages/applications/legacy_applications.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ pub enum Message {
3636
Surface(surface::Action),
3737
}
3838

39+
impl From<Message> for crate::pages::Message {
40+
fn from(message: Message) -> Self {
41+
crate::pages::Message::LegacyApplications(message)
42+
}
43+
}
44+
3945
pub struct Page {
4046
refresh_pending: Arc<AtomicBool>,
4147
randr_handle: Option<(oneshot::Sender<()>, cosmic::iced::task::Handle)>,
@@ -272,13 +278,13 @@ pub fn legacy_application_global_shortcuts() -> Section<crate::pages::Message> {
272278
let title = widget::text::body(&section.title).font(cosmic::font::bold());
273279
let description = widget::text::body(&section.descriptions[desc]);
274280

275-
let content = widget::settings::section()
281+
let content = widget::settings::section::<'_, crate::pages::Message>()
276282
.add(widget::settings::item_row(vec![
277283
widget::radio(
278284
text::body(&section.descriptions[none]),
279285
EavesdroppingKeyboardMode::None,
280286
Some(page.comp_config_xwayland_eavesdropping.keyboard),
281-
Message::SetXwaylandKeyboardMode,
287+
|t| Message::SetXwaylandKeyboardMode(t).into(),
282288
)
283289
.width(Length::Fill)
284290
.into(),
@@ -288,7 +294,7 @@ pub fn legacy_application_global_shortcuts() -> Section<crate::pages::Message> {
288294
text::body(&section.descriptions[modifiers]),
289295
EavesdroppingKeyboardMode::Modifiers,
290296
Some(page.comp_config_xwayland_eavesdropping.keyboard),
291-
Message::SetXwaylandKeyboardMode,
297+
|t| Message::SetXwaylandKeyboardMode(t).into(),
292298
)
293299
.width(Length::Fill)
294300
.into(),
@@ -298,7 +304,7 @@ pub fn legacy_application_global_shortcuts() -> Section<crate::pages::Message> {
298304
text::body(&section.descriptions[combination]),
299305
EavesdroppingKeyboardMode::Combinations,
300306
Some(page.comp_config_xwayland_eavesdropping.keyboard),
301-
Message::SetXwaylandKeyboardMode,
307+
|t| Message::SetXwaylandKeyboardMode(t).into(),
302308
)
303309
.width(Length::Fill)
304310
.into(),
@@ -308,18 +314,16 @@ pub fn legacy_application_global_shortcuts() -> Section<crate::pages::Message> {
308314
text::body(&section.descriptions[all]),
309315
EavesdroppingKeyboardMode::All,
310316
Some(page.comp_config_xwayland_eavesdropping.keyboard),
311-
Message::SetXwaylandKeyboardMode,
317+
|t| Message::SetXwaylandKeyboardMode(t).into(),
312318
)
313319
.width(Length::Fill)
314320
.into(),
315321
]))
316322
.add(widget::settings::item(
317323
&section.descriptions[mouse],
318324
widget::toggler(page.comp_config_xwayland_eavesdropping.pointer)
319-
.on_toggle(Message::SetXwaylandMouseButtonMode),
320-
))
321-
.apply(Element::from)
322-
.map(crate::pages::Message::LegacyApplications);
325+
.on_toggle(|t| Message::SetXwaylandMouseButtonMode(t).into()),
326+
));
323327

324328
widget::column::with_capacity(3)
325329
.push(title)

cosmic-settings/src/pages/applications/startup_apps.rs

Lines changed: 38 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -114,16 +114,14 @@ impl page::Page<crate::pages::Message> for Page {
114114
match &self.context {
115115
Some(Context::AddApplication(directory_type)) => {
116116
let search = widget::search_input(fl!("type-to-search"), &self.application_search)
117-
.on_input(Message::ApplicationSearch)
118-
.on_clear(Message::ApplicationSearch(String::new()))
119-
.apply(Element::from)
120-
.map(crate::pages::Message::from);
117+
.on_input(|i| Message::ApplicationSearch(i).into())
118+
.on_clear(Message::ApplicationSearch(String::new()).into())
119+
.apply(Element::from);
121120

122121
Some(
123122
cosmic::app::context_drawer(
124-
self.add_application_context_view(directory_type.clone())
125-
.map(crate::pages::Message::from),
126-
crate::pages::Message::CloseContextDrawer,
123+
self.add_application_context_view(directory_type.clone()),
124+
crate::pages::Message::CloseContextDrawer.into(),
127125
)
128126
.title(fl!("startup-apps", "search-for-application"))
129127
.header(search),
@@ -158,7 +156,7 @@ impl page::Page<crate::pages::Message> for Page {
158156
task
159157
}
160158

161-
fn dialog(&self) -> Option<Element<'_, crate::pages::Message>> {
159+
fn dialog(&self) -> Option<crate::pages::Element<'_>> {
162160
if let Some(app_to_remove) = &self.app_to_remove {
163161
if let Some(cached_startup_apps) = &self.cached_startup_apps {
164162
if let Some(target_directory_type) = &self.target_directory_type {
@@ -171,19 +169,21 @@ impl page::Page<crate::pages::Message> for Page {
171169
))
172170
.icon(icon::from_name("dialog-warning").size(64))
173171
.body(fl!("startup-apps", "remove-dialog-description"))
174-
.primary_action(button::suggested(fl!("remove")).on_press(
175-
Message::RemoveStartupApplication(
176-
target_directory_type.clone(),
177-
app_to_remove.clone(),
178-
true,
172+
.primary_action(
173+
button::suggested(fl!("remove")).on_press(
174+
Message::RemoveStartupApplication(
175+
target_directory_type.clone(),
176+
app_to_remove.clone(),
177+
true,
178+
)
179+
.into(),
179180
),
180-
))
181+
)
181182
.secondary_action(
182183
button::standard(fl!("cancel"))
183-
.on_press(Message::CancelRemoveStartupApplication),
184+
.on_press(Message::CancelRemoveStartupApplication.into()),
184185
)
185-
.apply(Element::from)
186-
.map(crate::pages::Message::StartupApps),
186+
.apply(Element::from),
187187
);
188188
}
189189
}
@@ -322,7 +322,7 @@ impl Page {
322322
pub fn add_application_context_view(
323323
&self,
324324
directory_type: DirectoryType,
325-
) -> Element<'_, crate::pages::Message> {
325+
) -> crate::pages::Element<'_> {
326326
let cosmic::cosmic_theme::Spacing { space_xs, .. } = cosmic::theme::spacing();
327327

328328
let mut list = widget::list_column();
@@ -350,9 +350,15 @@ impl Page {
350350
} else {
351351
row = row.push(text(&app.appid).width(Length::Fill));
352352
}
353-
row = row.push(widget::button::text(fl!("add")).on_press(
354-
Message::AddStartupApplication(directory_type.clone(), app.clone()),
355-
));
353+
row = row.push(
354+
widget::button::text(fl!("add")).on_press(
355+
Message::AddStartupApplication(
356+
directory_type.clone(),
357+
app.clone(),
358+
)
359+
.into(),
360+
),
361+
);
356362

357363
list = list.add(row)
358364
}
@@ -361,8 +367,7 @@ impl Page {
361367
}
362368
}
363369

364-
list.apply(Element::from)
365-
.map(crate::pages::Message::StartupApps)
370+
list.into()
366371
}
367372
}
368373

@@ -409,19 +414,22 @@ fn apps() -> Section<crate::pages::Message> {
409414
row = row.push(
410415
button::icon(icon::from_name("edit-delete-symbolic"))
411416
.extra_small()
412-
.on_press(Message::RemoveStartupApplication(
413-
directory_type.clone(),
414-
app.clone(),
415-
false,
416-
)),
417+
.on_press(
418+
Message::RemoveStartupApplication(
419+
directory_type.clone(),
420+
app.clone(),
421+
false,
422+
)
423+
.into(),
424+
),
417425
);
418426

419427
section = section.add(row)
420428
}
421429
}
422430

423431
let add_startup_app = widget::button::standard(fl!("startup-apps", "add"))
424-
.on_press(Message::ShowApplicationSidebar(directory_type.clone()));
432+
.on_press(Message::ShowApplicationSidebar(directory_type.clone()).into());
425433

426434
view = view.push(section).push(widget::container(
427435
widget::container(add_startup_app)
@@ -431,8 +439,7 @@ fn apps() -> Section<crate::pages::Message> {
431439
}
432440
}
433441

434-
view.apply(Element::from)
435-
.map(crate::pages::Message::StartupApps)
442+
view.into()
436443
})
437444
}
438445

cosmic-settings/src/pages/bluetooth/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ use slotmap::SlotMap;
1414
use std::collections::{HashMap, HashSet};
1515
use std::sync::Arc;
1616
use std::time::Duration;
17-
use tokio::runtime::Handle;
1817
use zbus::zvariant::OwnedObjectPath;
1918

2019
enum Dialog {

0 commit comments

Comments
 (0)