* Unify progress data code
* Do not increment in threads values every time when finding file/folder(works quite good, may works bad with folders with ~several thousands of files)
* Partial changes
* Simplify creating tree_view
* Allow setting thread number in CLI
* Simplified code and add tests with help of copilot
* In prehashing check for user clicks, less often
* Similar audio
* Remove ugly time checking
* Fix using cache
* Fix cache and improve performance of validating items
* Remove cache type - cache should be saved to two different cache files(because )
* Working
* Simple multithreading
* Basic Generalization
* Reference folder and swap cleaning
* Split into multiple files
* Commons, improved GUI message
* Simplifying thread run
* Check was stopped
* Fix checking same files
* Make read single file tag more general
* Remove unnnecessary clone
* Reading tags
* Base
* Search
* Gui Fix
* Gui Fix
* Tooltip
* Update dependencies
* Split functions in big file finder
* Bad Extensions
* Thread handler bad extensions
* Progress handler
* Atomic counter
* All thread handler simplifying
* Simplifying
* More
* Again
* Btreemap simplifying
* Also
* Next
* Common dir
* Simplify music checking
* Similar Images coplexity
* Loading cache
* Hashes
* Split chunked hashes
* Split into multiple parts
* Last similar video piece
* Probably last part
* Cleaned
* Temp
* Add sort button
* Update lofty and gtk-rs
* Fix bug with invalid music tags with reference folders
* Remove try at
* Fix loading of certain directories with disabled loading settings at start
* Change FileChooserDialog to FileChooserNative
* Any
* Copy Clone
* Popover sort basic
* Builder using
* Basic sorting
* Fix not working sorting by size
* Changelog
* Reformat code with idea tool
* Pierwsza działająca wersja tłumaczeń
* Działa? I dobrze, bo ma działać
* Ćma szła i się potkła
* Ściął śmiałek źółty rząd pąków.
* Add static variable for basic notebook data
* Opening, selecting results by space, enter and mouse
* Now hard/symbolic links
* Now deleting
* Now popovers
* Move tests to different function
* Don't crash when there is no selected records
* Button symlinks
* Now move
* Compute results
* Move again
* Again Popovers
* More popovers and more
* Key clicking, removing
* KEY_DELETE
* No more GuiData clone
* Adding directories
* Reorganize a little files
* 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)