1
0
Fork 0
mirror of synced 2024-04-26 00:32:07 +12:00

Use system language when available (#506)

* Use system language when available

* Use clippy nightly
This commit is contained in:
Rafał Mikrut 2021-12-18 23:45:37 +01:00 committed by GitHub
parent c97bacad99
commit c8ade1fb0f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 143 additions and 154 deletions

View file

@ -354,8 +354,7 @@ fn parse_maximal_file_size(src: &str) -> Result<u64, String> {
}
fn parse_similar_image_filter(src: &str) -> Result<FilterType, String> {
let filter_type;
filter_type = match src.to_lowercase().as_str() {
let filter_type = match src.to_lowercase().as_str() {
"lanczos3" => FilterType::Lanczos3,
"nearest" => FilterType::Nearest,
"triangle" => FilterType::Triangle,
@ -367,8 +366,7 @@ fn parse_similar_image_filter(src: &str) -> Result<FilterType, String> {
}
fn parse_similar_hash_algorithm(src: &str) -> Result<HashAlg, String> {
let algorithm;
algorithm = match src.to_lowercase().as_str() {
let algorithm = match src.to_lowercase().as_str() {
"mean" => HashAlg::Mean,
"gradient" => HashAlg::Gradient,
"blockhash" => HashAlg::Blockhash,
@ -380,8 +378,7 @@ fn parse_similar_hash_algorithm(src: &str) -> Result<HashAlg, String> {
}
fn parse_image_hash_size(src: &str) -> Result<u8, String> {
let hash_size;
hash_size = match src.to_lowercase().as_str() {
let hash_size = match src.to_lowercase().as_str() {
"8" => 8,
"16" => 16,
"32" => 32,

View file

@ -135,12 +135,11 @@ impl BigFile {
let atomic_file_counter = Arc::new(AtomicU64::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
files_checked: atomic_file_counter.load(Ordering::Relaxed) as usize,
@ -150,10 +149,10 @@ impl BigFile {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
while !folders_to_check.is_empty() {

View file

@ -172,12 +172,11 @@ impl BrokenFiles {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 0,
@ -190,10 +189,10 @@ impl BrokenFiles {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
while !folders_to_check.is_empty() {
@ -362,13 +361,12 @@ impl BrokenFiles {
let progress_thread_run = Arc::new(AtomicBool::new(true));
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
let files_to_check = non_cached_files_to_check.len();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 1,
@ -381,10 +379,10 @@ impl BrokenFiles {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
let mut vec_file_entry: Vec<FileEntry> = non_cached_files_to_check
.par_iter()

View file

@ -106,7 +106,7 @@ impl Common {
match path.to_str() {
Some(path) if path.is_char_boundary(1) => {
let replaced = path.replace("/", "\\");
let replaced = path.replace('/', "\\");
let mut new_path = OsString::new();
if replaced[1..].starts_with(':') {
new_path.push(replaced[..1].to_ascii_uppercase());

View file

@ -302,12 +302,11 @@ impl DuplicateFinder {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
checking_method: CheckingMethod::Name,
@ -321,10 +320,10 @@ impl DuplicateFinder {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
@ -482,8 +481,7 @@ impl DuplicateFinder {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
@ -493,7 +491,7 @@ impl DuplicateFinder {
CheckingMethod::Hash => 2,
_ => panic!(),
};
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
checking_method,
@ -507,10 +505,10 @@ impl DuplicateFinder {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
@ -645,12 +643,7 @@ impl DuplicateFinder {
continue;
}
let vector;
if self.ignore_hard_links {
vector = filter_hard_links(&vec);
} else {
vector = vec;
}
let vector = if self.ignore_hard_links { filter_hard_links(&vec) } else { vec };
if vector.len() > 1 {
self.information.number_of_duplicated_files_by_size += vector.len() - 1;
@ -680,14 +673,13 @@ impl DuplicateFinder {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
let files_to_check = self.files_with_identical_size.iter().map(|e| e.1.len()).sum();
let checking_method = self.check_method;
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
checking_method,
@ -701,10 +693,10 @@ impl DuplicateFinder {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
@ -847,14 +839,13 @@ impl DuplicateFinder {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
let files_to_check = pre_checked_map.iter().map(|(_size, vec_file_entry)| vec_file_entry.len()).sum();
let checking_method = self.check_method;
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
checking_method,
@ -868,10 +859,10 @@ impl DuplicateFinder {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END

View file

@ -145,12 +145,11 @@ impl EmptyFiles {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 0,
@ -162,10 +161,10 @@ impl EmptyFiles {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
while !folders_to_check.is_empty() {
if stop_receiver.is_some() && stop_receiver.unwrap().try_recv().is_ok() {

View file

@ -151,12 +151,11 @@ impl EmptyFolder {
let atomic_folder_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_folder_counter = atomic_folder_counter.clone();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 0,
@ -168,10 +167,10 @@ impl EmptyFolder {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
// Add root folders for finding

View file

@ -154,12 +154,11 @@ impl InvalidSymlinks {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 0,
@ -171,10 +170,10 @@ impl InvalidSymlinks {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
while !folders_to_check.is_empty() {

View file

@ -214,12 +214,11 @@ impl SameMusic {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 0,
@ -232,10 +231,10 @@ impl SameMusic {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
while !folders_to_check.is_empty() {
@ -380,13 +379,12 @@ impl SameMusic {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
let music_to_check = self.music_to_check.len();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 1,
@ -399,10 +397,10 @@ impl SameMusic {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
let vec_file_entry = self
@ -477,13 +475,12 @@ impl SameMusic {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
let music_to_check = self.music_to_check.len();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 2,
@ -496,10 +493,10 @@ impl SameMusic {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
let mut old_duplicates: Vec<Vec<FileEntry>> = vec![self.music_entries.clone()];
@ -804,7 +801,7 @@ fn get_approximate_conversion(what: &mut String) {
let mut new_what = String::with_capacity(what.len());
let mut tab_number = 0;
let mut space_before = true;
for character in what.chars().into_iter() {
for character in what.chars() {
match character {
'(' => {
tab_number += 1;

View file

@ -258,12 +258,11 @@ impl SimilarImages {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 0,
@ -276,10 +275,10 @@ impl SimilarImages {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
while !folders_to_check.is_empty() {
@ -457,13 +456,12 @@ impl SimilarImages {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
let images_to_check = non_cached_files_to_check.len();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 1,
@ -476,10 +474,10 @@ impl SimilarImages {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
let mut vec_file_entry: Vec<(FileEntry, Vec<u8>)> = non_cached_files_to_check
.par_iter()

View file

@ -215,12 +215,11 @@ impl SimilarVideos {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 0,
@ -233,10 +232,10 @@ impl SimilarVideos {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
while !folders_to_check.is_empty() {
@ -405,13 +404,12 @@ impl SimilarVideos {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
let videos_to_check = non_cached_files_to_check.len();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 1,
@ -424,10 +422,10 @@ impl SimilarVideos {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
let mut vec_file_entry: Vec<FileEntry> = non_cached_files_to_check
.par_iter()

View file

@ -136,12 +136,11 @@ impl Temporary {
let atomic_file_counter = Arc::new(AtomicUsize::new(0));
let progress_thread_handle;
if let Some(progress_sender) = progress_sender {
let progress_thread_handle = if let Some(progress_sender) = progress_sender {
let progress_send = progress_sender.clone();
let progress_thread_run = progress_thread_run.clone();
let atomic_file_counter = atomic_file_counter.clone();
progress_thread_handle = thread::spawn(move || loop {
thread::spawn(move || loop {
progress_send
.unbounded_send(ProgressData {
current_stage: 0,
@ -153,10 +152,10 @@ impl Temporary {
break;
}
sleep(Duration::from_millis(LOOP_DURATION as u64));
});
})
} else {
progress_thread_handle = thread::spawn(|| {});
}
thread::spawn(|| {})
};
//// PROGRESS THREAD END
while !folders_to_check.is_empty() {

View file

@ -75,9 +75,7 @@ fn move_things(tree_view: &gtk::TreeView, column_file_name: i32, column_path: i3
let tree_view = tree_view.clone();
chooser.connect_response(move |file_chooser, response_type| {
if response_type == gtk::ResponseType::Ok {
let folders: Vec<PathBuf>;
// GTK 3
folders = file_chooser.filenames();
let folders: Vec<PathBuf> = file_chooser.filenames();
// GTK 4
// folders = Vec::new();
// if let Some(g_files) = file_chooser.files() {

View file

@ -1,7 +1,8 @@
use crate::language_functions::get_language_from_combo_box_text;
use crate::GuiData;
use crate::{GuiData, LANGUAGES_ALL};
use gtk::prelude::*;
use i18n_embed::unic_langid::LanguageIdentifier;
use i18n_embed::DesktopLanguageRequester;
// use i18n_embed::{DesktopLanguageRequester, Localizer};
pub fn connect_change_language(gui_data: &GuiData) {
@ -20,27 +21,40 @@ fn change_language(gui_data: &GuiData) {
let lang_short = get_language_from_combo_box_text(gui_data.settings.combo_box_settings_language.active_text().unwrap().to_string()).short_text;
let lang_identifier = vec![LanguageIdentifier::from_bytes(lang_short.as_bytes()).unwrap()];
// let available_languages = Localizer::available_languages();
// println!("{:?}", available_languages);
for (lib, localizer) in localizers {
if let Err(error) = localizer.select(&lang_identifier) {
eprintln!("Error while loadings languages for {} {:?}", lib, error);
}
}
gui_data.update_language();
// Try to use default OS language
// let requested_languages = DesktopLanguageRequester::requested_languages();
// let localizers = vec![("czkawka_gui", crate::localizer::localizer())];
//
// println!("Requested Languages{:?}", requested_languages);
//
// let lang_identifier = LanguageIdentifier::from_bytes("pl".as_bytes());
// // let available_languages = Localizer::available_languages();
// // println!("{:?}", available_languages);
// for (lib, localizer) in localizers {
// if let Err(error) = localizer.select(&requested_languages) {
// eprintln!("Error while loadings languages for {} {:?}", lib, error);
// }
// }
}
pub fn load_system_language(gui_data: &GuiData) {
let requested_languages = DesktopLanguageRequester::requested_languages();
if let Some(language) = requested_languages.get(0) {
let old_short_lang = language.to_string();
let mut short_lang = "".to_string();
// removes from e.g. en_zb, ending _zd since Czkawka don't support this(maybe could add this in future, but only when)
for i in old_short_lang.chars() {
if i.is_ascii_alphabetic() {
short_lang.push(i)
} else {
break;
}
}
let mut found: bool = false;
for (index, lang) in LANGUAGES_ALL.iter().enumerate() {
if lang.short_text == short_lang {
found = true;
gui_data.settings.combo_box_settings_language.set_active(Some(index as u32));
break;
}
}
if found {
println!("INFO: Default system language {} is available, so choosing them", short_lang);
} else {
println!("INFO: Default system language {} is not available, using English(en) instead", short_lang);
}
}
}

View file

@ -91,9 +91,7 @@ fn add_chosen_directories(window_main: &Window, tree_view: &TreeView, excluded_i
let tree_view = tree_view.clone();
file_chooser.connect_response(move |file_chooser, response_type| {
if response_type == gtk::ResponseType::Ok {
let folders: Vec<PathBuf>;
// GTK 3
folders = file_chooser.filenames();
let folders: Vec<PathBuf> = file_chooser.filenames();
// GTK 4
// folders = Vec::new();
// if let Some(g_files) = file_chooser.files() {

View file

@ -28,6 +28,7 @@ use crate::connect_show_hide_ui::*;
use crate::connect_similar_image_size_change::*;
use crate::gui_data::*;
use crate::initialize_gui::*;
use crate::language_functions::LANGUAGES_ALL;
use crate::saving_loading::*;
use crate::tests::validate_notebook_data;
@ -103,6 +104,7 @@ fn main() {
initialize_gui(&mut gui_data);
validate_notebook_data(&gui_data); // Must be run after initialization of gui, to check if everything was properly setup
reset_configuration(false, &gui_data.upper_notebook, &gui_data.settings, &gui_data.text_view_errors); // Fallback for invalid loading setting project
load_system_language(&gui_data); // Check for default system language, must be loaded after initializing GUI and before loading settings from file
load_configuration(false, &gui_data.upper_notebook, &gui_data.settings, &gui_data.text_view_errors, &gui_data.scrolled_window_errors);
// Needs to run when entire GUI is initialized and

View file

@ -74,18 +74,15 @@ fn common_open_function(tree_view: &gtk::TreeView, column_name: i32, column_path
let (selected_rows, tree_model) = selection.selected_rows();
for tree_path in selected_rows.iter().rev() {
let end_path;
let name = tree_model.value(&tree_model.iter(tree_path).unwrap(), column_name).get::<String>().unwrap();
let path = tree_model.value(&tree_model.iter(tree_path).unwrap(), column_path).get::<String>().unwrap();
match opening_mode {
OpenMode::OnlyPath => {
end_path = path;
}
let end_path = match opening_mode {
OpenMode::OnlyPath => path,
OpenMode::PathAndName => {
end_path = format!("{}/{}", path, name);
format!("{}/{}", path, name)
}
}
};
open::that_in_background(&end_path);

View file

@ -264,6 +264,13 @@ pub fn load_configuration(manual_execution: bool, upper_notebook: &GuiUpperNoteb
}
};
let mut short_language: String;
// Load here language, default system language could change value in settings so we don't want to lose this value
{
short_language = get_language_from_combo_box_text(settings.combo_box_settings_language.active_text().unwrap().to_string()).short_text.to_string();
}
// Parsing Data - this are default values
let mut included_directories: Vec<String> = Vec::new();
@ -286,7 +293,6 @@ pub fn load_configuration(manual_execution: bool, upper_notebook: &GuiUpperNoteb
let mut delete_outdated_cache_similar_videos: bool = false;
let mut use_prehash_cache: bool = false;
let mut cache_prehash_minimal_size: u64 = 0;
let mut short_language: String = "en".to_string();
let mut current_type = TypeOfLoadedData::None;
for (line_number, line) in loaded_data.replace("\r\n", "\n").split('\n').enumerate() {