windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v395/Hydrus.Network.395.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v395/Hydrus.Network.395.-.Windows.-.Installer.exe
macOS
app: https://github.com/hydrusnetwork/hydrus/releases/download/v395/Hydrus.Network.395.-.macOS.-.App.dmg
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v395/Hydrus.Network.395.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v395.tar.gz
I had a good work week. I fixed a variety of bugs, improved the feel of the suggested tags columns, and made zooming in the media viewer nicer.
suggested tags quality of life
I recently did some work on the different 'suggested tags' panels the manage tags dialog can support. This week I worked on some of the feedback from that pass, hopefully making it a bit easier to get what you want done. As a reminder, you can set these columns up under options->tag suggestions.
The columns are now 'synced' with the current media. They all refresh/repopulate reliably when you move to another media in the media viewer. Also, all columns now hide tags that all the selected media already have, and they update this ~as you edit~, so if both 'favourites' and 'related' suggest 'character:samus aran', and you add that through any means, both lists will remove that tag! Furthermore, if you remove a tag that one of those lists would show, they now re-show that tag instantly, without having to do any new lookup.
Furthermore, the tag lists now try to retain the selection location when you add a tag through the keyboard enter key, so even though a tag you hit enter on will disappear, the focus should stay on the tag above or below. I hope this makes it easier to work with these columns with just the keyboard. As a second remind to keyboard users, you can currently set up some slightly mickey-mouse shortcuts to move focus around here under the 'main_gui' shortcuts, the actions starting 'show_and_focus_manage_tags_…'.
zoom center
When you zoom a file in or out, there is a 'centerpoint' about which the zoom happens. This position 'stays still', while everything else grows or shrinks around it. Until now, this has been hardcoded on the media center, which was sometimes unhelpful when the media had been panned. This centerpoint is now customisable under options->media. It now defaults to the media window centerpoint, which means the image will always grow and shrink around the center of what you are looking at. This makes it much nicer to pan and zoom in the duplicate filter. You can change it back to the media centerpoint, the media top-left corner, or even the current mouse cursor position, for RTS-vidya-like zooming.
fixes
'character:aran' matches 'character:samus aran' again in the Windows build (or anything else running python 3.7). It was a regex library version issue.
The hover windows in the media viewer are now aware of the new shortcuts system in Qt and should pass uncaught regular keyboard shortcuts up to the media viewer. So, if you click the top-right hover to set a rating or the center-right duplicates hover to do a skip, you should now be able to hit custom keyboard shortcuts to add tags or set ratings and so on without having to click back on the media viewer. Where this will not happen are simple things like the taglist on the left eating up/down arrow keys to do list navigation and a handful of Qt-hardcoded shortcuts like tab and space, which can intercept and do panel navigation and currently-focused-button pressing.
If your mouse has back and forward buttons, these should now be caught by the shortcuts system, for those shortcut sets that can currently do mouse events. I assume there is no such thing as a double back-click, but let's see what happens!
The client now tries to avoid large analyze and vacuum database maintenance jobs in the normal maintenance cycle. Too many users in unusual situations have been hit by unreasonably big jobs here, and the benefit is not worth it.
Dialog messages that intercept ok and cancel events, the 'hey, are you sure you want to cancel, there is some uncommitted stuff, yes/no' sort of thing, now have improved logic. They fire off in better order and shouldn't ever bother you twice in one action.
deleted tags overwrite
This is an important bug fix, but it is technical and not a priority for non-advanced users for now.
Some users recently reported some unusual deleted mappings counts on the PTR, not matching that of other users. I also had a job to check that deleted tags were being filtered correctly out of local tag domains, so I went into it this week. To my mild horror, I realised that deleted tags were not being filtered out of tag parsing at all, so any time files were being re-parsed, any previously deleted tags were being overwritten. In the case of tag repositories, deleted tags were still being discarded at the server level (and hence not overwritten for other users), but the overwrite was happening to the local client that did the 'late' reparsing.
I regret this oversight, and I am sorry for the transactions of inconvenience and difficulty this has likely caused, even without us ever realising directly what was going on. The issue is unusual, with numerous technical caveats that make it apply to different users in different ways, but I believe it has not hit most users too much. It is also retroactively fixable for tag repositories.
The parsing is now fixed. Tag import options will now filter out the currently deleted tags from their importee file's parsed tags. If you wish, you can force an overwrite using the tag import options cog menus. Hard drive imports and tag migrations continue to overwrite deleted tags, as these are still considered 'human, manual' actions that can take responsibility for overwriting a deleted tag.
For tag repositories, particularly the PTR, a 'reprocess content' run will fix the historical record, re-deleting things that should be deleted. Advanced users can do this now from the review services panel if they wish. This is an expensive job, so I have not queued it up automatically in today's update. I think I will write a separate targeted maintenance routine for it in the coming weeks.
full list
- some more suggested tags fixes/qol:
- favourite tags now correctly refreshes on new media
- the tag suggestion lists in manage tags now discard current and pending tags that _all_ the current media already have, and all tag suggestion lists update this filter any time the media gets a tag content update! they _should_ update live now
- all tag and predicate taglists now try to move the selection to a 'nice' neigbour when a keyboard enter activation results in the current selection being removed (e.g. as in these tag suggestion lists). the nice selection should be the tag after, before, or at the top of the list, and should make it nicer to keep navigating the list and add tags with your keyboard
- all tag and predicate taglists now try to preserve selection on simple clear-and-set data refreshes
- .
- deleted tags overwrite update:
- due to an unfortunate oversight, until now tag parsing has not filtered out previously deleted tags from the tags it parses and sends to the local database
- as the majority of downloaded files are parsed once per site per user and in a similar time window before manual editing ever occurs, and most non-tag-sibling-eligible bad tags are site specific or not parsed to begin with, and as these undesired tags were not broadcast up to the tag repository, this problem has not been very obvious and I believe has not affected most users too much. this is however a reason why some users who have more recently downloaded many older files are seeing smaller 'deleted mappings' counts on their ptr review panel (and some low quality tags in their db), as they have been re-adding previously deleted tags to their local store
- this has been fixed. tag import options now load the pending importee file's metadata before tags are filtered and discard currently deleted tags from those to be added or pended. this applies to parsed tags, additional tags, and those tags added through special other means, such as from a parent gallery page.
- if you do wish to allow parsed or additional tags to overwrite currently deleted tags for a particular job, the cog icons on the edit tag import options panel now allow you to permit overwrite for either
- tags added via hard drive imports or the migrate tags tool still overwrite deleted tags as before
- as this is a local-only problem, there is thankfully a retroactive fix for this issue for tag repository domains, involving a content reprocess run to re-apply deleted tags. I am not activating this automatically this week as this is a heavy job for the ptr and I need to study the true fallout of the problem more, but I may in future, likely as a smaller and more targeted maintenance job. advanced users can do it now under the ptr's review services panel
- I regret missing this, and I am sorry for any inconvenience. I only discovered it through the serendipity of some users recently reporting unusual deleted counts and a personal item in my todo to check the reliability of deleted mapping filtering for local tag domains–turns out it never got added, and we never specifically noticed, fugg
- there are now unit tests for the improved tag filtering pipeline and both of these new overwrite options
- .
- the rest:
- hydrus can now use several different zoom 'centerpoints' about which to expand and shrink a zooming file. this was previously hardcoded to the center of the media. under options->media, you can now set it to be the media window center (the new default, which feels much nicer after a pan), the mouse cursor, the old media center, or the media top-left corner
- cleaned up the related zoom positioning code, and removed the jarring old re-centering off-screen rescue hack when zooming out to canvas zoom
- added a warning about big zooms to the media options page
- fixed tag autocomplete filtering in python 3.7 so 'character:aran' matches 'character:samus aran' again
- when the hover windows on a media viewer have focus, they _should_ now pass up all options->shortcuts shortcuts to the media viewer
- mouse back/forward buttons _should_ now be supported in the shortcuts system, as much as your OS allows them to work like regular clicks
- fixed a rare crash with the 'clear trash' button
- the client will now not re-analyze tables that have been previously scanned with at least 100k rows in the normal 'soft' maintenance cycle, as this is an expensive operation with limited benefit
- the client will now not vacuum database files greater than 1GB in the normal 'soft' maintenance cycle, as this is an expensive operation with limited benefit
- the new 'cannot vacuum because xxxx' log entry is now only ever printed once per boot. however due to the above change, it likely won't appear in the normal maintenance cycle anyway now
- cleaned up some vacuum code
- reworked the panel system to better test data validity vs 'woah, you sure you want to do this?' tests and generally cleaned and simplified the canok/cancancel/isvalid testing logic for all panels. panels like manage siblings will now not produce two message boxes if you try to ok them on an uncommited pair and then back out of the ok
- refactored the top level window code and improved scrollable panel code typing
- more standalone gui function code refactoring
- fixed a click-selection-test bug when clicking on certain whitespace in certain predicate lists
- the text of the cloudflare-specific error when encountering a captcha page is improved
- cleaned up some tag list menu copy and select code, both the menu labels and the copy action, for unusual tags. the 'copyable tags' fetching code is now flexible and unified for menu and action
- cleaned up the taglist sibling copy code, eliminating the chance of dupes
- fixed a _little_ of the wording on the discard/exclude tag list menu labels for negated predicates, it still feels a bit awkward and I will keep working here
- cleaned up some old media metadata fetching code
- misc import code typing
- misc list/iterable typing improvements
- added some misc media-tag tool code
- unified the tag import options tag filtering pipeline somewhat to deal with the deleted overwrite situation
- improved a debug ui test to no longer need window focus
- misc help cleanup
next week
Next week is a 'medium-sized' jobs week. I would like to finally get to an expansion of the prototype 'file notes' system. I would ideally like multiple named notes, note parsing support (so you can pull an artist comment from a web page), note preview on the media viewer background, and note import/export. This is a ton of work, so I don't expect to get it all done in one week.