From 592ec9a040e077c26ee445af6b7d2dc8c2658810 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Sun, 5 Nov 2023 10:01:37 +0100 Subject: [PATCH] AB --- Cargo.lock | 118 ++++++++++-------- czkawka_slint_gui/Cargo.toml | 4 +- czkawka_slint_gui/README.md | 5 + czkawka_slint_gui/src/connect_delete.rs | 3 +- .../src/connect_directories_changes.rs | 42 ++++++- czkawka_slint_gui/src/connect_scan.rs | 3 +- czkawka_slint_gui/src/main.rs | 13 +- czkawka_slint_gui/src/settings.rs | 19 ++- czkawka_slint_gui/ui/bottom_panel.slint | 10 +- czkawka_slint_gui/ui/main_window.slint | 2 +- czkawka_slint_gui/ui/settings.slint | 2 + 11 files changed, 139 insertions(+), 82 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0cdabc6..7ead23b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -669,9 +669,9 @@ dependencies = [ [[package]] name = "cairo-rs" -version = "0.18.2" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c0466dfa8c0ee78deef390c274ad756801e0a6dbb86c5ef0924a298c5761c4d" +checksum = "f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1" dependencies = [ "bitflags 2.4.1", "cairo-sys-rs", @@ -996,7 +996,7 @@ dependencies = [ [[package]] name = "const-field-offset" version = "0.1.3" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "const-field-offset-macro", "field-offset", @@ -1005,7 +1005,7 @@ dependencies = [ [[package]] name = "const-field-offset-macro" version = "0.1.3" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "proc-macro2", "quote", @@ -1235,9 +1235,9 @@ dependencies = [ [[package]] name = "cursor-icon" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740bb192a8e2d1350119916954f4409ee7f62f149b536911eeb78ba5a20526bf" +checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" [[package]] name = "czkawka_cli" @@ -1333,6 +1333,7 @@ dependencies = [ "czkawka_core", "handsome_logger", "home", + "log", "open", "rand", "rfd", @@ -2119,9 +2120,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.18.0" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbc9c2ed73a81d556b65d08879ba4ee58808a6b1927ce915262185d6d547c6f3" +checksum = "446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c" dependencies = [ "gdk-pixbuf-sys", "gio", @@ -2242,9 +2243,9 @@ dependencies = [ [[package]] name = "gio" -version = "0.18.2" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57052f84e8e5999b258e8adf8f5f2af0ac69033864936b8b6838321db2f759b1" +checksum = "47d809baf02bdf1b5ef4ad3bf60dd9d4977149db4612b7bbb58e56aef168193b" dependencies = [ "futures-channel", "futures-core", @@ -2285,9 +2286,9 @@ dependencies = [ [[package]] name = "glib" -version = "0.18.2" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c316afb01ce8067c5eaab1fc4f2cd47dc21ce7b6296358605e2ffab23ccbd19" +checksum = "58cf801b6f7829fa76db37449ab67c9c98a2b1bf21076d9113225621e61a0fa6" dependencies = [ "bitflags 2.4.1", "futures-channel", @@ -2308,12 +2309,12 @@ dependencies = [ [[package]] name = "glib-macros" -version = "0.18.2" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8da903822b136d42360518653fcf154455defc437d3e7a81475bf9a95ff1e47" +checksum = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5" dependencies = [ "heck", - "proc-macro-crate 1.3.1", + "proc-macro-crate 2.0.0", "proc-macro-error", "proc-macro2", "quote", @@ -2651,7 +2652,7 @@ dependencies = [ [[package]] name = "i-slint-backend-linuxkms" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "calloop 0.11.0", "drm", @@ -2672,7 +2673,7 @@ dependencies = [ [[package]] name = "i-slint-backend-selector" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "cfg-if", "i-slint-backend-linuxkms", @@ -2685,7 +2686,7 @@ dependencies = [ [[package]] name = "i-slint-backend-winit" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "accesskit", "bytemuck", @@ -2721,7 +2722,7 @@ dependencies = [ [[package]] name = "i-slint-common" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "cfg-if", "derive_more", @@ -2732,7 +2733,7 @@ dependencies = [ [[package]] name = "i-slint-compiler" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "by_address", "codemap", @@ -2761,7 +2762,7 @@ dependencies = [ [[package]] name = "i-slint-core" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "auto_enums", "bytemuck", @@ -2804,7 +2805,7 @@ dependencies = [ [[package]] name = "i-slint-core-macros" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "quote", "syn 2.0.38", @@ -2813,7 +2814,7 @@ dependencies = [ [[package]] name = "i-slint-renderer-femtovg" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "cfg-if", "const-field-offset", @@ -2845,7 +2846,7 @@ dependencies = [ [[package]] name = "i-slint-renderer-skia" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "ash", "bytemuck", @@ -3382,6 +3383,28 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall 0.4.1", +] + +[[package]] +name = "libredox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall 0.4.1", +] + [[package]] name = "libseat" version = "0.2.1" @@ -3944,11 +3967,11 @@ dependencies = [ [[package]] name = "orbclient" -version = "0.3.46" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8378ac0dfbd4e7895f2d2c1f1345cab3836910baf3a300b000d04250f0c8428f" +checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" dependencies = [ - "redox_syscall 0.3.5", + "libredox 0.0.2", ] [[package]] @@ -3978,9 +4001,9 @@ dependencies = [ [[package]] name = "pango" -version = "0.18.0" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06a9e54b831d033206160096b825f2070cf5fda7e35167b1c01e9e774f9202d1" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" dependencies = [ "gio", "glib", @@ -4436,15 +4459,6 @@ dependencies = [ "rustfft 6.1.0", ] -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.3.5" @@ -4465,12 +4479,12 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ "getrandom", - "redox_syscall 0.2.16", + "libredox 0.0.1", "thiserror", ] @@ -5038,7 +5052,7 @@ dependencies = [ [[package]] name = "slint" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "const-field-offset", "i-slint-backend-selector", @@ -5054,7 +5068,7 @@ dependencies = [ [[package]] name = "slint-build" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "i-slint-compiler", "spin_on", @@ -5065,7 +5079,7 @@ dependencies = [ [[package]] name = "slint-macros" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "i-slint-compiler", "proc-macro2", @@ -6199,7 +6213,7 @@ dependencies = [ [[package]] name = "vtable" version = "0.1.11" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "const-field-offset", "portable-atomic", @@ -6210,7 +6224,7 @@ dependencies = [ [[package]] name = "vtable-macro" version = "0.1.10" -source = "git+https://github.com/slint-ui/slint.git#50a6040c38cf93c6cd0e21255e052286b468a59c" +source = "git+https://github.com/slint-ui/slint.git#8becbeb2926335400e4e31ab2d0758698a7ac627" dependencies = [ "proc-macro2", "quote", @@ -6735,9 +6749,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.5.18" +version = "0.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176b6138793677221d420fd2f0aeeced263f197688b36484660da767bca2fa32" +checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" dependencies = [ "memchr", ] @@ -6956,18 +6970,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.21" +version = "0.7.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686b7e407015242119c33dab17b8f61ba6843534de936d94368856528eae4dcc" +checksum = "8cd369a67c0edfef15010f980c3cbe45d7f651deac2cd67ce097cd801de16557" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.21" +version = "0.7.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020f3dfe25dfc38dfea49ce62d5d45ecdd7f0d8a724fa63eb36b6eba4ec76806" +checksum = "c2f140bda219a26ccc0cdb03dba58af72590c53b22642577d88a927bc5c87d6b" dependencies = [ "proc-macro2", "quote", diff --git a/czkawka_slint_gui/Cargo.toml b/czkawka_slint_gui/Cargo.toml index 34dfacf..706185a 100644 --- a/czkawka_slint_gui/Cargo.toml +++ b/czkawka_slint_gui/Cargo.toml @@ -29,13 +29,15 @@ crossbeam-channel = "0.5.8" handsome_logger = "0.8.0" rfd = { version = "0.12.0", default-features = false, features = ["xdg-portal"] } home = "0.5.5" +log = "0.4.20" [build-dependencies] #slint-build = "1.2.2" slint-build = { git = "https://github.com/slint-ui/slint.git" } [features] -default = ["winit_femtovg", "winit_software"] +# TODO remove from deault features skia, because is harder to cross-compile it +default = ["winit_femtovg", "winit_software", "winit_skia_opengl"] skia_opengl = ["slint/renderer-skia-opengl"] skia_vulkan = ["slint/renderer-skia-vulkan"] software = ["slint/renderer-software"] diff --git a/czkawka_slint_gui/README.md b/czkawka_slint_gui/README.md index 87e4f0f..ea879d8 100644 --- a/czkawka_slint_gui/README.md +++ b/czkawka_slint_gui/README.md @@ -10,6 +10,11 @@ Slint version of app should not have any special runtime requirements - it shoul Alternatively, it can be run with software rendering. ## Compilation +Ubuntu +``` +sudo apt install libfontconfig-dev libfreetype-dev +``` + Default compilation is done by `cargo build --release` and should work on most systems. You need the latest available version of Rust to compile it, because NAME_TODO aims to support the latest slint verions, diff --git a/czkawka_slint_gui/src/connect_delete.rs b/czkawka_slint_gui/src/connect_delete.rs index 982f25e..9fc752e 100644 --- a/czkawka_slint_gui/src/connect_delete.rs +++ b/czkawka_slint_gui/src/connect_delete.rs @@ -4,6 +4,7 @@ use slint::{ComponentHandle, Model, ModelRc, VecModel}; use crate::MainListModel; use crate::{CurrentTab, MainWindow}; +use log::info; pub fn connect_delete_button(app: &MainWindow) { let a = app.as_weak(); @@ -34,7 +35,7 @@ fn handle_delete_empty_folders(app: &MainWindow) { // TODO delete in parallel items, consider to add progress bar fn remove_selected_items(items: Vec) { - dbg!(format!("Items to remove {}", items.len())); + info!("Items to remove {}", items.len()); drop(items); // items.into_iter().for_each(|_item| {}); } diff --git a/czkawka_slint_gui/src/connect_directories_changes.rs b/czkawka_slint_gui/src/connect_directories_changes.rs index 6691723..ae579ee 100644 --- a/czkawka_slint_gui/src/connect_directories_changes.rs +++ b/czkawka_slint_gui/src/connect_directories_changes.rs @@ -1,8 +1,46 @@ -use crate::{MainWindow, Settings}; use rfd::FileDialog; use slint::{ComponentHandle, Model, ModelRc, VecModel}; -pub fn connect_add_directories(app: &MainWindow) { +use crate::{MainWindow, Settings}; + +pub fn connect_add_remove_directories(app: &MainWindow) { + connect_add_directories(app); + connect_remove_directories(app); +} + +fn connect_remove_directories(app: &MainWindow) { + let a = app.as_weak(); + app.global::().on_remove_item_directories(move |included_directories, current_index| { + // Nothing selected + if current_index == -1 { + return; + } + let app = a.upgrade().unwrap(); + let settings = app.global::(); + + if included_directories { + let included_model = settings.get_included_directories(); + let model_count = included_model.iter().count(); + + if model_count > current_index as usize { + let mut included_model = included_model.iter().collect::>(); + included_model.remove(current_index as usize); + settings.set_included_directories(ModelRc::new(VecModel::from(included_model))); + } + } else { + let excluded_model = settings.get_excluded_directories(); + let model_count = excluded_model.iter().count(); + + if model_count > current_index as usize { + let mut excluded_model = excluded_model.iter().collect::>(); + excluded_model.remove(current_index as usize); + settings.set_excluded_directories(ModelRc::new(VecModel::from(excluded_model))); + } + } + }); +} + +fn connect_add_directories(app: &MainWindow) { let a = app.as_weak(); app.on_folder_choose_requested(move |included_directories| { let app = a.upgrade().unwrap(); diff --git a/czkawka_slint_gui/src/connect_scan.rs b/czkawka_slint_gui/src/connect_scan.rs index 9737289..8168687 100644 --- a/czkawka_slint_gui/src/connect_scan.rs +++ b/czkawka_slint_gui/src/connect_scan.rs @@ -1,7 +1,8 @@ use crate::MainListModel; -use crate::{split_path, CurrentTab, MainWindow, ProgressToSend}; +use crate::{CurrentTab, MainWindow, ProgressToSend}; use chrono::NaiveDateTime; use crossbeam_channel::{Receiver, Sender}; +use czkawka_core::common::split_path; use czkawka_core::common_dir_traversal::ProgressData; use czkawka_core::common_tool::CommonData; use czkawka_core::empty_folder::EmptyFolder; diff --git a/czkawka_slint_gui/src/main.rs b/czkawka_slint_gui/src/main.rs index c71bf77..15ae34f 100644 --- a/czkawka_slint_gui/src/main.rs +++ b/czkawka_slint_gui/src/main.rs @@ -22,14 +22,13 @@ mod connect_stop; mod settings; use crossbeam_channel::{unbounded, Receiver, Sender}; -use std::path::Path; use std::rc::Rc; use crate::connect_delete::connect_delete_button; use crate::connect_open::connect_open_items; use crate::connect_scan::connect_scan_button; -use crate::connect_directories_changes::connect_add_directories; +use crate::connect_directories_changes::connect_add_remove_directories; use crate::connect_progress_receiver::connect_progress_gathering; use crate::connect_stop::connect_stop_button; use crate::settings::reset_settings; @@ -53,7 +52,7 @@ fn main() { connect_stop_button(&app, stop_sender); connect_open_items(&app); connect_progress_gathering(&app, progress_receiver); - connect_add_directories(&app); + connect_add_remove_directories(&app); reset_settings(&app); @@ -106,11 +105,3 @@ pub fn to_remove_debug(app: &MainWindow) { app.set_empty_files_model(non_header_row_data.into()); app.set_similar_images_model(header_row_data.into()); } - -pub fn split_path(path: &Path) -> (String, String) { - match (path.parent(), path.file_name()) { - (Some(dir), Some(file)) => (dir.display().to_string(), file.to_string_lossy().into_owned()), - (Some(dir), None) => (dir.display().to_string(), String::new()), - (None, _) => (String::new(), String::new()), - } -} diff --git a/czkawka_slint_gui/src/settings.rs b/czkawka_slint_gui/src/settings.rs index 896f249..85ac33c 100644 --- a/czkawka_slint_gui/src/settings.rs +++ b/czkawka_slint_gui/src/settings.rs @@ -4,7 +4,7 @@ use std::env; use crate::common::create_string_standard_list_view; use crate::Settings; use home::home_dir; -use slint::{ComponentHandle, ModelRc, SharedString, StandardListViewItem, VecModel}; +use slint::{ComponentHandle, SharedString}; #[cfg(target_family = "unix")] const DEFAULT_EXCLUDED_DIRECTORIES: &[&str] = &["/proc", "/dev", "/sys", "/run", "/snap"]; @@ -21,23 +21,20 @@ pub fn reset_settings(app: &MainWindow) { let mut included_directories = vec![]; if let Ok(current_dir) = env::current_dir() { included_directories.push(current_dir.to_string_lossy().to_string()); + } else if let Some(home_dir) = home_dir() { + included_directories.push(home_dir.to_string_lossy().to_string()); + } else if cfg!(target_family = "unix") { + included_directories.push("/".to_string()); } else { - if let Some(home_dir) = home_dir() { - included_directories.push(home_dir.to_string_lossy().to_string()); - } else { - if cfg!(target_family = "unix") { - included_directories.push("/".to_string()); - } else { - included_directories.push("C:\\".to_string()); - } - } + // This could be set to default + included_directories.push("C:\\".to_string()); }; included_directories.sort(); let included_items = create_string_standard_list_view(&included_directories); settings.set_included_directories(included_items); // Excluded directories - let mut excluded_directories = DEFAULT_EXCLUDED_DIRECTORIES.iter().map(|x| x.to_string()).collect::>(); + let mut excluded_directories = DEFAULT_EXCLUDED_DIRECTORIES.iter().map(|x| (*x).to_string()).collect::>(); excluded_directories.sort(); let excluded_items = create_string_standard_list_view(&excluded_directories); settings.set_excluded_directories(excluded_items); diff --git a/czkawka_slint_gui/ui/bottom_panel.slint b/czkawka_slint_gui/ui/bottom_panel.slint index cccf815..737986b 100644 --- a/czkawka_slint_gui/ui/bottom_panel.slint +++ b/czkawka_slint_gui/ui/bottom_panel.slint @@ -18,6 +18,9 @@ component DirectoriesPanel { } Button { text: "Remove"; + clicked => { + Settings.remove_item_directories(true, included-list.current-item); + } } Rectangle { vertical-stretch: 1.0; @@ -29,7 +32,7 @@ component DirectoriesPanel { text: "Included Directories"; } } - StandardListView { + included_list := StandardListView { model: Settings.included-directories; } } @@ -43,6 +46,9 @@ component DirectoriesPanel { } Button { text: "Remove"; + clicked => { + Settings.remove_item_directories(false, excluded-list.current-item); + } } Rectangle { vertical-stretch: 1.0; @@ -54,7 +60,7 @@ component DirectoriesPanel { text: "Excluded Directories"; } } - StandardListView { + excluded_list := StandardListView { model: Settings.excluded-directories; } } diff --git a/czkawka_slint_gui/ui/main_window.slint b/czkawka_slint_gui/ui/main_window.slint index 6356643..9248ba6 100644 --- a/czkawka_slint_gui/ui/main_window.slint +++ b/czkawka_slint_gui/ui/main_window.slint @@ -22,7 +22,7 @@ export component MainWindow inherits Window { callback scan_ended(); min-width: 300px; - preferred-width: 2000px; + preferred-width: 800px; min-height: 300px; preferred-height: 600px; diff --git a/czkawka_slint_gui/ui/settings.slint b/czkawka_slint_gui/ui/settings.slint index e53435a..2186b15 100644 --- a/czkawka_slint_gui/ui/settings.slint +++ b/czkawka_slint_gui/ui/settings.slint @@ -8,4 +8,6 @@ export global Settings { in-out property <[StandardListViewItem]> included_directories: [{text: "ABCD"}, {text: "BCDA"}]; in-out property <[StandardListViewItem]> excluded_directories: [{text: "ABCD"}, {text: "BCDA"}, {text: "CDFFF"}]; + + callback remove_item_directories(bool, int); } \ No newline at end of file