github hydrusnetwork/hydrus v666
☠⛤ Version 666 ⛤☠

2 hours ago

misc

  • when you create a new subscription with 'add' button, it now asks you for the downloader up-front. this was easy to forget to set, previously; now you can't miss it
  • the problem where media could sometimes not receive any content updates (rating changes, new tags, archive state, whatever) after a backup, lock, vacuum, or certain database transaction error recovery until a page was refreshed is fixed. a cache that the in-session pages refer to was held by a database module being reinitialised through these processes and thus, after cache reset, the connection to send the update signal on media changes wasn't getting through to UI
  • added ^(?!...$).+$ to the regex input menu's quick selections for 'anything except this exact phrase'. I have to search stackexchange to figure this out every time I need it; now it is just there. also fixed a formatting typo in this menu for the 'any of these' entry

media players

  • improved the guard around the QtMultimedia module for those Qts where it is not available or otherwise fails to import
  • if your options say to show something with QtMediaPlayer but the module isn't available, it now falls back to an 'open externally' button and does a little popup; the same handling for missing mpv
  • improved the popup text when you boot help->about with an unusual module load error to report
  • rejiggered the help->about 'Optional Libraries' list a little and moved mpv over there
  • added another mpv 'null' audio error text, 'Could not open device', to our new cascade of 'calm down, but set the null audio device now' error handling
  • added a KDE and QtMediaPlayer note to the 'installing - linux' help. installing mit-krb5 may help

qss

  • the e621, e621_redux, and Paper_Dark qss stylesheets get 'built_release' alternates to handle the new 'lib' directory structure of the built release
  • updated the guidance on external asset paths in options->style

import options test panel

  • booting the options dialog in 'advanced mode' now adds a 'PREVIEW: import options' panel. this is the new central place that we'll be customising import options after my rewrite here is done
  • this panel saves nothing; it is only for playing around with. it takes your current settings and migrates them to the new system as the expected pending migration will
  • I am happy with the technical side of things here, but this thing is complicated and I would like to throw advanced users in the deep end and get feedback on where the roughest parts are. I'll sand down the roughest corners with better UI and consider it all as I revise the help docs
  • april fools this year is yet more hellish UI from hydev

removing the default downloaders

  • a fresh hydrus client database no longer starts with any downloader definitions! I am cleaning some legacy things and making the program more neutral from the start. users will now add whichever downloaders they want from third-party sources like the user-run downloader repo. not an april fools--sorry for the trouble!
  • existing users keep what they have; this only affects new installs
  • this also frees me from the maintenance burden, which I was failing at. several of the defaults were breaking and I was not keeping up with the issues
  • so, the defaults are removed from the static dir and there are no 'add from defaults' buttons in the edit panels. the UI now supports and starts with a 'null' state of 'no downloader selected' everywhere
  • users without any downloaders are pointed to the network->downloaders menu and the user-run repository
  • I updated the help documentation all over regarding this change. it may need a revisit to make new-user onboarding smoother

import options boring work

  • added a 'paste-fill' paste type to the options panel, for filling in gaps without overwriting
  • wrote paste buttons for individual options panels and the import options container panel
  • wrote copy buttons for the container panel
  • fleshed out the valueChanged signals for all the new options panels: prefetch; file filtering; tag filtering; locations; tags; notes; presentation
  • wrote a favourites button and adjusted the UI to handle it in the appropriate locations
  • wrote some basic default favourites
  • polished the UI, swapping to icon buttons, bunch of stuff
  • fixed some little logic and label bugs in the new import options stuff

little stuff and cleanup

  • the little ▲/▼ button you see across the program on static boxes and the popup toaster now uses a special shared class that uses nicer Qt tech to signal things and sets two new object names for QSS devs to hook into: HydrusCollapseArrowCollapsed and HydrusCollapseArrowExpanded. note that these guys use reversed labels depending on whether they expand up or down (I just realised this, working on it now), so if you want to put a new label or icon in, I think we might want to do some more here. let me know how it goes
  • I think I fixed an issue where the 'hey your page is super mega tall, careful' message was showing more than once if the session includes multiple pages in this state
  • updated some new async ui code, the stuff that does new unified callBack/errBack panel restoration after job reset, so that it better handles the error of its parent window being closed early, and a program shutdown call. this was causing some harmless error spam in some things like a delayed subscription popup files button press/dismiss
  • fixed a stupid error in the updated Linux .desktop file deployment script that broke the Icon with quotes around the path
  • made the various widgets, options, and importers ok with having no downloaders available. the first time a GUG comes in via the drag and drop system, it is set as the default
  • amidst the downloader work, cleaned up how subscriptions do some edit panel Set stuff, removing some legacy jank
  • fixed up an old hardcoded 'downloader updated' callable with a nicer Qt Signal
  • improved the error messages around invalid/missing/null GUGs at different stages
  • I also removed some legacy downloader db update code that would have fallen to bitrot here
  • fixed a couple finally/return syntax issues
  • 'manage login scripts' now has some red text up top warning that it is an ancient system that does not work well
  • updated the 'adding new downloaders' help to be more clear about what is going on with the png files. it now has an example png for artbooru.com
  • updated a bunch of ancient screenshots in the help, particularly the parsing system
  • fixed duplicated 'index to fetch' label in html parsing formula panel
  • replaced some whackadoodle ListBook fixed sizing with a proper sizeHint and some live rowheight checking and framewidth correction
  • cleaned up some subscription unit tests
  • the media result cache is now a singleton instance that persists through a database restart, and the unit tests now do some careful clearing on test database resetting here
  • fixed a missing definition typo in the filetype labels

Don't miss a new hydrus release

NewReleases is sending notifications on new releases.