- qt:
- disabled the failed legacy high dpi scaling mode experiment (which was scaling up thumbnails and media in an ugly way) and returned to font-size-based natural ui scaling as set by the OS. a couple of non-font things like bitmap buttons and various layout margins are too small on >100% UI scale, and the splash screen is borked again, but it looks clear again. I'll keep working on this
- fixed the custom taglist at >100% UI scale, which was spacing its tags at the wrong text height. this should survive changing ui scale while the program is open and environments with multiple monitors at different ui scale
- re-fixed a critical old media-viewer-close-on-video memory leak from wx code to qt code. this was also a cause for some child ffmpeg processes not being terminated
- fixed the media viewer not redrawing correctly when the media size completely exceeds the canvas window size
- fixed the loading of the shortcut edit panel when the shortcut set a tag
- fixed some url class edit path component ui
- fixed and cleaned up some 'safe window size/position' calculations that were missing out the total frame geometry, meaning some dialogs were not moving up and left enough to show entirely on screen, and dialogs with parent-dimension gravity were not calculating initial size accurately
- fixed focusing on the already-open manage tags text input when you hit 'manage tags' on a canvas with a manage tags dialog already open
- fixed the html formula rule edit ui actually rendering html tag labels, lmao
- updated boot-password entry to use the normal hydrus text entry dialog, and fixed a hydrus password cancel not setting a 'clean' exit for the next boot
- fixed page layout splitter sash positions not resetting nicely from the menu command
- fixed keyboard delete in the manage urls dialog
- popup message titles are now in bold
- popup message titles should now multiline correctly and fill available width
- the popup messages manager should now set its min/fixed width more sensibly
- subscription popups now will be wider if space is available
- wrote a new class to manage better asynchronous updates for future Qt ui presentation
- the file, pages, and pending menubar menus, which all require a db hit to generate, now operate on this new update class. all three should update faster when able and more politely and smoothly wait when the db is busy
- reduced some accidental blocking in an old ui-update routine that kicked in when it was running hard
- if the media_viewer frame type is set not to remember its 'last size', it will now instantiate with a small min size
- when pasting new queries into a sub, if there are more than 5 or 50 that are already in or new, they will be rendered in a more compact way in order to stop the notification dialog growing too tall
- improved stability of page update, splash screen update, and perhaps pubsub update
- .
- new file maintenance jobs:
- added a new 'check for missing files' file maintenance job, where if the file is missing and has urls, those urls will be queued up in a new url downloader for redownload. the file record is not removed, preserving archive/inbox and import time
- added a new 'check for invalid files' file maintenance job that does the same deal as above with an additional expensive byte-for-byte content check if the file is not missing
- added a new 'check for invalid files' file maintenance job that only cares about invalidity--if the file is present and invalid, it is moved out but the file record is not removed
- .
- the rest:
- network jobs that receive low-bandwidth error codes from the server now use a separate wait routine (previously, they piggybacked on the connection fail retry system). they have a separate cog-menu action to override these waits
- the time delay multiple for connection errors and serverside bandwidth problems are now editable under options->connection. old default was 10 seconds base, now 15 and 60 seconds respectively
- updated the danbooru login script
- improved the precision of the thumbnail size estimate in database migration
- the alphabetisation of a url class's GET paramaters on normalise is now optional. it is a new checkbox on the url class edit panel
- when a default object fails to load from a png path, a simple error is now written to the log
- misc cleanup