windows
zip: https://github.com/hydrusnetwork/hydrus/releases/download/v384/Hydrus.Network.384.-.Windows.-.Extract.only.zip
exe: https://github.com/hydrusnetwork/hydrus/releases/download/v384/Hydrus.Network.384.-.Windows.-.Installer.exe
macOS
app: https://github.com/hydrusnetwork/hydrus/releases/download/v384/Hydrus.Network.384.-.macOS.-.App.dmg
linux
tar.gz: https://github.com/hydrusnetwork/hydrus/releases/download/v384/Hydrus.Network.384.-.Linux.-.Executable.tar.gz
source
tar.gz: https://github.com/hydrusnetwork/hydrus/archive/v384.tar.gz
I had a great week updating the shortcuts system.
shortcuts
The 'new' shortcuts system has been in limbo for some time. I like it, but I never really 'finished' it, and there were still many places across the program that had hardcoded shortcuts. This week moves it forward, mostly for mouse clicks and the new mpv window. As a reminder, you can customise the system under file->shortcuts. There are multiple shortcut 'sets' that apply in different parts of the UI.
First of all, the shortcut edit UI has been rearranged so it is less of a mess. Instead of having all possible commands on the same window, you now select which one you want from a dropdown, and unnecessary widgets will be hidden. Also, the main dialog now lets you restore a shortcut set to default values.
Although mouse support remains limited, the windows that take mouse clicks can now catch more. Double-clicks are now recognised, and if you prefer the feel of a click up instead of down on certain actions, you can now differentiate between click 'press' and 'release'.
Next, the actual 'media windows' across the program, the image, animation, or mpv windows, are now plugged in to the shortcuts system. For now, this mostly means clicks. Left-clicking to pause/play is no longer hardcoded, and I have removed the default 'double-click -> open in an external program' (although you can add it back in as ctrl+double left-click or whatever you like) as this command is less important with mpv's audio and fast high-res scaling. There are two new shortcut sets–'media_viewer_media_window' and 'preview_media_window'–that have actions for pause, pause/play, open_externally, and close/launch_media_viewer. By default, middle-click or double left-click on the preview media window now launches the media viewer, just like on a thumbnail.
And the 'media_viewer_browser' set now has 'show_menu' as an action. It defaults to 'release right-click', but if you would prefer your menus on a click-press, or ctrl+release right-click or something, you can now change it. I expect to do this for the other important menus across the program as well. Also, most menus can now be opened with the context menu key on your keyboard, if you have it, so you might want to even remap right-click to something else.
The new 'global' shortcut set now has actions to exit and restart the application. They should be caught by the main gui window or any media viewer and work just like the actions on the file menu.
Most of the work this week was cleaning up behind the scenes code. I feel great about now extending it to more windows (such as thumbnails, to customise selection click shortcuts) and commands, and eventually planning advanced features like multi-actions so you can build pseudo-filters where a left-click is 'apply this tag, archive, and move to next file'. For now, I hope to slip in little bits of work here and there.
EDIT: A user let me know that the new double-click detection makes the archive/delete filter not work if you click too fast (it now detects the second click as different than a single-click and hence doesn’t map the ‘keep and move on’ etc.. action). I will fix this for next week, but in the meantime, if you are a fast clicker, please add additional shortcut mappings to ‘archive_delete_filter’ for double-click, and you should be working again.
the rest
I cleaned up some of the borked media-switching code I introduced to get mpv working. Transitioning from one media to another should have fewer instances of single-frame stretch. I am going to keep working here, because in some situations there is a single-frame of blank, which can be a bit of a flash.
The tag autocomplete dropdown window should be better at choosing when to hide and show.
I fixed a bug related to the advanced 'clear deleted tag record' command, which is usually fired by the tag migration window. The action was not properly clearing the cache that thumbnails use to fetch their tags, so while the deleted tag was deleted from the master database table, it did not appear so in UI. If you were hit by this, please run database->regenerate->autocomplete caches one time to resync yourself.
If you are a user who uses the parsing system, the string transformation panel has had a significant rework in the past two weeks. It hides/shows unneeded controls just like this week's shortcuts panel, and there is now a live preview of the current step's example and example-transformed text in the individual transformation rule edit dialog, which updates as you type, including showing regex errors! I expect in the near future to add the string transformation system to the filename tag panel soon, swapping out the jank old regex systems there for the nice full-featured converter.
full list
- shortcuts:
- the shortcut system now supports mouse double-clicks–left, right, or middle
- the shortcuts system now differentiates between press or release single mouse clicks–although complete support for release mouse events may be a bit patchy, as full mouse integration is ongoing
- the shortcut edit ui is now simpler–the command type is selected by a list, and the individual command sub-panels hide and show as appropriate–no more stupid 'set command' buttons
- the shortcut edit ui now has a 'restore defaults' button that will restore an individual set back to default settings
- two new shortcut sets are added–'media_viewer_media_window' and 'preview_media_window'. they control pause, pause/play, open_externally, and close/launch_media_viewer respectively. they work on the static image viewer, the native animation widget, and the new mpv player, and they support mouse clicks. the old pause/play (formerly left-click) and open_externally (double left-click) commands are no longer hardcoded
- by default, the preview window's media window now launches the media viewer on a middle- or double-left-click
- 'media_viewer_browser' shortcut set now has 'release right-click' bound to 'show_menu', a new command, which is no longer hardcoded
- most menus across the program can now be opened with the keyboard context menu key
- the 'global' shortcut set now has 'exit_application', 'exit_application_force_maintenance', and 'restart_application' commands
- fixed the rating increment/decrement command option not hiding in non-'media' shortcut sets
- fixed some issues loading edit ui for shortcuts with rating actions
- significant refactoring and some cleaning of shortcut code
- .
- the rest:
- mpv windows should not longer get a single frame of previous-window-stretch when flicking between one mpv media to another with a different aspect ratio on the same media canvas. when a video is caught in a frame of loading, it should now flicker a frame of black
- switching from one static image or native animation to another of the same type _should_ be less likely to do a single frame of stretch when transitioning. when an image or animation transition is caught on a new frame, it _should_ now flicker a frame the same colour as the media canvas background
- the string transformation edit panel's individual transformation rule edit panel has had some more work: much like with shortcuts, the controls now hide and show based on transformation type, the controls' text labels now change based on transformation type, and the example text now updates on any widget change. the manual 'update example' button is removed
- fixed a typo that caused an error when establishing the correct mouse cursor to use over the volume control when hydrus was using PyQt5 (rather than PySide2)
- in order to reduce accidental micro-drags that cause mpv load-pause issues, starting a thumbnail drag now takes more pixels and requires a smoother drag to start, let's see how it goes
- improved the show/hide logic of the floating autocomplete dropdown window. it should now also reliably detect when window focus goes from the dropdown itself to another window
- fixed a bug where clearing the deletion record of a deleted tag would not remove the record from the fast cache that populates thumbnail tags (making it seem on most file loads that the tag still existed). if you were hit by this previously, please hit _database->regen->a/c cache_ one time to resync the cache
- relatedly, thumbnails should now correctly live-update their deleted tags on deletion record clearance updates
- if mpv is not available, opening the about window will now make a popup with the actual import error trace
- significant refactoring of various ui code
next week
Next week is a 'small jobs' week. I have plenty to be getting on with, so I will just try to mix it up with a variety of fixing and improving work. I'd like to push on some more mpv issues like slideshow and custom .conf support in particular.