1
0
Fork 0
mirror of synced 2024-05-10 07:22:36 +12:00
czkawka/krokiet/src/connect_open.rs
2023-12-03 12:06:42 +01:00

40 lines
1.3 KiB
Rust

use crate::{Callabler, MainWindow};
use directories_next::ProjectDirs;
use log::error;
use slint::ComponentHandle;
pub fn connect_open_items(app: &MainWindow) {
app.global::<Callabler>().on_item_opened(move |path| {
match open::that(&*path) {
Ok(()) => {}
Err(e) => {
eprintln!("Failed to open file: {e}");
}
};
// TODO - this should be added to line edit
});
app.global::<Callabler>().on_open_config_folder(move || {
let Some(dirs) = ProjectDirs::from("pl", "Qarmin", "Krokiet") else {
error!("Failed to open config folder");
return;
};
let config_folder = dirs.config_dir();
if let Err(e) = open::that(config_folder) {
error!("Failed to open config folder {:?}: {e}", config_folder);
}
});
// Cache uses Czkawka name to easily change between apps
app.global::<Callabler>().on_open_cache_folder(move || {
let Some(dirs) = ProjectDirs::from("pl", "Qarmin", "Czkawka") else {
error!("Failed to open cache folder");
return;
};
let cache_folder = dirs.cache_dir();
if let Err(e) = open::that(cache_folder) {
error!("Failed to open cache folder {:?}: {e}", cache_folder);
}
});
}