Integrate cosmic-files dialog

This commit is contained in:
Jeremy Soller 2024-02-13 13:05:49 -07:00
parent c9ebbd59b0
commit 4df5c5882a
No known key found for this signature in database
GPG key ID: D02FD439211AF56F
3 changed files with 255 additions and 88 deletions

235
Cargo.lock generated
View file

@ -203,6 +203,54 @@ dependencies = [
"libc",
]
[[package]]
name = "anstream"
version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
dependencies = [
"anstyle",
"anstyle-parse",
"anstyle-query",
"anstyle-wincon",
"colorchoice",
"utf8parse",
]
[[package]]
name = "anstyle"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
[[package]]
name = "anstyle-parse"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
dependencies = [
"utf8parse",
]
[[package]]
name = "anstyle-query"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "anstyle-wincon"
version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
dependencies = [
"anstyle",
"windows-sys 0.52.0",
]
[[package]]
name = "any_ascii"
version = "0.1.7"
@ -821,6 +869,7 @@ dependencies = [
"iana-time-zone",
"js-sys",
"num-traits",
"pure-rust-locales",
"wasm-bindgen",
"windows-targets 0.52.0",
]
@ -847,18 +896,18 @@ dependencies = [
[[package]]
name = "clipboard_wayland"
version = "0.2.1"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8134163bd07c47ae3cc29babc42c255fdb315facc790950ae2d0e561ea6f2ec0"
checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8"
dependencies = [
"smithay-clipboard",
]
[[package]]
name = "clipboard_x11"
version = "0.4.1"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cf45b436634fee64c6d3981639b46a87eeea3c64e422643273fcefd1baef56c"
checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c"
dependencies = [
"thiserror",
"x11rb",
@ -926,6 +975,12 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
[[package]]
name = "colorchoice"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]]
name = "com"
version = "0.6.0"
@ -1093,7 +1148,7 @@ dependencies = [
[[package]]
name = "cosmic-config"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"atomicwrites",
"cosmic-config-derive",
@ -1110,7 +1165,7 @@ dependencies = [
[[package]]
name = "cosmic-config-derive"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"quote",
"syn 1.0.109",
@ -1120,9 +1175,10 @@ dependencies = [
name = "cosmic-edit"
version = "0.1.0"
dependencies = [
"cosmic-files",
"cosmic-syntax-theme",
"cosmic-text",
"env_logger",
"env_logger 0.10.2",
"fork",
"grep",
"i18n-embed",
@ -1133,7 +1189,6 @@ dependencies = [
"log",
"notify",
"patch",
"rfd",
"rust-embed",
"serde",
"smol_str",
@ -1143,6 +1198,31 @@ dependencies = [
"two-face",
]
[[package]]
name = "cosmic-files"
version = "0.1.0"
source = "git+https://github.com/pop-os/cosmic-files#5dc65515fcdb700095193a32b05dae032f2b4eca"
dependencies = [
"chrono",
"dirs",
"env_logger 0.11.1",
"fork",
"i18n-embed",
"i18n-embed-fl",
"lexical-sort",
"libcosmic",
"log",
"notify",
"once_cell",
"paste",
"rust-embed",
"serde",
"smol_str",
"systemicons",
"tokio",
"trash",
]
[[package]]
name = "cosmic-syntax-theme"
version = "0.1.0"
@ -1181,7 +1261,7 @@ dependencies = [
[[package]]
name = "cosmic-theme"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"almost",
"cosmic-config",
@ -1658,6 +1738,16 @@ dependencies = [
"syn 2.0.48",
]
[[package]]
name = "env_filter"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
dependencies = [
"log",
"regex",
]
[[package]]
name = "env_logger"
version = "0.10.2"
@ -1671,6 +1761,19 @@ dependencies = [
"termcolor",
]
[[package]]
name = "env_logger"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05e7cf40684ae96ade6232ed84582f40ce0a66efcd43a5117aef610534f8e0b8"
dependencies = [
"anstream",
"anstyle",
"env_filter",
"humantime",
"log",
]
[[package]]
name = "equivalent"
version = "1.0.1"
@ -2020,9 +2123,9 @@ dependencies = [
[[package]]
name = "freedesktop-icons"
version = "0.2.5"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5339cbd60b2ff6b95ef212ab96bc80bf1a9dff2821b9966c417cdfae2808796"
checksum = "a8ef34245e0540c9a3ce7a28340b98d2c12b75da0d446da4e8224923fcaa0c16"
dependencies = [
"dirs",
"once_cell",
@ -2569,9 +2672,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
[[package]]
name = "hermit-abi"
version = "0.3.5"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3"
checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
[[package]]
name = "hex"
@ -2687,7 +2790,7 @@ dependencies = [
[[package]]
name = "iced"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"iced_accessibility",
"iced_core",
@ -2702,7 +2805,7 @@ dependencies = [
[[package]]
name = "iced_accessibility"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"accesskit",
"accesskit_winit",
@ -2711,7 +2814,7 @@ dependencies = [
[[package]]
name = "iced_core"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"bitflags 1.3.2",
"log",
@ -2728,7 +2831,7 @@ dependencies = [
[[package]]
name = "iced_futures"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"futures",
"iced_core",
@ -2741,7 +2844,7 @@ dependencies = [
[[package]]
name = "iced_graphics"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"bitflags 1.3.2",
"bytemuck",
@ -2765,7 +2868,7 @@ dependencies = [
[[package]]
name = "iced_renderer"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"iced_graphics",
"iced_tiny_skia",
@ -2777,7 +2880,7 @@ dependencies = [
[[package]]
name = "iced_runtime"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"iced_core",
"iced_futures",
@ -2787,7 +2890,7 @@ dependencies = [
[[package]]
name = "iced_style"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"iced_core",
"once_cell",
@ -2797,7 +2900,7 @@ dependencies = [
[[package]]
name = "iced_tiny_skia"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"bytemuck",
"cosmic-text",
@ -2814,7 +2917,7 @@ dependencies = [
[[package]]
name = "iced_wgpu"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"bitflags 1.3.2",
"bytemuck",
@ -2833,7 +2936,7 @@ dependencies = [
[[package]]
name = "iced_widget"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"iced_renderer",
"iced_runtime",
@ -2847,7 +2950,7 @@ dependencies = [
[[package]]
name = "iced_winit"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"iced_graphics",
"iced_runtime",
@ -3208,7 +3311,7 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]]
name = "libcosmic"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
dependencies = [
"apply",
"ashpd",
@ -4421,12 +4524,6 @@ dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "pollster"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2"
[[package]]
name = "powerfmt"
version = "0.2.0"
@ -4512,6 +4609,12 @@ version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f0f7f43585c34e4fdd7497d746bc32e14458cf11c69341cc0587b1d825dde42"
[[package]]
name = "pure-rust-locales"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1190fd18ae6ce9e137184f207593877e70f39b015040156b1e05081cdfe3733a"
[[package]]
name = "qoi"
version = "0.4.1"
@ -4754,9 +4857,7 @@ dependencies = [
"objc",
"objc-foundation",
"objc_id",
"pollster",
"raw-window-handle 0.5.2",
"urlencoding",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
@ -5603,7 +5704,7 @@ dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
"toml_edit 0.22.4",
"toml_edit 0.22.5",
]
[[package]]
@ -5623,7 +5724,7 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
"indexmap",
"toml_datetime",
"winnow",
"winnow 0.5.40",
]
[[package]]
@ -5634,20 +5735,20 @@ checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
dependencies = [
"indexmap",
"toml_datetime",
"winnow",
"winnow 0.5.40",
]
[[package]]
name = "toml_edit"
version = "0.22.4"
version = "0.22.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951"
checksum = "99e68c159e8f5ba8a28c4eb7b0c0c190d77bb479047ca713270048145a9ad28a"
dependencies = [
"indexmap",
"serde",
"serde_spanned",
"toml_datetime",
"winnow",
"winnow 0.6.0",
]
[[package]]
@ -5681,6 +5782,22 @@ dependencies = [
"once_cell",
]
[[package]]
name = "trash"
version = "3.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c658458d46d9d5a153a3b5cdd88d8579ad50d4fb85d53961e4526c8fc7c55a57"
dependencies = [
"chrono",
"libc",
"log",
"objc",
"once_cell",
"scopeguard",
"url",
"windows 0.44.0",
]
[[package]]
name = "ttf-parser"
version = "0.15.2"
@ -5851,12 +5968,6 @@ dependencies = [
"serde",
]
[[package]]
name = "urlencoding"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
[[package]]
name = "usvg"
version = "0.37.0"
@ -5918,6 +6029,12 @@ dependencies = [
"tiny-skia-path",
]
[[package]]
name = "utf8parse"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
name = "version-compare"
version = "0.1.1"
@ -6382,9 +6499,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "window_clipboard"
version = "0.4.0"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6a197337269a469b5b2583d65dd7dfe475fd79a525be0aa647ff6d37ac6612c"
checksum = "f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d"
dependencies = [
"clipboard-win",
"clipboard_macos",
@ -6394,6 +6511,15 @@ dependencies = [
"thiserror",
]
[[package]]
name = "windows"
version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
dependencies = [
"windows-targets 0.42.2",
]
[[package]]
name = "windows"
version = "0.48.0"
@ -6725,9 +6851,18 @@ dependencies = [
[[package]]
name = "winnow"
version = "0.5.39"
version = "0.5.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29"
checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
dependencies = [
"memchr",
]
[[package]]
name = "winnow"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b1dbce9e90e5404c5a52ed82b1d13fc8cfbdad85033b6f57546ffd1265f8451"
dependencies = [
"memchr",
]

View file

@ -24,6 +24,10 @@ i18n-embed = { version = "0.14", features = ["fluent-system", "desktop-requester
i18n-embed-fl = "0.7"
rust-embed = "8"
[dependencies.cosmic-files]
git = "https://github.com/pop-os/cosmic-files"
default-features = false
[dependencies.cosmic-syntax-theme]
git = "https://github.com/pop-os/cosmic-syntax-theme"
@ -34,13 +38,7 @@ features = ["syntect", "vi"]
[dependencies.libcosmic]
git = "https://github.com/pop-os/libcosmic"
default-features = false
features = ["tokio", "winit"]
[dependencies.rfd]
version = "0.13.0"
default-features = false
features = ["tokio", "xdg-portal"]
optional = true
features = ["multi-window", "tokio", "winit"]
[dependencies.smol_str]
version = "0.2.1"
@ -54,8 +52,8 @@ git = "https://github.com/jackpot51/systemicons"
fork = "0.1"
[features]
default = ["rfd", "wgpu"]
wgpu = ["libcosmic/wgpu"]
default = ["wgpu"]
wgpu = ["libcosmic/wgpu", "cosmic-files/wgpu"]
[profile.release-with-debug]
inherits = "release"

View file

@ -17,6 +17,7 @@ use cosmic::{
widget::{self, button, icon, nav_bar, segmented_button, view_switcher},
Application, ApplicationExt, Apply, Element,
};
use cosmic_files::dialog::{Dialog, DialogMessage, DialogResult};
use cosmic_text::{Cursor, Edit, Family, FontSystem, Selection, SwashCache, SyntaxSystem, ViMode};
use serde::{Deserialize, Serialize};
use std::{
@ -279,6 +280,7 @@ pub enum Message {
Cut,
DefaultFont(usize),
DefaultFontSize(usize),
DialogMessage(DialogMessage),
Find(Option<bool>),
FindNext,
FindPrevious,
@ -293,11 +295,12 @@ pub enum Message {
NewWindow,
NotifyEvent(notify::Event),
NotifyWatcher(WatcherWrapper),
OpenFileDialog,
OpenFile(PathBuf),
OpenFileDialog,
OpenFileResult(DialogResult),
OpenGitDiff(PathBuf, GitDiff),
OpenProjectDialog,
OpenProject(PathBuf),
OpenProjectResult(DialogResult),
OpenSearchResult(usize, usize),
Paste,
PasteValue(String),
@ -371,6 +374,7 @@ pub struct App {
theme_names: Vec<String>,
context_page: ContextPage,
text_box_id: widget::Id,
dialog_opt: Option<Dialog<Message>>,
find_opt: Option<bool>,
find_replace_id: widget::Id,
find_replace_value: String,
@ -637,7 +641,10 @@ impl App {
let window_title = format!("{title} - COSMIC Text Editor");
self.set_header_title(title.clone());
Command::batch([self.set_window_title(window_title), self.update_focus()])
Command::batch([
self.set_window_title(window_title, self.main_window_id()),
self.update_focus(),
])
}
fn document_statistics(&self) -> Element<Message> {
@ -1078,6 +1085,7 @@ impl Application for App {
theme_names,
context_page: ContextPage::Settings,
text_box_id: widget::Id::unique(),
dialog_opt: None,
find_opt: None,
find_replace_id: widget::Id::unique(),
find_replace_value: String::new(),
@ -1322,6 +1330,11 @@ impl Application for App {
log::warn!("failed to find font with index {}", index);
}
},
Message::DialogMessage(dialog_message) => {
if let Some(dialog) = &mut self.dialog_opt {
return dialog.update(dialog_message);
}
}
Message::Find(find_opt) => {
self.find_opt = find_opt;
@ -1454,23 +1467,30 @@ impl Application for App {
log::warn!("message did not contain notify watcher");
}
},
Message::OpenFileDialog => {
#[cfg(feature = "rfd")]
return Command::perform(
async {
if let Some(handle) = rfd::AsyncFileDialog::new().pick_file().await {
message::app(Message::OpenFile(handle.path().to_owned()))
} else {
message::none()
}
},
|x| x,
);
}
Message::OpenFile(path) => {
self.open_tab(Some(path));
return self.update_tab();
}
Message::OpenFileDialog => {
if self.dialog_opt.is_none() {
let (dialog, command) =
Dialog::new(Message::DialogMessage, Message::OpenFileResult);
self.dialog_opt = Some(dialog);
return command;
}
}
Message::OpenFileResult(result) => {
self.dialog_opt = None;
match result {
DialogResult::Cancel => {}
DialogResult::Open(paths) => {
for path in paths {
self.open_tab(Some(path));
}
return self.update_tab();
}
}
}
Message::OpenGitDiff(project_path, diff) => {
let relative_path = match diff.path.strip_prefix(project_path.clone()) {
Ok(ok) => ok,
@ -1505,20 +1525,23 @@ impl Application for App {
return self.update_tab();
}
Message::OpenProjectDialog => {
#[cfg(feature = "rfd")]
return Command::perform(
async {
if let Some(handle) = rfd::AsyncFileDialog::new().pick_folder().await {
message::app(Message::OpenProject(handle.path().to_owned()))
} else {
message::none()
}
},
|x| x,
);
if self.dialog_opt.is_none() {
let (dialog, command) =
Dialog::new(Message::DialogMessage, Message::OpenProjectResult);
self.dialog_opt = Some(dialog);
return command;
}
}
Message::OpenProject(path) => {
self.open_project(path);
Message::OpenProjectResult(result) => {
self.dialog_opt = None;
match result {
DialogResult::Cancel => {}
DialogResult::Open(paths) => {
for path in paths {
self.open_project(path);
}
}
}
}
Message::OpenSearchResult(file_i, line_i) => {
let path_cursor_opt = match &self.project_search_result {
@ -2158,6 +2181,13 @@ impl Application for App {
content
}
fn view_window(&self, window_id: window::Id) -> Element<Message> {
match &self.dialog_opt {
Some(dialog) => dialog.view(window_id),
None => widget::text("Unknown window ID").into(),
}
}
fn subscription(&self) -> subscription::Subscription<Message> {
struct WatcherSubscription;
struct ConfigSubscription;
@ -2259,6 +2289,10 @@ impl Application for App {
Message::SystemThemeModeChange(update.config)
}),
match &self.dialog_opt {
Some(dialog) => dialog.subscription(),
None => subscription::Subscription::none(),
},
])
}
}