78d00eeb99
* In prehashing check for user clicks, less often * Similar audio * Remove ugly time checking * Fix using cache * Fix cache and improve performance of validating items * Remove cache type - cache should be saved to two different cache files(because ) * Working * Simple multithreading * Basic Generalization * Reference folder and swap cleaning * Split into multiple files * Commons, improved GUI message * Simplifying thread run * Check was stopped * Fix checking same files * Make read single file tag more general * Remove unnnecessary clone * Reading tags * Base * Search * Gui Fix * Gui Fix * Tooltip
141 lines
3.4 KiB
Rust
141 lines
3.4 KiB
Rust
use image_hasher::{FilterType, HashAlg};
|
|
|
|
use czkawka_core::big_file::SearchMode;
|
|
use czkawka_core::common_dir_traversal::CheckingMethod;
|
|
use czkawka_core::duplicate::HashType;
|
|
|
|
pub struct HashTypeStruct {
|
|
pub eng_name: &'static str,
|
|
pub hash_type: HashType,
|
|
}
|
|
|
|
pub const DUPLICATES_HASH_TYPE_COMBO_BOX: [HashTypeStruct; 3] = [
|
|
HashTypeStruct {
|
|
eng_name: "Blake3",
|
|
hash_type: HashType::Blake3,
|
|
},
|
|
HashTypeStruct {
|
|
eng_name: "CRC32",
|
|
hash_type: HashType::Crc32,
|
|
},
|
|
HashTypeStruct {
|
|
eng_name: "XXH3",
|
|
hash_type: HashType::Xxh3,
|
|
},
|
|
];
|
|
|
|
pub struct CheckMethodStruct {
|
|
pub eng_name: &'static str,
|
|
pub check_method: CheckingMethod,
|
|
}
|
|
|
|
pub const DUPLICATES_CHECK_METHOD_COMBO_BOX: [CheckMethodStruct; 4] = [
|
|
CheckMethodStruct {
|
|
eng_name: "Hash",
|
|
check_method: CheckingMethod::Hash,
|
|
},
|
|
CheckMethodStruct {
|
|
eng_name: "Size",
|
|
check_method: CheckingMethod::Size,
|
|
},
|
|
CheckMethodStruct {
|
|
eng_name: "Name",
|
|
check_method: CheckingMethod::Name,
|
|
},
|
|
CheckMethodStruct {
|
|
eng_name: "Size and Name",
|
|
check_method: CheckingMethod::SizeName,
|
|
},
|
|
];
|
|
|
|
#[derive(Copy, Clone)]
|
|
pub struct AudioTypeStruct {
|
|
pub eng_name: &'static str,
|
|
pub check_method: CheckingMethod,
|
|
}
|
|
|
|
pub const AUDIO_TYPE_CHECK_METHOD_COMBO_BOX: [AudioTypeStruct; 2] = [
|
|
AudioTypeStruct {
|
|
eng_name: "Tags",
|
|
check_method: CheckingMethod::AudioTags,
|
|
},
|
|
AudioTypeStruct {
|
|
eng_name: "Content",
|
|
check_method: CheckingMethod::AudioContent,
|
|
},
|
|
];
|
|
|
|
#[derive(Copy, Clone)]
|
|
pub struct SearchModeStruct {
|
|
pub eng_name: &'static str,
|
|
pub check_method: SearchMode,
|
|
}
|
|
|
|
pub const BIG_FILES_CHECK_METHOD_COMBO_BOX: [SearchModeStruct; 2] = [
|
|
SearchModeStruct {
|
|
eng_name: "Biggest",
|
|
check_method: SearchMode::BiggestFiles,
|
|
},
|
|
SearchModeStruct {
|
|
eng_name: "Smallest",
|
|
check_method: SearchMode::SmallestFiles,
|
|
},
|
|
];
|
|
|
|
pub struct ImageResizeAlgStruct {
|
|
pub eng_name: &'static str,
|
|
pub filter: FilterType,
|
|
}
|
|
|
|
pub const IMAGES_RESIZE_ALGORITHM_COMBO_BOX: [ImageResizeAlgStruct; 5] = [
|
|
ImageResizeAlgStruct {
|
|
eng_name: "Lanczos3",
|
|
filter: FilterType::Lanczos3,
|
|
},
|
|
ImageResizeAlgStruct {
|
|
eng_name: "Nearest",
|
|
filter: FilterType::Nearest,
|
|
},
|
|
ImageResizeAlgStruct {
|
|
eng_name: "Triangle",
|
|
filter: FilterType::Triangle,
|
|
},
|
|
ImageResizeAlgStruct {
|
|
eng_name: "Gaussian",
|
|
filter: FilterType::Gaussian,
|
|
},
|
|
ImageResizeAlgStruct {
|
|
eng_name: "CatmullRom",
|
|
filter: FilterType::CatmullRom,
|
|
},
|
|
];
|
|
|
|
pub struct ImageHashTypeStruct {
|
|
pub eng_name: &'static str,
|
|
pub hash_alg: HashAlg,
|
|
}
|
|
|
|
pub const IMAGES_HASH_TYPE_COMBO_BOX: [ImageHashTypeStruct; 5] = [
|
|
ImageHashTypeStruct {
|
|
eng_name: "Gradient",
|
|
hash_alg: HashAlg::Gradient,
|
|
},
|
|
ImageHashTypeStruct {
|
|
eng_name: "Mean",
|
|
hash_alg: HashAlg::Mean,
|
|
},
|
|
ImageHashTypeStruct {
|
|
eng_name: "VertGradient",
|
|
hash_alg: HashAlg::VertGradient,
|
|
},
|
|
ImageHashTypeStruct {
|
|
eng_name: "Blockhash",
|
|
hash_alg: HashAlg::Blockhash,
|
|
},
|
|
ImageHashTypeStruct {
|
|
eng_name: "DoubleGradient",
|
|
hash_alg: HashAlg::DoubleGradient,
|
|
},
|
|
];
|
|
|
|
pub const IMAGES_HASH_SIZE_COMBO_BOX: [i32; 4] = [8, 16, 32, 64];
|