Commit Graph

52 Commits (8ad0b907ec35af4c523b6660397655d2a1b6350c)

Author SHA1 Message Date
Rafał Mikrut e3aca69499 Update Image dependency to fix crashes 3 years ago
Rafał Mikrut 7ea0126525 Release 2.4.0 3 years ago
Rafał Mikrut e0b6572f03
Update dependencies (#272) 3 years ago
krzysdz 4c205ce098
Windows taskbar progress support (#264)
* Initial Windows taskbar progress support

* Changes to COM (un)init

It turns out winapi exposes IIDs through a `uuidof()` function of interfaces, so the copied one can be removed.

* Don't return error codes

Now the `TaskbarProgress` functions fail silently.
The `TaskbarProgress` struct now will always be created (even in case of errors in initialisation), but it won't do anything.

* Fix builds for other systems

* Formatted code

* Fix progress shown after the operation finished

A progress update was received after the stop event.
Also `as_ref()` was removed in many places (I don't even know why it was there).

* Remove redundant call to hide

It's already called by the `glib_stop_receiver` receiver.

* Release the ITaskbarList3 and call CoUninitialize at exit

Because objects moved to closures used as fallbacks in GTK have [static lifetimes](https://gtk-rs.org/docs-src/tutorial/closures#closures), the `TaskbarProgress` will never be dropped.
To workaround this problem a `release` function is called when the main window is closed. This function behaves like `drop`, but sets the struct in a valid "empty" state, so that calling `release`/`drop` again won't cause problems.

* Don't set the NORMAL state manually

Because only NOPROGRESS and INDETERMINATE states are used, there is no need to set the NORMAL state when changing the progress value.

Now `set_progress_value` will also change the `TaskbarProgress::current_state` if such situation occurs.

> Unless [SetProgressState](https://docs.microsoft.com/en-us/windows/desktop/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-setprogressstate)
> has set a blocking state (TBPF_ERROR or TBPF_PAUSED) for the window, a call to **SetProgressValue** assumes the TBPF_NORMAL
> state even if it is not explicitly set. A call to **SetProgressValue** overrides and clears the TBPF_INDETERMINATE state.

See the [SetProgressValue documentation](https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-setprogressvalue#how-the-taskbar-button-chooses-the-progress-indicator-for-a-group)
3 years ago
Thomas Andreas Jung 03d41e173f
Keep original file if replacing duplicate with hardlink fails (#253)
If the user could not create a hard link (due to permissions or
different block devices) then czkawka lost the duplicate file.

```
$ mkdir hardlink
$ cd hardlink
$ echo a > a
$ cp a b
$ chown thetestuser:thetestuser a
$ ls -il .

25169246 -rw-rw-r-- 1 thetestuser thetestuser 2 Feb  7 11:18 a
25169641 -rw-rw-r-- 1 thomas      thomas      2 Feb  7 11:18 b

$ cargo run --bin czkawka_cli dup --directories $(pwd) -m 1 -f
test101.result --delete-method HARD

[...]
-------------------------------WARNINGS--------------------------------
Failed to link /home/thomas/Development/czkawka/hardlink/b ->
/home/thomas/Development/czkawka/hardlink/a
---------------------------END OF WARNINGS-----------------------------

$ ls -il .
25169246 -rw-rw-r-- 1 thetestuser thetestuser 2 Feb  7 11:18 a
```

Now czkawka keeps all files and the warning provides more information
why czkawka can't replace the duplicate with a hard link.

```
$ cargo run --bin czkawka_cli dup --directories $(pwd) -m 1 -f
test101.result --delete-method HARD

-------------------------------WARNINGS--------------------------------
Failed to link /home/thomas/Development/czkawka/hardlink/b ->
/home/thomas/Development/czkawka/hardlink/a (Operation not permitted (os
error 1))
---------------------------END OF WARNINGS-----------------------------
[...]

25169246 -rw-rw-r-- 1 thetestuser thetestuser 2 Feb  7 11:18 a
25169641 -rw-rw-r-- 1 thomas      thomas      2 Feb  7 11:18 b
```
3 years ago
Rafał Mikrut 9f3da0e70f
Add support for CRC32 and XXH3 hash (#243) 3 years ago
Rafał Mikrut bb7bf12354 Release 2.3.2 3 years ago
Rafał Mikrut 69090755df Release 2.3.1 3 years ago
Rafał Mikrut 943f8f78f1 Release 2.3.0 3 years ago
Rafał Mikrut cc8d42e0ff
Add support for finding broken zip and audio files (#210) 3 years ago
Rafał Mikrut da4bdd19e2 Release 2.2.0 3 years ago
Rafał Mikrut 4eefe114dd Release 2.1.0 3 years ago
Rafał Mikrut 3f333e7ceb
Add cache support for similar images (#139) 3 years ago
Rafał Mikrut 123bba381f Release 2.0.0 3 years ago
Rafał Mikrut 5d0e784984
Remove orbtk frontend (#119) 3 years ago
Rafał Mikrut f29e63d049
Add Image preview to similar images (#118) 4 years ago
Rafał Mikrut f0f3073f94 Release version 1.5.1 4 years ago
Rafał Mikrut 6fab1a9368
Add option to save file, store settings and load them (#108) 4 years ago
Rafał Mikrut e6a6e5567b Release 1.5.0 4 years ago
Rafał Mikrut 7ac4a26229
Add progress bar (#106) 4 years ago
Rafał Mikrut c62617df30 Release 1.4.0 4 years ago
Rafał Mikrut 2f72dd9d19
Add multithread support to similar image finder (#98) 4 years ago
Rafał Mikrut 1fb66b32f0 Release version 1.3.0 4 years ago
Rafał Mikrut ecebb3a1af
Implement finding duplicated music by tags/artist/year etc. (#95) 4 years ago
Rafał Mikrut 2326072222 Release version 1.2.1 4 years ago
Syfaro a55fe3de9a
Make image similarity search significantly faster. (#72) 4 years ago
Rafał Mikrut d2c7398bdd Release version 1.2.0 4 years ago
Rafał Mikrut 3dd203f246
Add support for finding similar images to CLI (#66) 4 years ago
Rafał Mikrut 67a775beff Release version 1.1 4 years ago
Rafał Mikrut 8bbb12c7d4
Add ability to stop task from GUI (#55) 4 years ago
Rafał Mikrut 71353823e7 Update version to 1.0.1 4 years ago
Meir Klemfner e4af905078
Changed to StructOpt for CLI argument parser. (#37)
Changed to StructOpt for CLI argument parser.
4 years ago
Rafał Mikrut 8d824036b2 Release 1.0.0 version 4 years ago
Rafał Mikrut 4e4ce0c752 Bump version to 0.14 4 years ago
Rafał Mikrut d34100461e Bump version to 0.1.4 dev 4 years ago
Rafał Mikrut 3cff32c031 Bump to 0.1.3 dev version 4 years ago
Rafał Mikrut 063b5e0918 Bump version to 0.1.2 dev 4 years ago
Rafał Mikrut b1426d7f95 Added basic printing results in tree_view 4 years ago
Rafał Mikrut 2c008b874b Update packages 4 years ago
Rafał Mikrut 815acbdf94 Don't use git version because every single compilation is git checking for a new version 4 years ago
Rafał Mikrut dca4ed5c4c Fixes bug with close button in orbtk 4 years ago
Rafał Mikrut 806ee94566 Update dependiencies to try fix close button fixes orbtk 4 years ago
Rafał Mikrut 7dd96aceff Update Orbtk 4 years ago
Rafał Mikrut 843ce17107 Update version to 0.1.1 4 years ago
Rafał Mikrut 0f67b56848 Add to misc basic idea folder(2020.2) 4 years ago
Rafał Mikrut 9013f447f0 Start creating basic Orbtk GUI 4 years ago
Rafał Mikrut 1ccaa91129 Better explanation, starting working with GUI 4 years ago
Rafał Mikrut 9d4de08ece Use different modules for library and GUI and CLI apps 4 years ago
Rafał Mikrut f9fa7d3879 Removed not using packages, added better menu 4 years ago
Rafał Mikrut 10642548f9 Beginning of adding allowed extension support. 4 years ago