Simplify code
This commit is contained in:
parent
f4a2ee904c
commit
d7f5e37d83
130
Cargo.lock
generated
130
Cargo.lock
generated
|
@ -81,7 +81,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "c3127af6145b149f3287bb9a0d10ad9c5692dba8c53ad48285e5bec4063834fa"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"windows-sys 0.45.0",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -116,7 +116,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.11",
|
||||
"syn 2.0.12",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -356,9 +356,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.2.0"
|
||||
version = "4.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6efb5f0a41b5ef5b50c5da28c07609c20091df0c1fc33d418fa2a7e693c2b624"
|
||||
checksum = "046ae530c528f252094e4a77886ee1374437744b2bff1497aa898bbddbbb29b3"
|
||||
dependencies = [
|
||||
"clap_builder",
|
||||
"clap_derive",
|
||||
|
@ -367,9 +367,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap_builder"
|
||||
version = "4.2.0"
|
||||
version = "4.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "671fcaa5debda4b9a84aa7fde49c907c8986c0e6ab927e04217c9cb74e7c8bc9"
|
||||
checksum = "223163f58c9a40c3b0a43e1c4b50a9ce09f007ea2cb1ec258a687945b4b7929f"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anstyle",
|
||||
|
@ -387,7 +387,7 @@ dependencies = [
|
|||
"heck",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.11",
|
||||
"syn 2.0.12",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -424,7 +424,7 @@ version = "0.3.3"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "88d11d52c3d7ca2e6d0040212be9e4dbbcd78b6447f535b6b561f449427944cf"
|
||||
dependencies = [
|
||||
"windows-sys 0.45.0",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -546,7 +546,7 @@ dependencies = [
|
|||
"proc-macro2",
|
||||
"quote",
|
||||
"scratch",
|
||||
"syn 2.0.11",
|
||||
"syn 2.0.12",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -563,7 +563,7 @@ checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.11",
|
||||
"syn 2.0.12",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -756,18 +756,18 @@ checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.11",
|
||||
"syn 2.0.12",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "errno"
|
||||
version = "0.2.8"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
|
||||
checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0"
|
||||
dependencies = [
|
||||
"errno-dragonfly",
|
||||
"libc",
|
||||
"winapi",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -954,9 +954,9 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
|
|||
|
||||
[[package]]
|
||||
name = "futures"
|
||||
version = "0.3.27"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549"
|
||||
checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
|
||||
dependencies = [
|
||||
"futures-channel",
|
||||
"futures-core",
|
||||
|
@ -969,9 +969,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "futures-channel"
|
||||
version = "0.3.27"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac"
|
||||
checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"futures-sink",
|
||||
|
@ -979,15 +979,15 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "futures-core"
|
||||
version = "0.3.27"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd"
|
||||
checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
|
||||
|
||||
[[package]]
|
||||
name = "futures-executor"
|
||||
version = "0.3.27"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83"
|
||||
checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"futures-task",
|
||||
|
@ -996,38 +996,38 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "futures-io"
|
||||
version = "0.3.27"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91"
|
||||
checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
|
||||
|
||||
[[package]]
|
||||
name = "futures-macro"
|
||||
version = "0.3.27"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6"
|
||||
checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
"syn 2.0.12",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-sink"
|
||||
version = "0.3.27"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2"
|
||||
checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
|
||||
|
||||
[[package]]
|
||||
name = "futures-task"
|
||||
version = "0.3.27"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879"
|
||||
checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
|
||||
|
||||
[[package]]
|
||||
name = "futures-util"
|
||||
version = "0.3.27"
|
||||
version = "0.3.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab"
|
||||
checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
|
||||
dependencies = [
|
||||
"futures-channel",
|
||||
"futures-core",
|
||||
|
@ -1645,19 +1645,19 @@ checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb"
|
|||
dependencies = [
|
||||
"hermit-abi 0.3.1",
|
||||
"libc",
|
||||
"windows-sys 0.45.0",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "is-terminal"
|
||||
version = "0.4.5"
|
||||
version = "0.4.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e"
|
||||
checksum = "256017f749ab3117e93acb91063009e1f1bb56d03965b14c2c8df4eb02c524d8"
|
||||
dependencies = [
|
||||
"hermit-abi 0.3.1",
|
||||
"io-lifetimes",
|
||||
"rustix",
|
||||
"windows-sys 0.45.0",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1763,9 +1763,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
|
|||
|
||||
[[package]]
|
||||
name = "linux-raw-sys"
|
||||
version = "0.1.4"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
|
||||
checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f"
|
||||
|
||||
[[package]]
|
||||
name = "locale_config"
|
||||
|
@ -2101,9 +2101,9 @@ checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
|
|||
dependencies = [
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"redox_syscall",
|
||||
"redox_syscall 0.2.16",
|
||||
"smallvec",
|
||||
"windows-sys 0.45.0",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2387,6 +2387,15 @@ dependencies = [
|
|||
"bitflags 1.3.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "redox_syscall"
|
||||
version = "0.3.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "redox_users"
|
||||
version = "0.4.3"
|
||||
|
@ -2394,7 +2403,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
"redox_syscall",
|
||||
"redox_syscall 0.2.16",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
|
@ -2522,16 +2531,16 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "rustix"
|
||||
version = "0.36.11"
|
||||
version = "0.37.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e"
|
||||
checksum = "d097081ed288dfe45699b72f5b5d648e5f15d64d900c7080273baa20c16a6849"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"errno",
|
||||
"io-lifetimes",
|
||||
"libc",
|
||||
"linux-raw-sys",
|
||||
"windows-sys 0.45.0",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2602,7 +2611,7 @@ checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.11",
|
||||
"syn 2.0.12",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2953,9 +2962,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.11"
|
||||
version = "2.0.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "21e3787bb71465627110e7d87ed4faaa36c1f61042ee67badb9e2ef173accc40"
|
||||
checksum = "79d9531f94112cfc3e4c8f5f02cb2b58f72c97b7efd85f70203cc6d8efda5927"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
@ -2977,15 +2986,15 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "tempfile"
|
||||
version = "3.4.0"
|
||||
version = "3.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
|
||||
checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"fastrand",
|
||||
"redox_syscall",
|
||||
"redox_syscall 0.3.5",
|
||||
"rustix",
|
||||
"windows-sys 0.42.0",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -3014,7 +3023,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
|
|||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.11",
|
||||
"syn 2.0.12",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -3485,21 +3494,6 @@ dependencies = [
|
|||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.42.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
|
||||
dependencies = [
|
||||
"windows_aarch64_gnullvm",
|
||||
"windows_aarch64_msvc",
|
||||
"windows_i686_gnu",
|
||||
"windows_i686_msvc",
|
||||
"windows_x86_64_gnu",
|
||||
"windows_x86_64_gnullvm",
|
||||
"windows_x86_64_msvc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.45.0"
|
||||
|
|
|
@ -29,7 +29,7 @@ bitflags = "2.0.2"
|
|||
lofty = "0.11.0"
|
||||
|
||||
# Futures - needed by async progress sender
|
||||
futures = "0.3.27"
|
||||
futures = "0.3.28"
|
||||
|
||||
# Needed by broken files
|
||||
zip = { version = "0.6.4", features = ["aes-crypto", "bzip2", "deflate", "time"], default-features = false }
|
||||
|
@ -41,7 +41,7 @@ blake3 = "1.3.3"
|
|||
crc32fast = "1.3.2"
|
||||
xxhash-rust = { version = "0.8.6", features = ["xxh3"] }
|
||||
|
||||
tempfile = "3.4.0"
|
||||
tempfile = "3.5.0"
|
||||
|
||||
# Video Duplicates
|
||||
vid_dup_finder_lib = "0.1.1"
|
||||
|
|
|
@ -965,7 +965,7 @@ impl SimilarImages {
|
|||
let mut found = false;
|
||||
for vec_file_entry in collected_similar_images.values() {
|
||||
if vec_file_entry.is_empty() {
|
||||
println!("Empty Element {vec_file_entry:?}");
|
||||
println!("Empty group");
|
||||
found = true;
|
||||
continue;
|
||||
}
|
||||
|
@ -984,7 +984,7 @@ impl SimilarImages {
|
|||
}
|
||||
}
|
||||
}
|
||||
assert!(!found, "Found Invalid entries");
|
||||
assert!(!found, "Found Invalid entries, verify errors before"); // TODO crashes with empty result with reference folder, verify why
|
||||
}
|
||||
self.similar_vectors = collected_similar_images.into_values().collect();
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ chrono = "0.4.24"
|
|||
crossbeam-channel = "0.5.7"
|
||||
|
||||
# To get information about progress
|
||||
futures = "0.3.27"
|
||||
futures = "0.3.28"
|
||||
|
||||
# For saving/loading config files to specific directories
|
||||
directories-next = "2.0.0"
|
||||
|
|
|
@ -4,15 +4,15 @@ use std::path::PathBuf;
|
|||
use std::rc::Rc;
|
||||
|
||||
use chrono::NaiveDateTime;
|
||||
use czkawka_core::bad_extensions::BadExtensions;
|
||||
use czkawka_core::big_file::BigFile;
|
||||
use czkawka_core::broken_files::BrokenFiles;
|
||||
use glib::Receiver;
|
||||
use gtk4::prelude::*;
|
||||
use gtk4::{Entry, TextView, TreeView, Widget};
|
||||
use gtk4::{Entry, ListStore, TextView, TreeView, Widget};
|
||||
use humansize::format_size;
|
||||
use humansize::BINARY;
|
||||
|
||||
use czkawka_core::bad_extensions::BadExtensions;
|
||||
use czkawka_core::big_file::BigFile;
|
||||
use czkawka_core::broken_files::BrokenFiles;
|
||||
use czkawka_core::common::split_path;
|
||||
use czkawka_core::common_dir_traversal::CheckingMethod;
|
||||
use czkawka_core::duplicate::DuplicateFinder;
|
||||
|
@ -475,7 +475,6 @@ fn computer_same_music(
|
|||
buttons_array: &[Widget; 9],
|
||||
buttons_names: &[BottomButtonsEnum; 9],
|
||||
) {
|
||||
const COLUMNS_NUMBER: usize = 18;
|
||||
if mf.get_stopped_search() {
|
||||
entry_info.set_text(&flg!("compute_stopped_by_user"));
|
||||
} else {
|
||||
|
@ -531,62 +530,46 @@ fn computer_same_music(
|
|||
};
|
||||
|
||||
let (directory, file) = split_path(&base_file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSameMusic::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsSameMusic::SelectionButton as u32, &false),
|
||||
(ColumnsSameMusic::Size as u32, &format_size(base_file_entry.size, BINARY)),
|
||||
(ColumnsSameMusic::SizeAsBytes as u32, &base_file_entry.size),
|
||||
(ColumnsSameMusic::Name as u32, &file),
|
||||
(ColumnsSameMusic::Path as u32, &directory),
|
||||
(ColumnsSameMusic::Title as u32, &base_file_entry.track_title),
|
||||
(ColumnsSameMusic::Artist as u32, &base_file_entry.track_artist),
|
||||
(ColumnsSameMusic::Year as u32, &base_file_entry.year.to_string()),
|
||||
(ColumnsSameMusic::Genre as u32, &base_file_entry.genre),
|
||||
(ColumnsSameMusic::Bitrate as u32, &(format!("{} kbps", base_file_entry.bitrate))),
|
||||
(ColumnsSameMusic::BitrateAsNumber as u32, &(base_file_entry.bitrate)),
|
||||
(ColumnsSameMusic::Length as u32, &base_file_entry.length),
|
||||
(
|
||||
ColumnsSameMusic::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(base_file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsSameMusic::ModificationAsSecs as u32, &(base_file_entry.modified_date)),
|
||||
(ColumnsSameMusic::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsSameMusic::IsHeader as u32, &true),
|
||||
(ColumnsSameMusic::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
same_music_add_to_list_store(
|
||||
&list_store,
|
||||
&file,
|
||||
&directory,
|
||||
base_file_entry.size,
|
||||
base_file_entry.modified_date,
|
||||
&base_file_entry.track_title,
|
||||
&base_file_entry.track_artist,
|
||||
&base_file_entry.year,
|
||||
base_file_entry.bitrate,
|
||||
&format!("{} kbps", base_file_entry.bitrate),
|
||||
&base_file_entry.genre,
|
||||
&base_file_entry.length,
|
||||
true,
|
||||
true,
|
||||
);
|
||||
for file_entry in vec_file_entry {
|
||||
let (directory, file) = split_path(&file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSameMusic::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsSameMusic::SelectionButton as u32, &false),
|
||||
(ColumnsSameMusic::Size as u32, &format_size(file_entry.size, BINARY)),
|
||||
(ColumnsSameMusic::SizeAsBytes as u32, &file_entry.size),
|
||||
(ColumnsSameMusic::Name as u32, &file),
|
||||
(ColumnsSameMusic::Path as u32, &directory),
|
||||
(ColumnsSameMusic::Title as u32, &file_entry.track_title),
|
||||
(ColumnsSameMusic::Artist as u32, &file_entry.track_artist),
|
||||
(ColumnsSameMusic::Year as u32, &file_entry.year.to_string()),
|
||||
(ColumnsSameMusic::Genre as u32, &file_entry.genre),
|
||||
(ColumnsSameMusic::Bitrate as u32, &(format!("{} kbps", file_entry.bitrate))),
|
||||
(ColumnsSameMusic::BitrateAsNumber as u32, &(file_entry.bitrate)),
|
||||
(ColumnsSameMusic::Length as u32, &file_entry.length),
|
||||
(
|
||||
ColumnsSameMusic::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsSameMusic::ModificationAsSecs as u32, &(file_entry.modified_date)),
|
||||
(ColumnsSameMusic::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsSameMusic::IsHeader as u32, &false),
|
||||
(ColumnsSameMusic::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
same_music_add_to_list_store(
|
||||
&list_store,
|
||||
&file,
|
||||
&directory,
|
||||
file_entry.size,
|
||||
file_entry.modified_date,
|
||||
&file_entry.track_title,
|
||||
&file_entry.track_artist,
|
||||
&file_entry.year,
|
||||
file_entry.bitrate,
|
||||
&format!("{} kbps", file_entry.bitrate),
|
||||
&file_entry.genre,
|
||||
&file_entry.length,
|
||||
false,
|
||||
true,
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let vector = mf.get_duplicated_music_entries();
|
||||
|
||||
let text: String = "-----".to_string();
|
||||
let text: &str = "-----";
|
||||
|
||||
for vec_file_entry in vector {
|
||||
// Sort
|
||||
|
@ -601,53 +584,40 @@ fn computer_same_music(
|
|||
vec_file_entry.clone()
|
||||
};
|
||||
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSameMusic::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsSameMusic::SelectionButton as u32, &false),
|
||||
(ColumnsSameMusic::Size as u32, &String::new()),
|
||||
(ColumnsSameMusic::SizeAsBytes as u32, &(0)),
|
||||
(ColumnsSameMusic::Name as u32, &String::new()),
|
||||
(ColumnsSameMusic::Path as u32, &String::new()),
|
||||
(ColumnsSameMusic::Title as u32, &(if is_track_title { text.clone() } else { String::new() })),
|
||||
(ColumnsSameMusic::Artist as u32, &(if is_track_artist { text.clone() } else { String::new() })),
|
||||
(ColumnsSameMusic::Year as u32, &(if is_year { text.clone() } else { String::new() })),
|
||||
(ColumnsSameMusic::Bitrate as u32, &(if is_bitrate { text.clone() } else { String::new() })),
|
||||
(ColumnsSameMusic::BitrateAsNumber as u32, &(0)),
|
||||
(ColumnsSameMusic::Genre as u32, &(if is_genre { text.clone() } else { String::new() })),
|
||||
(ColumnsSameMusic::Length as u32, &(if is_length { text.clone() } else { String::new() })),
|
||||
(ColumnsSameMusic::Modification as u32, &String::new()),
|
||||
(ColumnsSameMusic::ModificationAsSecs as u32, &(0)),
|
||||
(ColumnsSameMusic::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsSameMusic::IsHeader as u32, &true),
|
||||
(ColumnsSameMusic::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
same_music_add_to_list_store(
|
||||
&list_store,
|
||||
"",
|
||||
"",
|
||||
0,
|
||||
0,
|
||||
if is_track_title { text } else { "" },
|
||||
if is_track_artist { text } else { "" },
|
||||
if is_year { text } else { "" },
|
||||
0,
|
||||
if is_bitrate { text } else { "" },
|
||||
if is_genre { text } else { "" },
|
||||
if is_length { text } else { "" },
|
||||
true,
|
||||
false,
|
||||
);
|
||||
for file_entry in vec_file_entry {
|
||||
let (directory, file) = split_path(&file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSameMusic::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsSameMusic::SelectionButton as u32, &false),
|
||||
(ColumnsSameMusic::Size as u32, &format_size(file_entry.size, BINARY)),
|
||||
(ColumnsSameMusic::SizeAsBytes as u32, &file_entry.size),
|
||||
(ColumnsSameMusic::Name as u32, &file),
|
||||
(ColumnsSameMusic::Path as u32, &directory),
|
||||
(ColumnsSameMusic::Title as u32, &file_entry.track_title),
|
||||
(ColumnsSameMusic::Artist as u32, &file_entry.track_artist),
|
||||
(ColumnsSameMusic::Year as u32, &file_entry.year.to_string()),
|
||||
(ColumnsSameMusic::Genre as u32, &file_entry.genre),
|
||||
(ColumnsSameMusic::Bitrate as u32, &(format!("{} kbps", file_entry.bitrate))),
|
||||
(ColumnsSameMusic::BitrateAsNumber as u32, &(file_entry.bitrate)),
|
||||
(ColumnsSameMusic::Length as u32, &file_entry.length),
|
||||
(
|
||||
ColumnsSameMusic::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsSameMusic::ModificationAsSecs as u32, &(file_entry.modified_date)),
|
||||
(ColumnsSameMusic::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsSameMusic::IsHeader as u32, &false),
|
||||
(ColumnsSameMusic::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
same_music_add_to_list_store(
|
||||
&list_store,
|
||||
&file,
|
||||
&directory,
|
||||
file_entry.size,
|
||||
file_entry.modified_date,
|
||||
&file_entry.track_title,
|
||||
&file_entry.track_artist,
|
||||
&file_entry.year,
|
||||
file_entry.bitrate,
|
||||
&format!("{} kbps", file_entry.bitrate),
|
||||
&file_entry.genre,
|
||||
&file_entry.length,
|
||||
false,
|
||||
false,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -681,6 +651,7 @@ fn computer_same_music(
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn computer_similar_videos(
|
||||
ff: SimilarVideos,
|
||||
entry_info: &Entry,
|
||||
|
@ -691,7 +662,6 @@ fn computer_similar_videos(
|
|||
buttons_array: &[Widget; 9],
|
||||
buttons_names: &[BottomButtonsEnum; 9],
|
||||
) {
|
||||
const COLUMNS_NUMBER: usize = 11;
|
||||
if ff.get_stopped_search() {
|
||||
entry_info.set_text(&flg!("compute_stopped_by_user"));
|
||||
} else {
|
||||
|
@ -735,46 +705,10 @@ fn computer_similar_videos(
|
|||
vec_file_entry.clone()
|
||||
};
|
||||
|
||||
// Header
|
||||
let (directory, file) = split_path(&base_file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSimilarVideos::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsSimilarVideos::SelectionButton as u32, &false),
|
||||
(ColumnsSimilarVideos::Size as u32, &format_size(base_file_entry.size, BINARY)),
|
||||
(ColumnsSimilarVideos::SizeAsBytes as u32, &base_file_entry.size),
|
||||
(ColumnsSimilarVideos::Name as u32, &file),
|
||||
(ColumnsSimilarVideos::Path as u32, &directory),
|
||||
(
|
||||
ColumnsSimilarVideos::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(base_file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsSimilarVideos::ModificationAsSecs as u32, &(base_file_entry.modified_date)),
|
||||
(ColumnsSimilarVideos::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsSimilarVideos::IsHeader as u32, &true),
|
||||
(ColumnsSimilarVideos::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
|
||||
// Meat
|
||||
similar_videos_add_to_list_store(&list_store, "", "", base_file_entry.size, base_file_entry.modified_date, true, true);
|
||||
for file_entry in &vec_file_entry {
|
||||
let (directory, file) = split_path(&file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSimilarVideos::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsSimilarVideos::SelectionButton as u32, &false),
|
||||
(ColumnsSimilarVideos::Size as u32, &format_size(file_entry.size, BINARY)),
|
||||
(ColumnsSimilarVideos::SizeAsBytes as u32, &file_entry.size),
|
||||
(ColumnsSimilarVideos::Name as u32, &file),
|
||||
(ColumnsSimilarVideos::Path as u32, &directory),
|
||||
(
|
||||
ColumnsSimilarVideos::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsSimilarVideos::ModificationAsSecs as u32, &(file_entry.modified_date)),
|
||||
(ColumnsSimilarVideos::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsSimilarVideos::IsHeader as u32, &false),
|
||||
(ColumnsSimilarVideos::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
similar_videos_add_to_list_store(&list_store, &file, &directory, file_entry.size, file_entry.modified_date, false, true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -793,42 +727,10 @@ fn computer_similar_videos(
|
|||
vec_file_entry.clone()
|
||||
};
|
||||
|
||||
// Header
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSimilarVideos::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsSimilarVideos::SelectionButton as u32, &false),
|
||||
(ColumnsSimilarVideos::Size as u32, &String::new()),
|
||||
(ColumnsSimilarVideos::SizeAsBytes as u32, &(0)),
|
||||
(ColumnsSimilarVideos::Name as u32, &String::new()),
|
||||
(ColumnsSimilarVideos::Path as u32, &String::new()),
|
||||
(ColumnsSimilarVideos::Modification as u32, &String::new()),
|
||||
(ColumnsSimilarVideos::ModificationAsSecs as u32, &(0)),
|
||||
(ColumnsSimilarVideos::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsSimilarVideos::IsHeader as u32, &true),
|
||||
(ColumnsSimilarVideos::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
|
||||
// Meat
|
||||
similar_videos_add_to_list_store(&list_store, "", "", 0, 0, true, false);
|
||||
for file_entry in &vec_file_entry {
|
||||
let (directory, file) = split_path(&file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSimilarVideos::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsSimilarVideos::SelectionButton as u32, &false),
|
||||
(ColumnsSimilarVideos::Size as u32, &format_size(file_entry.size, BINARY)),
|
||||
(ColumnsSimilarVideos::SizeAsBytes as u32, &file_entry.size),
|
||||
(ColumnsSimilarVideos::Name as u32, &file),
|
||||
(ColumnsSimilarVideos::Path as u32, &directory),
|
||||
(
|
||||
ColumnsSimilarVideos::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsSimilarVideos::ModificationAsSecs as u32, &(file_entry.modified_date)),
|
||||
(ColumnsSimilarVideos::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsSimilarVideos::IsHeader as u32, &false),
|
||||
(ColumnsSimilarVideos::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
similar_videos_add_to_list_store(&list_store, &file, &directory, file_entry.size, file_entry.modified_date, false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -863,6 +765,7 @@ fn computer_similar_videos(
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn computer_similar_images(
|
||||
sf: SimilarImages,
|
||||
entry_info: &Entry,
|
||||
|
@ -874,7 +777,6 @@ fn computer_similar_images(
|
|||
buttons_names: &[BottomButtonsEnum; 9],
|
||||
hash_size: u8,
|
||||
) {
|
||||
const COLUMNS_NUMBER: usize = 13;
|
||||
if sf.get_stopped_search() {
|
||||
entry_info.set_text(&flg!("compute_stopped_by_user"));
|
||||
} else {
|
||||
|
@ -918,51 +820,21 @@ fn computer_similar_images(
|
|||
|
||||
// Header
|
||||
let (directory, file) = split_path(&base_file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSimilarImages::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsSimilarImages::SelectionButton as u32, &false),
|
||||
(ColumnsSimilarImages::Similarity as u32, &String::new()),
|
||||
(ColumnsSimilarImages::Size as u32, &format_size(base_file_entry.size, BINARY)),
|
||||
(ColumnsSimilarImages::SizeAsBytes as u32, &base_file_entry.size),
|
||||
(ColumnsSimilarImages::Dimensions as u32, &base_file_entry.dimensions),
|
||||
(ColumnsSimilarImages::Name as u32, &file),
|
||||
(ColumnsSimilarImages::Path as u32, &directory),
|
||||
(
|
||||
ColumnsSimilarImages::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(base_file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsSimilarImages::ModificationAsSecs as u32, &(base_file_entry.modified_date)),
|
||||
(ColumnsSimilarImages::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsSimilarImages::IsHeader as u32, &true),
|
||||
(ColumnsSimilarImages::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
|
||||
// Meat
|
||||
similar_images_add_to_list_store(&list_store, &file, &directory, 0, 0, "", 0, 0, true, true);
|
||||
for file_entry in &vec_file_entry {
|
||||
let (directory, file) = split_path(&file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSimilarImages::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsSimilarImages::SelectionButton as u32, &false),
|
||||
(
|
||||
ColumnsSimilarImages::Similarity as u32,
|
||||
&(similar_images::get_string_from_similarity(&file_entry.similarity, hash_size).to_string()),
|
||||
),
|
||||
(ColumnsSimilarImages::Size as u32, &format_size(file_entry.size, BINARY)),
|
||||
(ColumnsSimilarImages::SizeAsBytes as u32, &file_entry.size),
|
||||
(ColumnsSimilarImages::Dimensions as u32, &file_entry.dimensions),
|
||||
(ColumnsSimilarImages::Name as u32, &file),
|
||||
(ColumnsSimilarImages::Path as u32, &directory),
|
||||
(
|
||||
ColumnsSimilarImages::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsSimilarImages::ModificationAsSecs as u32, &(file_entry.modified_date)),
|
||||
(ColumnsSimilarImages::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsSimilarImages::IsHeader as u32, &false),
|
||||
(ColumnsSimilarImages::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
similar_images_add_to_list_store(
|
||||
&list_store,
|
||||
&file,
|
||||
&directory,
|
||||
file_entry.size,
|
||||
file_entry.modified_date,
|
||||
&file_entry.dimensions,
|
||||
file_entry.similarity,
|
||||
hash_size,
|
||||
false,
|
||||
true,
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -978,49 +850,21 @@ fn computer_similar_images(
|
|||
vec_file_entry.clone()
|
||||
};
|
||||
|
||||
// Header
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSimilarImages::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsSimilarImages::SelectionButton as u32, &false),
|
||||
(ColumnsSimilarImages::Similarity as u32, &String::new()),
|
||||
(ColumnsSimilarImages::Size as u32, &String::new()),
|
||||
(ColumnsSimilarImages::SizeAsBytes as u32, &(0)),
|
||||
(ColumnsSimilarImages::Dimensions as u32, &String::new()),
|
||||
(ColumnsSimilarImages::Name as u32, &String::new()),
|
||||
(ColumnsSimilarImages::Path as u32, &String::new()),
|
||||
(ColumnsSimilarImages::Modification as u32, &String::new()),
|
||||
(ColumnsSimilarImages::ModificationAsSecs as u32, &(0)),
|
||||
(ColumnsSimilarImages::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsSimilarImages::IsHeader as u32, &true),
|
||||
(ColumnsSimilarImages::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
|
||||
// Meat
|
||||
similar_images_add_to_list_store(&list_store, "", "", 0, 0, "", 0, 0, true, false);
|
||||
for file_entry in &vec_file_entry {
|
||||
let (directory, file) = split_path(&file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSimilarImages::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsSimilarImages::SelectionButton as u32, &false),
|
||||
(
|
||||
ColumnsSimilarImages::Similarity as u32,
|
||||
&(similar_images::get_string_from_similarity(&file_entry.similarity, hash_size).to_string()),
|
||||
),
|
||||
(ColumnsSimilarImages::Size as u32, &format_size(file_entry.size, BINARY)),
|
||||
(ColumnsSimilarImages::SizeAsBytes as u32, &file_entry.size),
|
||||
(ColumnsSimilarImages::Dimensions as u32, &file_entry.dimensions),
|
||||
(ColumnsSimilarImages::Name as u32, &file),
|
||||
(ColumnsSimilarImages::Path as u32, &directory),
|
||||
(
|
||||
ColumnsSimilarImages::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsSimilarImages::ModificationAsSecs as u32, &(file_entry.modified_date)),
|
||||
(ColumnsSimilarImages::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsSimilarImages::IsHeader as u32, &false),
|
||||
(ColumnsSimilarImages::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
similar_images_add_to_list_store(
|
||||
&list_store,
|
||||
&file,
|
||||
&directory,
|
||||
file_entry.size,
|
||||
file_entry.modified_date,
|
||||
&file_entry.dimensions,
|
||||
file_entry.similarity,
|
||||
hash_size,
|
||||
false,
|
||||
false,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1364,7 +1208,6 @@ fn computer_duplicate_finder(
|
|||
buttons_array: &[Widget; 9],
|
||||
buttons_names: &[BottomButtonsEnum; 9],
|
||||
) {
|
||||
const COLUMNS_NUMBER: usize = 11;
|
||||
if df.get_stopped_search() {
|
||||
entry_info.set_text(&flg!("compute_stopped_by_user"));
|
||||
} else {
|
||||
|
@ -1450,48 +1293,12 @@ fn computer_duplicate_finder(
|
|||
vector.clone()
|
||||
};
|
||||
|
||||
// HEADER
|
||||
let (directory, file) = split_path(&base_file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(base_file_entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &base_file_entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(base_file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(base_file_entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &true),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, base_file_entry.size, base_file_entry.modified_date, true, true);
|
||||
|
||||
list_store.set(&list_store.append(), &values);
|
||||
|
||||
// MEAT
|
||||
for entry in vector {
|
||||
let (directory, file) = split_path(&entry.path);
|
||||
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &false),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, entry.size, entry.modified_date, false, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1514,46 +1321,10 @@ fn computer_duplicate_finder(
|
|||
|
||||
// HEADER
|
||||
let (directory, file) = split_path(&base_file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(base_file_entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &base_file_entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(base_file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(base_file_entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &true),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
|
||||
// MEAT
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, base_file_entry.size, base_file_entry.modified_date, true, true);
|
||||
for entry in vector {
|
||||
let (directory, file) = split_path(&entry.path);
|
||||
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &false),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, entry.size, entry.modified_date, false, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1574,46 +1345,11 @@ fn computer_duplicate_finder(
|
|||
vector.clone()
|
||||
};
|
||||
|
||||
// HEADER
|
||||
let (directory, file) = split_path(&base_file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(base_file_entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &base_file_entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(base_file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(base_file_entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &true),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
|
||||
// MEAT
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, base_file_entry.size, base_file_entry.modified_date, true, true);
|
||||
for entry in vector {
|
||||
let (directory, file) = split_path(&entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &false),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, entry.size, entry.modified_date, false, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1633,46 +1369,11 @@ fn computer_duplicate_finder(
|
|||
vector.clone()
|
||||
};
|
||||
|
||||
// HEADER
|
||||
let (directory, file) = split_path(&base_file_entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(base_file_entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &base_file_entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(base_file_entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(base_file_entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &true),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
|
||||
// MEAT
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, base_file_entry.size, base_file_entry.modified_date, true, true);
|
||||
for entry in vector {
|
||||
let (directory, file) = split_path(&entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &false),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, entry.size, entry.modified_date, false, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1698,44 +1399,10 @@ fn computer_duplicate_finder(
|
|||
vector.clone()
|
||||
};
|
||||
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&String::new())),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &0),
|
||||
(ColumnsDuplicates::Name as u32, (&String::new())),
|
||||
(ColumnsDuplicates::Path as u32, (&(format!("{} results", vector.len())))),
|
||||
(ColumnsDuplicates::Modification as u32, (&String::new())), // No text in 3 column
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, (&(0))), // Not used here
|
||||
(ColumnsDuplicates::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &true),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, "", "", 0, 0, true, false);
|
||||
for entry in vector {
|
||||
let (directory, file) = split_path(&entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(format!(
|
||||
"{} - ({})",
|
||||
NaiveDateTime::from_timestamp_opt(entry.modified_date as i64, 0).unwrap(),
|
||||
format_size(entry.size, BINARY)
|
||||
)),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &false),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, entry.size, entry.modified_date, false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1755,43 +1422,11 @@ fn computer_duplicate_finder(
|
|||
} else {
|
||||
vector.clone()
|
||||
};
|
||||
duplicates_add_to_list_store(&list_store, "", "", 0, 0, true, false);
|
||||
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&String::new())),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &0),
|
||||
(ColumnsDuplicates::Name as u32, (&String::new())),
|
||||
(ColumnsDuplicates::Path as u32, (&String::new())),
|
||||
(ColumnsDuplicates::Modification as u32, &String::new()), // No text in 3 column
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(0)),
|
||||
(ColumnsDuplicates::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &true),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
|
||||
list_store.set(&list_store.append(), &values);
|
||||
for entry in vector {
|
||||
let (directory, file) = split_path(&entry.path);
|
||||
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &false),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, entry.size, entry.modified_date, false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1811,40 +1446,11 @@ fn computer_duplicate_finder(
|
|||
} else {
|
||||
vector.clone()
|
||||
};
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&String::new())),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &0),
|
||||
(ColumnsDuplicates::Name as u32, (&String::new())),
|
||||
(ColumnsDuplicates::Path as u32, (&String::new())),
|
||||
(ColumnsDuplicates::Modification as u32, &String::new()), // No text in 3 column
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(0)), // Not used here
|
||||
(ColumnsDuplicates::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &true),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
duplicates_add_to_list_store(&list_store, "", "", 0, 0, true, false);
|
||||
|
||||
list_store.set(&list_store.append(), &values);
|
||||
for entry in vector {
|
||||
let (directory, file) = split_path(&entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &false),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, entry.size, entry.modified_date, false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1863,40 +1469,11 @@ fn computer_duplicate_finder(
|
|||
} else {
|
||||
vector.clone()
|
||||
};
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &false),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&String::new())),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &0),
|
||||
(ColumnsDuplicates::Name as u32, (&String::new())),
|
||||
(ColumnsDuplicates::Path as u32, (&String::new())),
|
||||
(ColumnsDuplicates::Modification as u32, &String::new()), // No text in 3 column
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(0)), // Not used here
|
||||
(ColumnsDuplicates::Color as u32, &(HEADER_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &true),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
duplicates_add_to_list_store(&list_store, "", "", 0, 0, true, false);
|
||||
|
||||
list_store.set(&list_store.append(), &values);
|
||||
for entry in vector {
|
||||
let (directory, file) = split_path(&entry.path);
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &true),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, (&format_size(entry.size, BINARY))),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &entry.size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(
|
||||
ColumnsDuplicates::Modification as u32,
|
||||
&(NaiveDateTime::from_timestamp_opt(entry.modified_date as i64, 0).unwrap().to_string()),
|
||||
),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &(entry.modified_date)),
|
||||
(ColumnsDuplicates::Color as u32, &(MAIN_ROW_COLOR.to_string())),
|
||||
(ColumnsDuplicates::IsHeader as u32, &false),
|
||||
(ColumnsDuplicates::TextColor as u32, &(TEXT_COLOR.to_string())),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
duplicates_add_to_list_store(&list_store, &file, &directory, entry.size, entry.modified_date, false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1935,7 +1512,160 @@ fn computer_duplicate_finder(
|
|||
}
|
||||
}
|
||||
}
|
||||
fn duplicates_add_to_list_store(list_store: &ListStore, file: &str, directory: &str, size: u64, modified_date: u64, is_header: bool, is_reference_folder: bool) {
|
||||
const COLUMNS_NUMBER: usize = 11;
|
||||
let size_str;
|
||||
let string_date;
|
||||
let color = if is_header { HEADER_ROW_COLOR } else { MAIN_ROW_COLOR };
|
||||
|
||||
if is_header && !is_reference_folder {
|
||||
size_str = String::new();
|
||||
string_date = String::new();
|
||||
} else {
|
||||
size_str = format_size(size, BINARY);
|
||||
string_date = NaiveDateTime::from_timestamp_opt(modified_date as i64, 0).unwrap().to_string();
|
||||
};
|
||||
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsDuplicates::ActivatableSelectButton as u32, &(!is_header)),
|
||||
(ColumnsDuplicates::SelectionButton as u32, &false),
|
||||
(ColumnsDuplicates::Size as u32, &size_str),
|
||||
(ColumnsDuplicates::SizeAsBytes as u32, &size),
|
||||
(ColumnsDuplicates::Name as u32, &file),
|
||||
(ColumnsDuplicates::Path as u32, &directory),
|
||||
(ColumnsDuplicates::Modification as u32, &string_date),
|
||||
(ColumnsDuplicates::ModificationAsSecs as u32, &modified_date),
|
||||
(ColumnsDuplicates::Color as u32, &color),
|
||||
(ColumnsDuplicates::IsHeader as u32, &is_header),
|
||||
(ColumnsDuplicates::TextColor as u32, &TEXT_COLOR),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
}
|
||||
fn similar_images_add_to_list_store(
|
||||
list_store: &ListStore,
|
||||
file: &str,
|
||||
directory: &str,
|
||||
size: u64,
|
||||
modified_date: u64,
|
||||
dimensions: &str,
|
||||
similarity: u32,
|
||||
hash_size: u8,
|
||||
is_header: bool,
|
||||
is_reference_folder: bool,
|
||||
) {
|
||||
const COLUMNS_NUMBER: usize = 13;
|
||||
let size_str;
|
||||
let string_date;
|
||||
let similarity_string;
|
||||
let color = if is_header { HEADER_ROW_COLOR } else { MAIN_ROW_COLOR };
|
||||
if is_header && !is_reference_folder {
|
||||
size_str = String::new();
|
||||
string_date = String::new();
|
||||
similarity_string = String::new();
|
||||
} else {
|
||||
size_str = format_size(size, BINARY);
|
||||
string_date = NaiveDateTime::from_timestamp_opt(modified_date as i64, 0).unwrap().to_string();
|
||||
similarity_string = similar_images::get_string_from_similarity(&similarity, hash_size);
|
||||
};
|
||||
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSimilarImages::ActivatableSelectButton as u32, &(!is_header)),
|
||||
(ColumnsSimilarImages::SelectionButton as u32, &false),
|
||||
(ColumnsSimilarImages::Similarity as u32, &similarity_string),
|
||||
(ColumnsSimilarImages::Size as u32, &size_str),
|
||||
(ColumnsSimilarImages::SizeAsBytes as u32, &size),
|
||||
(ColumnsSimilarImages::Dimensions as u32, &dimensions),
|
||||
(ColumnsSimilarImages::Name as u32, &file),
|
||||
(ColumnsSimilarImages::Path as u32, &directory),
|
||||
(ColumnsSimilarImages::Modification as u32, &string_date),
|
||||
(ColumnsSimilarImages::ModificationAsSecs as u32, &modified_date),
|
||||
(ColumnsSimilarImages::Color as u32, &color),
|
||||
(ColumnsSimilarImages::IsHeader as u32, &is_header),
|
||||
(ColumnsSimilarImages::TextColor as u32, &TEXT_COLOR),
|
||||
];
|
||||
list_store.set(&list_store.append(), &values);
|
||||
}
|
||||
|
||||
fn similar_videos_add_to_list_store(list_store: &ListStore, file: &str, directory: &str, size: u64, modified_date: u64, is_header: bool, is_reference_folder: bool) {
|
||||
const COLUMNS_NUMBER: usize = 11;
|
||||
let size_str;
|
||||
let string_date;
|
||||
let color = if is_header { HEADER_ROW_COLOR } else { MAIN_ROW_COLOR };
|
||||
if is_header && !is_reference_folder {
|
||||
size_str = String::new();
|
||||
string_date = String::new();
|
||||
} else {
|
||||
size_str = format_size(size, BINARY);
|
||||
string_date = NaiveDateTime::from_timestamp_opt(modified_date as i64, 0).unwrap().to_string();
|
||||
};
|
||||
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSimilarVideos::ActivatableSelectButton as u32, &(!is_header)),
|
||||
(ColumnsSimilarVideos::SelectionButton as u32, &false),
|
||||
(ColumnsSimilarVideos::Size as u32, &size_str),
|
||||
(ColumnsSimilarVideos::SizeAsBytes as u32, &size),
|
||||
(ColumnsSimilarVideos::Name as u32, &file),
|
||||
(ColumnsSimilarVideos::Path as u32, &directory),
|
||||
(ColumnsSimilarVideos::Modification as u32, &(string_date)),
|
||||
(ColumnsSimilarVideos::ModificationAsSecs as u32, &(modified_date)),
|
||||
(ColumnsSimilarVideos::Color as u32, &color),
|
||||
(ColumnsSimilarVideos::IsHeader as u32, &false),
|
||||
(ColumnsSimilarVideos::TextColor as u32, &TEXT_COLOR),
|
||||
];
|
||||
|
||||
list_store.set(&list_store.append(), &values);
|
||||
}
|
||||
fn same_music_add_to_list_store(
|
||||
list_store: &ListStore,
|
||||
file: &str,
|
||||
directory: &str,
|
||||
size: u64,
|
||||
modified_date: u64,
|
||||
track_title: &str,
|
||||
track_artist: &str,
|
||||
track_year: &str,
|
||||
track_bitrate: u32,
|
||||
bitrate_string: &str,
|
||||
track_genre: &str,
|
||||
track_length: &str,
|
||||
is_header: bool,
|
||||
is_reference_folder: bool,
|
||||
) {
|
||||
const COLUMNS_NUMBER: usize = 18;
|
||||
let size_str;
|
||||
let string_date;
|
||||
let color = if is_header { HEADER_ROW_COLOR } else { MAIN_ROW_COLOR };
|
||||
if is_header && !is_reference_folder {
|
||||
size_str = String::new();
|
||||
string_date = String::new();
|
||||
} else {
|
||||
size_str = format_size(size, BINARY);
|
||||
string_date = NaiveDateTime::from_timestamp_opt(modified_date as i64, 0).unwrap().to_string();
|
||||
};
|
||||
|
||||
let values: [(u32, &dyn ToValue); COLUMNS_NUMBER] = [
|
||||
(ColumnsSameMusic::ActivatableSelectButton as u32, &(!is_header)),
|
||||
(ColumnsSameMusic::SelectionButton as u32, &false),
|
||||
(ColumnsSameMusic::Size as u32, &size_str),
|
||||
(ColumnsSameMusic::SizeAsBytes as u32, &size),
|
||||
(ColumnsSameMusic::Name as u32, &file),
|
||||
(ColumnsSameMusic::Path as u32, &directory),
|
||||
(ColumnsSameMusic::Title as u32, &track_title),
|
||||
(ColumnsSameMusic::Artist as u32, &track_artist),
|
||||
(ColumnsSameMusic::Year as u32, &track_year),
|
||||
(ColumnsSameMusic::Genre as u32, &track_genre),
|
||||
(ColumnsSameMusic::Bitrate as u32, &bitrate_string),
|
||||
(ColumnsSameMusic::BitrateAsNumber as u32, &track_bitrate),
|
||||
(ColumnsSameMusic::Length as u32, &track_length),
|
||||
(ColumnsSameMusic::Modification as u32, &string_date),
|
||||
(ColumnsSameMusic::ModificationAsSecs as u32, &modified_date),
|
||||
(ColumnsSameMusic::Color as u32, &(color)),
|
||||
(ColumnsSameMusic::IsHeader as u32, &is_header),
|
||||
(ColumnsSameMusic::TextColor as u32, &TEXT_COLOR),
|
||||
];
|
||||
|
||||
list_store.set(&list_store.append(), &values);
|
||||
}
|
||||
fn set_specific_buttons_as_active(
|
||||
buttons_array: &Rc<RefCell<HashMap<NotebookMainEnum, HashMap<BottomButtonsEnum, bool>>>>,
|
||||
notebook_enum: &NotebookMainEnum,
|
||||
|
|
|
@ -21,7 +21,7 @@ pub fn connect_duplicate_combo_box(gui_data: &GuiData) {
|
|||
label_duplicate_hash_type.set_visible(false);
|
||||
}
|
||||
|
||||
if DUPLICATES_CHECK_METHOD_COMBO_BOX[chosen_index as usize].check_method == CheckingMethod::Name {
|
||||
if [CheckingMethod::Name, CheckingMethod::SizeName].contains(&DUPLICATES_CHECK_METHOD_COMBO_BOX[chosen_index as usize].check_method) {
|
||||
check_button_duplicate_case_sensitive_name.set_visible(true);
|
||||
} else {
|
||||
check_button_duplicate_case_sensitive_name.set_visible(false);
|
||||
|
|
|
@ -938,7 +938,7 @@ pub fn load_configuration(
|
|||
main_notebook.label_duplicate_hash_type.set_visible(false);
|
||||
}
|
||||
|
||||
if DUPLICATES_CHECK_METHOD_COMBO_BOX[combo_chosen_index as usize].check_method == CheckingMethod::Name {
|
||||
if [CheckingMethod::Name, CheckingMethod::SizeName].contains(&DUPLICATES_CHECK_METHOD_COMBO_BOX[combo_chosen_index as usize].check_method) {
|
||||
main_notebook.check_button_duplicate_case_sensitive_name.set_visible(true);
|
||||
} else {
|
||||
main_notebook.check_button_duplicate_case_sensitive_name.set_visible(false);
|
||||
|
|
Loading…
Reference in a new issue