Work shouldn't be done in the GUI thread
Linux, Windows and Apple Mac File Hashing GUI Tool
Brought to you by:
tedtechnology
The workload of hashing shouldn't be done in the GUI thread. That is bad bad bad bad bad bad design. How to reproduce what I mean: Hash a folder with multiple big files. First it looks like the app is hanging, then you get the first status update and see a step forward.
Better use a worker process (also you can better implement nice GUI info while scrubbing the data)...
Also I see that the progress bar is (for the FilesS part at least) doing the percentage "Complete" on the basis of the filecount, NOT the size of the file. Confusing thing if you have one big fat file at the end of the directory... you get stuck at 99% forever without any response from the GUI...
To say that an open-source project that has been given away in the spirit of sharing is "bad bad bad bad bad bad designed" is not very polite.
It may be bad bad bad bad bad bad designed to someone who knows how to write multi-threaded applications, but I don't. Creating worker processes and assigning threads is quite difficult as far I can tell. I've looked at it several times over the years and always abondoned hope. So although I agree that in an ideal world the hashing would be done in a seperate thread to what the GUI uses, the reality is I have done the best with what I currently know as a programmer. And so with that in mind, it is well designed, because it does what I wanted it to do given my skill set.
As for the percentage measurement - there's two ways to measure progress. File count, or file size. I chose file count because, as you have already identified, to use file size means knowing exactly how far through a file Quickhash has got for every file in order to measure progress, which without multiple threads is also harder to do, without writing several seperate additional functions at least.
If you are able to code which I assume you can, feel free to fork the GitHub code and submit a change to facilitate multi threading. https://github.com/tedsmith/quickhash Until then, ticket closed.
Last edit: TEDs TECH 2016-08-25