github hydrusnetwork/hydrus v551
Version 551

latest releases: v590, v589, v588...
10 months ago

misc

  • thanks to a user, we have a new checkbox under options->thumbnails that disables thumbnail fading. they'll just blink into place in one frame as soon as ready
  • after looking at this code myself, I gave it a full clean. the actual thumbnail fade animation is now handled with some proper objects rather than a scatter of variables passed around
  • I also doubled the default fade time to 500ms. I expect I'll add an option for it, especially if we rework all this into the proper Qt animation engine and get it performing better
  • fixed the crashes users on PyQt were seeing! I made one tiny change (1->1.0) last week, and PyQt didn't like it, so any view of Mr Bones or 'open externally' panels, or the media viewer top-right ratings hover was leading to program instability
  • the system predicates for 'has/no duration', 'has/no frames', 'has/no notes', 'has/no words' (i.e. the respective 'num x' system pred, but either = 0 or >0) are now aware that they are each others' inverse, so if you ctrl+double-click or do similar edit actions, they'll flip
  • updated the 'PTR for dummies' page to link to a new QuickSync source, kindly maintained and hosted by a user

code cleanup and misc bug fixes

  • sped up some random iteration across the program (e.g. when deciding which order to waterfall thumbnails in, which can suffer from overhead if you do a fast giganto-scroll)
  • cleaned up the code that does image alpha channel (transparency) detection, comparison, and stripping
  • unified how the variety of image loads and conversions perform the 'strip this image of useless transparency data' normalisation step. thumbnails from krita, svg, and pdf are now stripped of useless alpha. also, all 'import this serialised object png' avenues now handle pngs with spurious alpha
  • I think I fixed the alpha channel stripping code to handle 'LA' (greyscale with transparency) files. if you try to import a hydrus serialised object png file that is for some crazy reason now LA, I think it'll work!
  • when a files popup message filters its current files and the count goes to 0 (happens if you re-click the button after deleting everything it has to show), the message now auto-dismisses itself (previously it was nuking the button but staying as a thin strip of null panel space)
  • fixed a bug where system:date predicates were displaying labels an hour off (usually midnight -> 11pm, thus cycling back to the previous day) thanks to the clocks changed (in the USA) last weekend. I suspect there is more of this, here and there, so let me know what you see
  • fixed a counting typo error with the delete files code when you delete the last file in a domain but the domain thinks it already has 0 files
  • fixed up similar code across the database to forestall future typos on SQLite SUMs
  • improved and unified the 'hydrus temp dir' management code. if the specific per-process hydrus temp dir is cleared out by an external factor (I'm guessing just the OS cleaning up during a long running client session), hydrus should just simply make a new folder as needed. with luck, this will fix a problem with drag and drop export that ran into this
  • fingers crossed (I have little idea what I am doing and no convenient test platform!), the Docker build of the client will now have PDF and Charts support

many file move/copy error handling improvements

  • tl;dr: if hydrus can't put a file somewhere, it deals with that better now
  • improved how file move/merge function reports its errors, and how all its callers handle them
  • the 'rename a file's file extension when its filetype changes' job now correctly recognises when it fails to rename a file due to a reason other than the file being currently in use
  • import folders now correctly detect when they fail to 'move' action a file out after processing
  • the check file integrity routine now correctly detects when it fails to move a damaged file from file storage to a landing zone in the main db directory. this failure now cancels the job properly and prints a nicer error to the log
  • improved how the file copy/mirror function reports its errors, and how all its callers handle them
  • saving a serialised object png now properly catches a 'transfer from temp dir to dest location' move error
  • the internal database backup and restore routines now detect file copy errors better
  • a drag and drop export operation that wants to put the files in the temp dir and also fails to collect its files nicely now correctly raises an error
  • failing to set the mpv file on options save (and the subsequent mpv-load action) now reports its error correctly
  • exporting update files now handles a missing update file more gracefully
  • mergedirectory and mirrordirectory now fail instantly after any single error, rather than several
  • added some more file/directory pre-checks to all the merge/mirror functions
  • deleted some old unused code here

client api

  • thanks to a user, the Client API now has a 'generate_hashes' endpoint that returns the sha256 hash (and pixel hash and perceptual hashes of any appropriate image file) of any file you give it
  • the client api version is now 55

Don't miss a new hydrus release

NewReleases is sending notifications on new releases.