1
0
Fork 0
mirror of synced 2024-04-28 09:33:30 +12:00

Move image cache to cache from config dir (#197)

This commit is contained in:
Rafał Mikrut 2021-01-11 09:54:23 +01:00 committed by GitHub
parent 7992ba30de
commit 80bbc9ba85
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 21 deletions

View file

@ -645,21 +645,21 @@ fn get_string_from_similarity(similarity: &Similarity) -> &str {
fn save_hashes_to_file(hashmap: &HashMap<String, FileEntry>, text_messages: &mut Messages) {
if let Some(proj_dirs) = ProjectDirs::from("pl", "Qarmin", "Czkawka") {
// Lin: /home/alice/.config/barapp
// Win: C:\Users\Alice\AppData\Roaming\Foo Corp\Bar App\config
// Mac: /Users/Alice/Library/Application Support/com.Foo-Corp.Bar-App
// Lin: /home/username/.cache/czkawka
// Win: C:\Users\Username\AppData\Local\Qarmin\Czkawka\cache
// Mac: /Users/Username/Library/Caches/pl.Qarmin.Czkawka
let config_dir = PathBuf::from(proj_dirs.config_dir());
if config_dir.exists() {
if !config_dir.is_dir() {
text_messages.messages.push(format!("Config dir {} is a file!", config_dir.display()));
let cache_dir = PathBuf::from(proj_dirs.cache_dir());
if cache_dir.exists() {
if !cache_dir.is_dir() {
text_messages.messages.push(format!("Config dir {} is a file!", cache_dir.display()));
return;
}
} else if fs::create_dir_all(&config_dir).is_err() {
text_messages.messages.push(format!("Cannot create config dir {}", config_dir.display()));
} else if fs::create_dir_all(&cache_dir).is_err() {
text_messages.messages.push(format!("Cannot create config dir {}", cache_dir.display()));
return;
}
let config_file = config_dir.join(CACHE_FILE_NAME);
let config_file = cache_dir.join(CACHE_FILE_NAME);
let file_handler = match OpenOptions::new().truncate(true).write(true).create(true).open(&config_file) {
Ok(t) => t,
Err(_) => {
@ -688,13 +688,26 @@ fn save_hashes_to_file(hashmap: &HashMap<String, FileEntry>, text_messages: &mut
}
fn load_hashes_from_file(text_messages: &mut Messages) -> Option<HashMap<String, FileEntry>> {
if let Some(proj_dirs) = ProjectDirs::from("pl", "Qarmin", "Czkawka") {
let config_dir = PathBuf::from(proj_dirs.config_dir());
let config_file = config_dir.join(CACHE_FILE_NAME);
let mut cache_dir = PathBuf::from(proj_dirs.cache_dir());
let mut config_file = cache_dir.join(CACHE_FILE_NAME);
let file_handler = match OpenOptions::new().read(true).open(&config_file) {
Ok(t) => t,
Err(_) => {
text_messages.messages.push(format!("Cannot find or open cache file {}", config_file.display()));
return None;
// return None; // Enable when removing compatibility section
// Compatibility for upgrading project from 2.1 to 2.2
{
cache_dir = PathBuf::from(proj_dirs.config_dir());
config_file = cache_dir.join(CACHE_FILE_NAME);
match OpenOptions::new().read(true).open(&config_file) {
Ok(t) => t,
Err(_) => {
text_messages.messages.push(format!("Cannot find or open cache file {}", config_file.display()));
return None;
}
}
}
// End of compatibility section to remove after release 2.2 version
}
};

View file

@ -23,9 +23,9 @@ pub fn save_configuration(gui_data: &GuiData, manual_execution: bool) {
return;
}
if let Some(proj_dirs) = ProjectDirs::from("pl", "Qarmin", "Czkawka") {
// Lin: /home/alice/.config/barapp
// Win: C:\Users\Alice\AppData\Roaming\Foo Corp\Bar App\config
// Mac: /Users/Alice/Library/Application Support/com.Foo-Corp.Bar-App
// Lin: /home/username/.config/czkawka
// Win: C:\Users\Username\AppData\Roaming\Qarmin\Czkawka\config
// Mac: /Users/Username/Library/Application Support/pl.Qarmin.Czkawka
let config_dir = proj_dirs.config_dir();
if config_dir.exists() {
@ -166,9 +166,9 @@ pub fn load_configuration(gui_data: &GuiData, manual_execution: bool) {
reset_text_view(&text_view_errors);
if let Some(proj_dirs) = ProjectDirs::from("pl", "Qarmin", "Czkawka") {
// Lin: /home/alice/.config/barapp
// Win: C:\Users\Alice\AppData\Roaming\Foo Corp\Bar App\config
// Mac: /Users/Alice/Library/Application Support/com.Foo-Corp.Bar-App
// Lin: /home/username/.config/czkawka
// Win: C:\Users\Username\AppData\Roaming\Qarmin\Czkawka\config
// Mac: /Users/Username/Library/Application Support/pl.Qarmin.Czkawka
let config_dir = proj_dirs.config_dir();
let config_file = config_dir.join(Path::new(SAVE_FILE_NAME));

View file

@ -130,12 +130,17 @@ For now Czkawka store only 2 files on disk:
- `cache_similar_image.txt` - stores cache data and hashes which may be used later without needing to compute image hash again - DO NOT TRY TO EDIT THIS FILE MANUALLY! - editing this file may cause app crashes.
This files are located in this path
First file is located in this path
Linux - `/home/username/.config/czkawka`
Mac - `/Users/username/Library/Application Support/pl.Qarmin.Czkawka`
Windows - `C:\Users\Alice\AppData\Roaming\Qarmin\Czkawka\config`
Windows - `C:\Users\Username\AppData\Roaming\Qarmin\Czkawka\config`
Second with cache here:
Linux - `/home/username/.cache/czkawka`
Mac - `/Users/Username/Library/Caches/pl.Qarmin.Czkawka`
Windows - `C:\Users\Username\AppData\Local\Qarmin\Czkawka\cache`
## GUI GTK
<img src="https://user-images.githubusercontent.com/41945903/103002387-14d1b800-452f-11eb-967e-9d5905dd6db5.png" width="800" />