parent
2dabb788e6
commit
a77cb27f3b
|
@ -1,3 +1,6 @@
|
|||
newline_style = "Unix"
|
||||
max_width = 180
|
||||
remove_nested_parens = true
|
||||
|
||||
# Enable only with nightly channel via - cargo +nightly fmt
|
||||
imports_granularity = "Module"
|
414
Cargo.lock
generated
414
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -5,24 +5,20 @@ use std::process;
|
|||
use clap::Parser;
|
||||
|
||||
use commands::Commands;
|
||||
use czkawka_core::big_file::SearchMode;
|
||||
use czkawka_core::bad_extensions::BadExtensions;
|
||||
use czkawka_core::big_file::{self, BigFile, SearchMode};
|
||||
use czkawka_core::broken_files::{self, BrokenFiles};
|
||||
use czkawka_core::common::set_number_of_threads;
|
||||
#[allow(unused_imports)] // It is used in release for print_results().
|
||||
use czkawka_core::common_traits::*;
|
||||
use czkawka_core::similar_images::test_image_conversion_speed;
|
||||
use czkawka_core::{
|
||||
bad_extensions::BadExtensions,
|
||||
big_file::{self, BigFile},
|
||||
broken_files::{self, BrokenFiles},
|
||||
duplicate::DuplicateFinder,
|
||||
empty_files::{self, EmptyFiles},
|
||||
empty_folder::EmptyFolder,
|
||||
invalid_symlinks::{self, InvalidSymlinks},
|
||||
same_music::SameMusic,
|
||||
similar_images::{return_similarity_from_similarity_preset, SimilarImages},
|
||||
similar_videos::SimilarVideos,
|
||||
temporary::{self, Temporary},
|
||||
};
|
||||
use czkawka_core::duplicate::DuplicateFinder;
|
||||
use czkawka_core::empty_files::{self, EmptyFiles};
|
||||
use czkawka_core::empty_folder::EmptyFolder;
|
||||
use czkawka_core::invalid_symlinks::{self, InvalidSymlinks};
|
||||
use czkawka_core::same_music::SameMusic;
|
||||
use czkawka_core::similar_images::{return_similarity_from_similarity_preset, test_image_conversion_speed, SimilarImages};
|
||||
use czkawka_core::similar_videos::SimilarVideos;
|
||||
use czkawka_core::temporary::{self, Temporary};
|
||||
|
||||
use crate::commands::{
|
||||
Args, BadExtensionsArgs, BiggestFilesArgs, BrokenFilesArgs, DuplicatesArgs, EmptyFilesArgs, EmptyFoldersArgs, InvalidSymlinksArgs, SameMusicArgs, SimilarImagesArgs,
|
||||
|
|
|
@ -59,7 +59,7 @@ serde_json = "1.0"
|
|||
# Language
|
||||
i18n-embed = { version = "0.13", features = ["fluent-system", "desktop-requester"] }
|
||||
i18n-embed-fl = "0.6"
|
||||
rust-embed = "6.7"
|
||||
rust-embed = "6.8"
|
||||
once_cell = "1.18"
|
||||
|
||||
# Raw image files
|
||||
|
@ -68,9 +68,9 @@ imagepipe = "0.5"
|
|||
|
||||
# Checking for invalid extensions
|
||||
mime_guess = "2.0"
|
||||
infer = "0.13"
|
||||
infer = "0.15"
|
||||
|
||||
num_cpus = "1.15"
|
||||
num_cpus = "1.16"
|
||||
|
||||
# Heif/Heic
|
||||
libheif-rs = { version = "=0.18.0", optional = true } # Do not upgrade now, since Ubuntu 22.04 not works with newer version
|
||||
|
|
|
@ -9,8 +9,7 @@ use std::sync::Arc;
|
|||
|
||||
use crossbeam_channel::Receiver;
|
||||
use futures::channel::mpsc::UnboundedSender;
|
||||
use humansize::format_size;
|
||||
use humansize::BINARY;
|
||||
use humansize::{format_size, BINARY};
|
||||
use rayon::prelude::*;
|
||||
|
||||
use crate::common::{check_folder_children, prepare_thread_handler_common, send_info_and_wait_for_ending_all_threads, split_path};
|
||||
|
|
|
@ -18,9 +18,9 @@ use rayon::prelude::*;
|
|||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::common::{
|
||||
check_folder_children, create_crash_message, open_cache_folder, prepare_thread_handler_common, send_info_and_wait_for_ending_all_threads, PDF_FILES_EXTENSIONS,
|
||||
check_folder_children, create_crash_message, open_cache_folder, prepare_thread_handler_common, send_info_and_wait_for_ending_all_threads, AUDIO_FILES_EXTENSIONS,
|
||||
IMAGE_RS_BROKEN_FILES_EXTENSIONS, PDF_FILES_EXTENSIONS, ZIP_FILES_EXTENSIONS,
|
||||
};
|
||||
use crate::common::{AUDIO_FILES_EXTENSIONS, IMAGE_RS_BROKEN_FILES_EXTENSIONS, ZIP_FILES_EXTENSIONS};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir, get_lowercase_name, get_modified_time, CheckingMethod, ProgressData, ToolType};
|
||||
use crate::common_directory::Directories;
|
||||
use crate::common_extensions::Extensions;
|
||||
|
|
|
@ -4,8 +4,7 @@ use std::collections::HashSet;
|
|||
use std::fs::File;
|
||||
use std::hash::Hasher;
|
||||
use std::io::prelude::*;
|
||||
use std::io::{self, Error, ErrorKind};
|
||||
use std::io::{BufReader, BufWriter};
|
||||
use std::io::{self, BufReader, BufWriter, Error, ErrorKind};
|
||||
#[cfg(target_family = "unix")]
|
||||
use std::os::unix::fs::MetadataExt;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
@ -15,8 +14,7 @@ use std::{fs, mem};
|
|||
|
||||
use crossbeam_channel::Receiver;
|
||||
use futures::channel::mpsc::UnboundedSender;
|
||||
use humansize::format_size;
|
||||
use humansize::BINARY;
|
||||
use humansize::{format_size, BINARY};
|
||||
use rayon::prelude::*;
|
||||
use xxhash_rust::xxh3::Xxh3;
|
||||
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
use std::collections::HashMap;
|
||||
|
||||
use i18n_embed::{
|
||||
fluent::{fluent_language_loader, FluentLanguageLoader},
|
||||
DefaultLocalizer, LanguageLoader, Localizer,
|
||||
};
|
||||
use i18n_embed::fluent::{fluent_language_loader, FluentLanguageLoader};
|
||||
use i18n_embed::{DefaultLocalizer, LanguageLoader, Localizer};
|
||||
use once_cell::sync::Lazy;
|
||||
use rust_embed::RustEmbed;
|
||||
|
||||
|
|
|
@ -11,8 +11,7 @@ use std::{mem, panic};
|
|||
use anyhow::Context;
|
||||
use crossbeam_channel::Receiver;
|
||||
use futures::channel::mpsc::UnboundedSender;
|
||||
use lofty::TaggedFileExt;
|
||||
use lofty::{read_from, AudioFile, ItemKey};
|
||||
use lofty::{read_from, AudioFile, ItemKey, TaggedFileExt};
|
||||
use rayon::prelude::*;
|
||||
use rusty_chromaprint::{match_fingerprints, Configuration, Fingerprinter};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
@ -23,8 +22,9 @@ use symphonia::core::io::MediaSourceStream;
|
|||
use symphonia::core::meta::MetadataOptions;
|
||||
use symphonia::core::probe::Hint;
|
||||
|
||||
use crate::common::{create_crash_message, prepare_thread_handler_common, send_info_and_wait_for_ending_all_threads, AUDIO_FILES_EXTENSIONS};
|
||||
use crate::common::{filter_reference_folders_generic, open_cache_folder};
|
||||
use crate::common::{
|
||||
create_crash_message, filter_reference_folders_generic, open_cache_folder, prepare_thread_handler_common, send_info_and_wait_for_ending_all_threads, AUDIO_FILES_EXTENSIONS,
|
||||
};
|
||||
use crate::common_dir_traversal::{CheckingMethod, DirTraversalBuilder, DirTraversalResult, FileEntry, ProgressData, ToolType};
|
||||
use crate::common_directory::Directories;
|
||||
use crate::common_extensions::Extensions;
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
use std::collections::{BTreeSet, HashMap, HashSet};
|
||||
use std::fs::{DirEntry, File, Metadata};
|
||||
use std::io::Write;
|
||||
use std::io::*;
|
||||
use std::mem;
|
||||
use std::panic;
|
||||
use std::io::{Write, *};
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::sync::atomic::Ordering;
|
||||
use std::time::SystemTime;
|
||||
use std::{mem, panic};
|
||||
|
||||
use bk_tree::BKTree;
|
||||
use crossbeam_channel::Receiver;
|
||||
use futures::channel::mpsc::UnboundedSender;
|
||||
use humansize::format_size;
|
||||
use humansize::BINARY;
|
||||
use humansize::{format_size, BINARY};
|
||||
use image::GenericImageView;
|
||||
use image_hasher::{FilterType, HashAlg, HasherConfig};
|
||||
use rayon::prelude::*;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
use std::collections::{BTreeMap, BTreeSet, HashMap};
|
||||
use std::fs::{DirEntry, File, Metadata};
|
||||
use std::io::Write;
|
||||
use std::io::*;
|
||||
use std::io::{Write, *};
|
||||
use std::mem;
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::sync::atomic::Ordering;
|
||||
|
@ -9,15 +8,13 @@ use std::sync::atomic::Ordering;
|
|||
use crossbeam_channel::Receiver;
|
||||
use ffmpeg_cmdline_utils::FfmpegErrorKind::FfmpegNotFound;
|
||||
use futures::channel::mpsc::UnboundedSender;
|
||||
use humansize::format_size;
|
||||
use humansize::BINARY;
|
||||
use humansize::{format_size, BINARY};
|
||||
use rayon::prelude::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use vid_dup_finder_lib::HashCreationErrorKind::DetermineVideo;
|
||||
use vid_dup_finder_lib::{NormalizedTolerance, VideoHash};
|
||||
|
||||
use crate::common::open_cache_folder;
|
||||
use crate::common::{check_folder_children, prepare_thread_handler_common, send_info_and_wait_for_ending_all_threads, VIDEO_FILES_EXTENSIONS};
|
||||
use crate::common::{check_folder_children, open_cache_folder, prepare_thread_handler_common, send_info_and_wait_for_ending_all_threads, VIDEO_FILES_EXTENSIONS};
|
||||
use crate::common_dir_traversal::{common_get_entry_data_metadata, common_read_dir, get_lowercase_name, get_modified_time, CheckingMethod, ProgressData, ToolType};
|
||||
use crate::common_directory::Directories;
|
||||
use crate::common_extensions::Extensions;
|
||||
|
|
|
@ -26,13 +26,13 @@ futures = "0.3.28"
|
|||
directories-next = "2.0"
|
||||
|
||||
# For opening files
|
||||
open = "4.1"
|
||||
open = "5.0"
|
||||
|
||||
# To get image preview
|
||||
image = "0.24"
|
||||
|
||||
# To be able to use custom select
|
||||
regex = "1.8"
|
||||
regex = "1.9"
|
||||
|
||||
# To get image_hasher types
|
||||
image_hasher = "1.2"
|
||||
|
@ -46,7 +46,7 @@ fs_extra = "1.3"
|
|||
# Language
|
||||
i18n-embed = { version = "0.13", features = ["fluent-system", "desktop-requester"] }
|
||||
i18n-embed-fl = "0.6"
|
||||
rust-embed = "6.7"
|
||||
rust-embed = "6.8"
|
||||
once_cell = "1.18"
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
|
|
|
@ -7,8 +7,7 @@ use chrono::NaiveDateTime;
|
|||
use glib::Receiver;
|
||||
use gtk4::prelude::*;
|
||||
use gtk4::{Entry, ListStore, TextView, TreeView, Widget};
|
||||
use humansize::format_size;
|
||||
use humansize::BINARY;
|
||||
use humansize::{format_size, BINARY};
|
||||
|
||||
use czkawka_core::bad_extensions::BadExtensions;
|
||||
use czkawka_core::big_file::BigFile;
|
||||
|
@ -1463,7 +1462,7 @@ fn similar_videos_add_to_list_store(list_store: &ListStore, file: &str, director
|
|||
(ColumnsSimilarVideos::Modification as u32, &string_date),
|
||||
(ColumnsSimilarVideos::ModificationAsSecs as u32, &modified_date),
|
||||
(ColumnsSimilarVideos::Color as u32, &color),
|
||||
(ColumnsSimilarVideos::IsHeader as u32, &false),
|
||||
(ColumnsSimilarVideos::IsHeader as u32, &is_header),
|
||||
(ColumnsSimilarVideos::TextColor as u32, &TEXT_COLOR),
|
||||
];
|
||||
|
||||
|
|
|
@ -14,8 +14,8 @@ where
|
|||
let model = get_list_store(tree_view);
|
||||
|
||||
if let Some(curr_iter) = model.iter_first() {
|
||||
assert!(model.get::<bool>(&curr_iter, column_header));
|
||||
assert!(model.iter_next(&curr_iter)); // Must be at least one item
|
||||
assert!(model.get::<bool>(&curr_iter, column_header)); // First item should be header
|
||||
assert!(model.iter_next(&curr_iter)); // Must be at least two items
|
||||
loop {
|
||||
let mut iters = Vec::new();
|
||||
let mut all_have = false;
|
||||
|
|
|
@ -55,7 +55,7 @@ pub enum PopoverTypes {
|
|||
Date,
|
||||
}
|
||||
|
||||
#[derive(Eq, PartialEq, Copy, Clone, Hash)]
|
||||
#[derive(Eq, PartialEq, Copy, Clone, Hash, Debug)]
|
||||
pub enum BottomButtonsEnum {
|
||||
Search,
|
||||
Select,
|
||||
|
|
|
@ -15,8 +15,6 @@ use czkawka_core::similar_images::SIMILAR_VALUES;
|
|||
use czkawka_core::similar_videos::MAX_TOLERANCE;
|
||||
|
||||
use crate::create_tree_view::*;
|
||||
use crate::delete_things;
|
||||
use crate::flg;
|
||||
use crate::gui_structs::gui_data::*;
|
||||
use crate::help_combo_box::{
|
||||
DUPLICATES_CHECK_METHOD_COMBO_BOX, DUPLICATES_HASH_TYPE_COMBO_BOX, IMAGES_HASH_SIZE_COMBO_BOX, IMAGES_HASH_TYPE_COMBO_BOX, IMAGES_RESIZE_ALGORITHM_COMBO_BOX,
|
||||
|
@ -27,6 +25,7 @@ use crate::localizer_core::generate_translation_hashmap;
|
|||
use crate::notebook_enums::{NotebookMainEnum, NotebookUpperEnum};
|
||||
use crate::notebook_info::NOTEBOOKS_INFO;
|
||||
use crate::opening_selecting_records::*;
|
||||
use crate::{delete_things, flg};
|
||||
|
||||
pub fn initialize_gui(gui_data: &mut GuiData) {
|
||||
//// Initialize button
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
use i18n_embed::{
|
||||
fluent::{fluent_language_loader, FluentLanguageLoader},
|
||||
DefaultLocalizer, LanguageLoader, Localizer,
|
||||
};
|
||||
use i18n_embed::fluent::{fluent_language_loader, FluentLanguageLoader};
|
||||
use i18n_embed::{DefaultLocalizer, LanguageLoader, Localizer};
|
||||
use once_cell::sync::Lazy;
|
||||
use rust_embed::RustEmbed;
|
||||
|
||||
|
|
|
@ -12,8 +12,7 @@ use futures::channel::mpsc;
|
|||
use futures::channel::mpsc::{UnboundedReceiver, UnboundedSender};
|
||||
use gtk4::gio::ApplicationFlags;
|
||||
use gtk4::prelude::*;
|
||||
use gtk4::Application;
|
||||
use gtk4::Inhibit;
|
||||
use gtk4::{Application, Inhibit};
|
||||
|
||||
use connect_things::connect_about_buttons::*;
|
||||
use connect_things::connect_button_compare::*;
|
||||
|
|
|
@ -6,6 +6,7 @@ use crate::help_functions::{
|
|||
};
|
||||
use crate::notebook_enums::{NotebookMainEnum, NUMBER_OF_NOTEBOOK_MAIN_TABS};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct NotebookObject {
|
||||
pub notebook_type: NotebookMainEnum,
|
||||
pub available_modes: &'static [PopoverTypes],
|
||||
|
|
Loading…
Reference in a new issue