Commit Graph

27 Commits (20c89f44f06f483cb44f32bb5ec2f674a5b8e27f)

Author SHA1 Message Date
Rafał Mikrut 20c89f44f0
Adds support for multiple hashes type and size in similar images, resize formats and also test to check performacne (#447) 3 years ago
Rafał Mikrut cd258c67ab
Re-enable hardlink on windows (#410) 3 years ago
Rafał Mikrut 581e8cf83f
Fix sym/hard linking files (#409)
Enable symlinks on Windows
3 years ago
Rafał Mikrut 0e9b8a1651
Use GtkScale instead radio buttons for similarity (#397)
* Use GtkScale instead radio buttons for similarity

* Fixes
3 years ago
Rafał Mikrut bb2fea2b92
Select things by checkbox (#392) 3 years ago
Rafał Mikrut b5f8d6b028
Update to gtk-rs 0.14 (#383)
* Update to Gtk-rs 0.14
3 years ago
Rafał Mikrut 72224db7f6
Fix a little unsorted results (#304) 3 years ago
Rafał Mikrut 50ad3f9873
Update to Rust 1.5.1 (#302) 3 years ago
Rafał Mikrut 13add1cbed
Add hardlinking support for GUI (#276) 3 years ago
Rafał Mikrut 35c47b3230
Add new settings window (#262) 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
Rafał Mikrut 2c2004b316
Change progress dialog to progress window (#229) 3 years ago
Rafał Mikrut 0c10a6a0ba
Sort Results by path where it is possible (#211) 3 years ago
Rafał Mikrut eeaaea20cc
Add broken files support (#202) 3 years ago
Rafał Mikrut ff85453394
Split Gui code into multiple files (#194) 4 years ago
Rafał Mikrut 683e0f9117
Use directly TreeView instead ScrolledWindow->TreeView (#190) 4 years ago
Rafał Mikrut 30bab75a5d
Modernize notebook handling (#189) 4 years ago
Rafał Mikrut d84722aa51
Modernize popovers code and simplify later changes (#137) 4 years ago
Rafał Mikrut 7c3b9681b1
Split symlink path to two path and file name (#127) 4 years ago
Rafał Mikrut 1d59199bb2
Add support for checking for invalid symlinks (#124) 4 years ago
Rafał Mikrut 4a33ff7d86
Add support for symbolic links (#123) 4 years ago
Rafał Mikrut 6d5ab1d98c
Removed unused stop, resume and pause buttons (#107) 4 years ago
Rafał Mikrut 7ac4a26229
Add progress bar (#106) 4 years ago
Rafał Mikrut 88d47e49cf
Add select for all modes (#102) 4 years ago
Rafał Mikrut 110d6015bc
Similar images improvements: (#97)
Headers without data
By default only checking for High Similarity(faster search)
4 years ago
Rafał Mikrut ecebb3a1af
Implement finding duplicated music by tags/artist/year etc. (#95) 4 years ago
Rafał Mikrut 4429df2861
Refactore GUI into multiple files (#89) 4 years ago