From 0e9b8a165181268e4ed56973ee2aac7cb1136dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= <41945903+qarmin@users.noreply.github.com> Date: Sat, 24 Jul 2021 22:00:39 +0200 Subject: [PATCH] Use GtkScale instead radio buttons for similarity (#397) * Use GtkScale instead radio buttons for similarity * Fixes --- Cargo.lock | 74 +++++++++---------- czkawka_cli/src/commands.rs | 13 ++-- czkawka_core/Cargo.toml | 2 +- czkawka_core/src/similar_images.rs | 84 +++++++++++----------- czkawka_gui/src/connect_button_search.rs | 24 +------ czkawka_gui/src/connect_compute_results.rs | 3 +- czkawka_gui/src/gui_main_notebook.rs | 21 +----- czkawka_gui/src/help_functions.rs | 24 +------ czkawka_gui/src/initialize_gui.rs | 8 +++ czkawka_gui/ui/main_window.glade | 80 +++++---------------- 10 files changed, 114 insertions(+), 219 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bf15b63..a335115 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -156,13 +156,9 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] name = "bk-tree" -version = "0.4.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6121f6e107e94d717b5ca2631d56e7c2ed1542a21b2eb87b4bda1d6c1420ef3f" -dependencies = [ - "fnv", - "triple_accel", -] +checksum = "5488039ea2c6de8668351415e39a0218a8955bffadcff0cf01d1293a20854584" [[package]] name = "blake3" @@ -187,9 +183,9 @@ checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631" [[package]] name = "bytemuck" -version = "1.7.0" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9966d2ab714d0f785dbac0a0396251a35280aeb42413281617d0209ab4898435" +checksum = "72957246c41db82b8ef88a5486143830adeb8227ef9837740bdec67724cf2c5b" [[package]] name = "byteorder" @@ -274,9 +270,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.7.4" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30aa9e2ffbb838c6b451db14f3cd8e63ed622bf859f9956bc93845a10fafc26a" +checksum = "70a1d12766bbdd5d44caab5df04a9bffec9cd855a1b44b15de5665d70c085f94" dependencies = [ "smallvec", ] @@ -645,9 +641,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "futures" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27" +checksum = "1adc00f486adfc9ce99f77d717836f0c5aa84965eb0b4f051f4e83f7cab53f8b" dependencies = [ "futures-channel", "futures-core", @@ -660,9 +656,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2" +checksum = "74ed2411805f6e4e3d9bc904c95d5d423b89b3b25dc0250aa74729de20629ff9" dependencies = [ "futures-core", "futures-sink", @@ -670,15 +666,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1" +checksum = "af51b1b4a7fdff033703db39de8802c673eb91855f2e0d47dcf3bf2c0ef01f99" [[package]] name = "futures-executor" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79" +checksum = "4d0d535a57b87e1ae31437b892713aee90cd2d7b0ee48727cd11fc72ef54761c" dependencies = [ "futures-core", "futures-task", @@ -687,15 +683,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1" +checksum = "0b0e06c393068f3a6ef246c75cdca793d6a46347e75286933e5e75fd2fd11582" [[package]] name = "futures-macro" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121" +checksum = "c54913bae956fb8df7f4dc6fc90362aa72e69148e3f39041fbe8742d21e0ac57" dependencies = [ "autocfg", "proc-macro-hack", @@ -706,21 +702,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282" +checksum = "c0f30aaa67363d119812743aa5f33c201a7a66329f97d1a887022971feea4b53" [[package]] name = "futures-task" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae" +checksum = "bbe54a98670017f3be909561f6ad13e810d9a51f3f061b902062ca3da80799f2" [[package]] name = "futures-util" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967" +checksum = "67eb846bfd58e44a8481a00049e82c43e0ccb5d61f8dc071057cb19249dd4d78" dependencies = [ "autocfg", "futures-channel", @@ -1649,9 +1645,9 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" +checksum = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612" dependencies = [ "unicode-xid", ] @@ -1985,9 +1981,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.73" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7" +checksum = "1873d832550d4588c3dbc20f01361ab00bfe741048f71e3fecf145a7cc18b29c" dependencies = [ "proc-macro2", "quote", @@ -1996,9 +1992,9 @@ dependencies = [ [[package]] name = "system-deps" -version = "3.1.2" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab7dbd121ce66af2176147a48c7e01aaf1f001837a18a7cf4317858606bbdf8" +checksum = "480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6" dependencies = [ "anyhow", "cfg-expr", @@ -2079,9 +2075,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac2e1d4bd0f75279cfd5a076e0d578bbf02c22b7c39e766c437dd49b3ec43e0" +checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338" dependencies = [ "tinyvec_macros", ] @@ -2126,12 +2122,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "triple_accel" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622b09ce2fe2df4618636fb92176d205662f59803f39e70d1c333393082de96c" - [[package]] name = "typenum" version = "1.13.0" diff --git a/czkawka_cli/src/commands.rs b/czkawka_cli/src/commands.rs index 03a592b..06064c9 100644 --- a/czkawka_cli/src/commands.rs +++ b/czkawka_cli/src/commands.rs @@ -286,14 +286,15 @@ fn parse_delete_method(src: &str) -> Result { } } +// TODO For now it looks different fn parse_similar_images_similarity(src: &str) -> Result { match src.to_ascii_lowercase().replace('_', "").as_str() { - "minimal" => Ok(Similarity::Minimal), - "verysmall" => Ok(Similarity::VerySmall), - "small" => Ok(Similarity::Small), - "medium" => Ok(Similarity::Medium), - "high" => Ok(Similarity::High), - "veryhigh" => Ok(Similarity::VeryHigh), + "minimal" => Ok(Similarity::Similar(5)), + "verysmall" => Ok(Similarity::Similar(4)), + "small" => Ok(Similarity::Similar(3)), + "medium" => Ok(Similarity::Similar(2)), + "high" => Ok(Similarity::Similar(1)), + "veryhigh" => Ok(Similarity::Similar(0)), _ => Err("Couldn't parse the delete method (allowed: verysmall, small, medium, high, veryhigh)"), } } diff --git a/czkawka_core/Cargo.toml b/czkawka_core/Cargo.toml index 64a12cb..8ca560d 100644 --- a/czkawka_core/Cargo.toml +++ b/czkawka_core/Cargo.toml @@ -19,7 +19,7 @@ directories-next = "2.0.0" # Needed by similar images img_hash = "3.2.0" -bk-tree = "0.4.0" +bk-tree = "0.3.0" # Do not update. Updating broke of searching for similar hashes image = "0.23.14" hamming = "0.1.3" diff --git a/czkawka_core/src/similar_images.rs b/czkawka_core/src/similar_images.rs index 7cee6cf..538acda 100644 --- a/czkawka_core/src/similar_images.rs +++ b/czkawka_core/src/similar_images.rs @@ -38,12 +38,7 @@ pub struct ProgressData { #[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Debug)] pub enum Similarity { None, - Minimal, - VerySmall, - Small, - Medium, - High, - VeryHigh, + Similar(u64), } #[derive(Clone, Debug)] @@ -60,14 +55,14 @@ pub struct FileEntry { struct Hamming; impl bk_tree::Metric for Hamming { - fn distance(&self, a: &Node, b: &Node) -> u32 { - hamming::distance_fast(a, b).unwrap() as u32 + fn distance(&self, a: &Node, b: &Node) -> u64 { + hamming::distance_fast(a, b).unwrap() as u64 } - // TODO Probably needs to be implemented - fn threshold_distance(&self, _a: &Node, _b: &Node, _threshold: u32) -> Option { - None - } + // // TODO Probably needs to be implemented + // fn threshold_distance(&self, _a: &Node, _b: &Node, _threshold: u32) -> Option { + // None + // } } /// Struct to store most basics info about all folder @@ -115,7 +110,7 @@ impl SimilarImages { minimal_file_size: 1024 * 16, // 16 KB should be enough to exclude too small images from search image_hashes: Default::default(), stopped_search: false, - similarity: Similarity::High, + similarity: Similarity::Similar(1), images_to_check: Default::default(), use_cache: true, } @@ -416,6 +411,10 @@ impl SimilarImages { let hash = hasher.hash_image(&image); let mut buf = [0u8; 8]; buf.copy_from_slice(&hash.as_bytes()); + if buf.iter().all(|e| *e == 0) { + // A little broken image + return Some(None); + } file_entry.hash = buf; Some(Some((file_entry, buf))) @@ -455,14 +454,9 @@ impl SimilarImages { Common::print_time(hash_map_modification, SystemTime::now(), "sort_images - saving data to files".to_string()); let hash_map_modification = SystemTime::now(); - let similarity: u32 = match self.similarity { - Similarity::VeryHigh => 0, - Similarity::High => 1, - Similarity::Medium => 2, - Similarity::Small => 3, - Similarity::VerySmall => 4, - Similarity::Minimal => 5, - _ => panic!("0-5 similarity levels are allowed, check if not added more."), + let similarity: u64 = match self.similarity { + Similarity::Similar(k) => k, + _ => panic!(), }; // TODO @@ -500,7 +494,7 @@ impl SimilarImages { dimensions: fe.dimensions.clone(), modified_date: fe.modified_date, hash: fe.hash, - similarity: Similarity::VeryHigh, + similarity: Similarity::Similar(0), }) .collect(); @@ -522,15 +516,7 @@ impl SimilarImages { dimensions: fe.dimensions.clone(), modified_date: fe.modified_date, hash: [0; 8], - similarity: match similarity { - 0 => Similarity::VeryHigh, - 1 => Similarity::High, - 2 => Similarity::Medium, - 3 => Similarity::Small, - 4 => Similarity::VerySmall, - 5 => Similarity::Minimal, - _ => panic!("0-5 similarity levels are allowed, check if not added more."), - }, + similarity: Similarity::Similar(*similarity), }) .collect::>()), ); @@ -664,18 +650,6 @@ impl PrintResults for SimilarImages { } } -fn get_string_from_similarity(similarity: &Similarity) -> &str { - match similarity { - Similarity::Minimal => "Minimal", - Similarity::VerySmall => "Very Small", - Similarity::Small => "Small", - Similarity::Medium => "Medium", - Similarity::High => "High", - Similarity::VeryHigh => "Very High", - Similarity::None => panic!(), - } -} - fn save_hashes_to_file(hashmap: &BTreeMap, text_messages: &mut Messages) { if let Some(proj_dirs) = ProjectDirs::from("pl", "Qarmin", "Czkawka") { // Lin: /home/username/.cache/czkawka @@ -810,3 +784,27 @@ fn load_hashes_from_file(text_messages: &mut Messages) -> Option String { + match similarity { + Similarity::None => { + panic!() + } + Similarity::Similar(k) => { + if *k < 1 { + format!("Very High {}", *k) + } else if *k < 2 { + format!("High {}", *k) + } else if *k < 4 { + format!("Medium {}", *k) + } else if *k < 6 { + format!("Small {}", *k) + } else if *k < 9 { + format!("Very Small {}", *k) + } else if *k < 13 { + format!("Minimal {}", *k) + } else { + panic!() + } + } + } +} diff --git a/czkawka_gui/src/connect_button_search.rs b/czkawka_gui/src/connect_button_search.rs index 96189c8..3ddc215 100644 --- a/czkawka_gui/src/connect_button_search.rs +++ b/czkawka_gui/src/connect_button_search.rs @@ -53,12 +53,7 @@ pub fn connect_button_search( let radio_button_duplicates_size = gui_data.main_notebook.radio_button_duplicates_size.clone(); let radio_button_duplicates_hashmb = gui_data.main_notebook.radio_button_duplicates_hashmb.clone(); let radio_button_duplicates_hash = gui_data.main_notebook.radio_button_duplicates_hash.clone(); - let radio_button_similar_images_minimal = gui_data.main_notebook.radio_button_similar_images_minimal.clone(); - let radio_button_similar_images_very_small = gui_data.main_notebook.radio_button_similar_images_very_small.clone(); - let radio_button_similar_images_small = gui_data.main_notebook.radio_button_similar_images_small.clone(); - let radio_button_similar_images_medium = gui_data.main_notebook.radio_button_similar_images_medium.clone(); - let radio_button_similar_images_high = gui_data.main_notebook.radio_button_similar_images_high.clone(); - let radio_button_similar_images_very_high = gui_data.main_notebook.radio_button_similar_images_very_high.clone(); + let scale_similarity = gui_data.main_notebook.scale_similarity.clone(); let entry_duplicate_minimal_size = gui_data.main_notebook.entry_duplicate_minimal_size.clone(); let stop_receiver = gui_data.stop_receiver.clone(); let entry_big_files_number = gui_data.main_notebook.entry_big_files_number.clone(); @@ -270,22 +265,7 @@ pub fn connect_button_search( let minimal_file_size = entry_similar_images_minimal_size.text().as_str().parse::().unwrap_or(1024 * 16); - let similarity; - if radio_button_similar_images_minimal.is_active() { - similarity = similar_images::Similarity::Minimal; - } else if radio_button_similar_images_very_small.is_active() { - similarity = similar_images::Similarity::VerySmall; - } else if radio_button_similar_images_small.is_active() { - similarity = similar_images::Similarity::Small; - } else if radio_button_similar_images_medium.is_active() { - similarity = similar_images::Similarity::Medium; - } else if radio_button_similar_images_high.is_active() { - similarity = similar_images::Similarity::High; - } else if radio_button_similar_images_very_high.is_active() { - similarity = similar_images::Similarity::VeryHigh; - } else { - panic!("No radio button is pressed"); - } + let similarity = similar_images::Similarity::Similar(scale_similarity.value() as u64); let futures_sender_similar_images = futures_sender_similar_images.clone(); // Find similar images diff --git a/czkawka_gui/src/connect_compute_results.rs b/czkawka_gui/src/connect_compute_results.rs index 73552ef..d0f0040 100644 --- a/czkawka_gui/src/connect_compute_results.rs +++ b/czkawka_gui/src/connect_compute_results.rs @@ -7,6 +7,7 @@ use crate::notebook_enums::*; use chrono::NaiveDateTime; use czkawka_core::duplicate::CheckingMethod; use czkawka_core::same_music::MusicSimilarity; +use czkawka_core::similar_images; use glib::Receiver; use gtk::prelude::*; use std::path::PathBuf; @@ -522,7 +523,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver< let values: [(u32, &dyn ToValue); 12] = [ (0, &true), (1, &false), - (2, &(get_text_from_similarity(&file_entry.similarity).to_string())), + (2, &(similar_images::get_string_from_similarity(&file_entry.similarity).to_string())), (3, &file_entry.size.file_size(options::BINARY).unwrap()), (4, &file_entry.size), (5, &file_entry.dimensions), diff --git a/czkawka_gui/src/gui_main_notebook.rs b/czkawka_gui/src/gui_main_notebook.rs index 90cecfb..3b0ec91 100644 --- a/czkawka_gui/src/gui_main_notebook.rs +++ b/czkawka_gui/src/gui_main_notebook.rs @@ -46,12 +46,7 @@ pub struct GuiMainNotebook { pub radio_button_duplicates_hashmb: gtk::RadioButton, pub radio_button_duplicates_hash: gtk::RadioButton, - pub radio_button_similar_images_minimal: gtk::RadioButton, - pub radio_button_similar_images_very_small: gtk::RadioButton, - pub radio_button_similar_images_small: gtk::RadioButton, - pub radio_button_similar_images_medium: gtk::RadioButton, - pub radio_button_similar_images_high: gtk::RadioButton, - pub radio_button_similar_images_very_high: gtk::RadioButton, + pub scale_similarity: gtk::Scale, pub radio_button_hash_type_blake3: gtk::RadioButton, pub radio_button_hash_type_crc32: gtk::RadioButton, @@ -104,12 +99,7 @@ impl GuiMainNotebook { let radio_button_duplicates_hashmb: gtk::RadioButton = builder.object("radio_button_duplicates_hashmb").unwrap(); let radio_button_duplicates_hash: gtk::RadioButton = builder.object("radio_button_duplicates_hash").unwrap(); - let radio_button_similar_images_minimal: gtk::RadioButton = builder.object("radio_button_similar_images_minimal").unwrap(); - let radio_button_similar_images_very_small: gtk::RadioButton = builder.object("radio_button_similar_images_very_small").unwrap(); - let radio_button_similar_images_small: gtk::RadioButton = builder.object("radio_button_similar_images_small").unwrap(); - let radio_button_similar_images_medium: gtk::RadioButton = builder.object("radio_button_similar_images_medium").unwrap(); - let radio_button_similar_images_high: gtk::RadioButton = builder.object("radio_button_similar_images_high").unwrap(); - let radio_button_similar_images_very_high: gtk::RadioButton = builder.object("radio_button_similar_images_very_high").unwrap(); + let scale_similarity: gtk::Scale = builder.object("scale_similarity").unwrap(); let radio_button_hash_type_blake3: gtk::RadioButton = builder.object("radio_button_hash_type_blake3").unwrap(); let radio_button_hash_type_crc32: gtk::RadioButton = builder.object("radio_button_hash_type_crc32").unwrap(); @@ -152,12 +142,7 @@ impl GuiMainNotebook { radio_button_duplicates_size, radio_button_duplicates_hashmb, radio_button_duplicates_hash, - radio_button_similar_images_minimal, - radio_button_similar_images_very_small, - radio_button_similar_images_small, - radio_button_similar_images_medium, - radio_button_similar_images_high, - radio_button_similar_images_very_high, + scale_similarity, radio_button_hash_type_blake3, radio_button_hash_type_crc32, radio_button_hash_type_xxh3, diff --git a/czkawka_gui/src/help_functions.rs b/czkawka_gui/src/help_functions.rs index 28eb58c..f6e0c0a 100644 --- a/czkawka_gui/src/help_functions.rs +++ b/czkawka_gui/src/help_functions.rs @@ -7,7 +7,7 @@ use czkawka_core::empty_folder::EmptyFolder; use czkawka_core::invalid_symlinks; use czkawka_core::invalid_symlinks::InvalidSymlinks; use czkawka_core::same_music::SameMusic; -use czkawka_core::similar_images::{SimilarImages, Similarity}; +use czkawka_core::similar_images::SimilarImages; use czkawka_core::temporary::Temporary; use czkawka_core::zeroed::ZeroedFiles; use gtk::prelude::*; @@ -258,28 +258,6 @@ pub fn hide_all_buttons(buttons_array: &[gtk::Button]) { } } -// pub fn hide_all_buttons_except(except_name: &str, buttons_array: &[gtk::Button], button_names: &[String]) { -// for (index, button) in buttons_array.iter().enumerate() { -// if except_name == button_names[index] { -// button.show(); -// } else { -// button.hide(); -// } -// } -// } - -pub fn get_text_from_similarity(similarity: &Similarity) -> &str { - match similarity { - Similarity::None => "Original", - Similarity::Minimal => "Minimal", - Similarity::VerySmall => "Very Small", - Similarity::Small => "Small", - Similarity::Medium => "Medium", - Similarity::High => "High", - Similarity::VeryHigh => "Very High", - } -} - pub fn get_text_from_invalid_symlink_cause(error: &invalid_symlinks::ErrorType) -> &str { match error { invalid_symlinks::ErrorType::InfiniteRecursion => "Infinite recursion", diff --git a/czkawka_gui/src/initialize_gui.rs b/czkawka_gui/src/initialize_gui.rs index 02bcddc..4eafa2f 100644 --- a/czkawka_gui/src/initialize_gui.rs +++ b/czkawka_gui/src/initialize_gui.rs @@ -48,6 +48,14 @@ pub fn initialize_gui(gui_data: &mut GuiData) { let check_button_settings_show_preview_similar_images = gui_data.settings.check_button_settings_show_preview_similar_images.clone(); let text_view_errors = gui_data.text_view_errors.clone(); + let scale_similarity = gui_data.main_notebook.scale_similarity.clone(); + + // Set step increment + { + scale_similarity.set_range(0_f64, 12_f64); + scale_similarity.adjustment().set_step_increment(1_f64); + } + // Set Main Scrolled Window Treeviews { // Duplicate Files diff --git a/czkawka_gui/ui/main_window.glade b/czkawka_gui/ui/main_window.glade index b93637e..09a06a3 100644 --- a/czkawka_gui/ui/main_window.glade +++ b/czkawka_gui/ui/main_window.glade @@ -32,6 +32,11 @@ Author: Rafał Mikrut + + 100 + 1 + 10 + False 1100 @@ -1075,13 +1080,10 @@ Author: Rafał Mikrut - - Minimal + True - True - False - True - radio_button_similar_images_very_high + False + Very High False @@ -1090,28 +1092,25 @@ Author: Rafał Mikrut - - Very Small + True True - False - True - radio_button_similar_images_very_high + 100 + 1 + 0 + right - False + True True 2 - - Small + True - True - False - True - radio_button_similar_images_very_high + False + Minimal False @@ -1119,51 +1118,6 @@ Author: Rafał Mikrut 3 - - - Medium - True - True - False - True - radio_button_similar_images_very_high - - - False - True - 4 - - - - - High - True - True - False - True - radio_button_similar_images_very_high - - - False - True - 5 - - - - - Very High - True - True - False - True - True - - - False - True - 6 - - False