No macOS App this week, sorry! Check here if you are an advanced macOS user: https://github.com/hydrusnetwork/hydrus/releases/tag/v601-macOS-2
this page is still importing
- when you try to close the client or a page of pages and one of the sub-pages protests with a reason like "I am still importing", you now get a yes/no dialog with an extra 'no, but show me the pages' button that will spawn a window listing buttons for every page that protested. clicking a button takes you to that page. this window is a frame, not a dialog, and will not go away on a click. if a page is subsequently closed, clicking the button greys it out
misc
- the 'archived time' pretty text string is no longer flagged as an 'uninteresting' line, which again, as intended, elevates it to the top hover window and main gui status bar if you have detailed info set to show
system:width
is now beforesystem:height
in thesystem:dimensions
flesh-out panel. I also hacked this in the 'edit multiple preds' panel for existing fleshed-out predicates, but it is a whack implementation like I did for the sort stuff last week. as I've discussed with some others, the real answer here is probably asystem:resolution
that combines the two- re-classified the 'move flag' DnD option under
options->exporting
as a BUGFIX option, and altered the tooltip - fixed the new
Set to "all my files" when hitting "Open files in a new duplicates filter page"
options->duplicates
checkbox, which was not saving on dialog ok - changed the 'needs work' tab name suffix on the duplicates filter page to 'x% done'. it will max out at 99.9% and then hide, never rounding up to 100.0%
- added
Hide the "x% done" notification on preparation tab when >99% searched:
tooptions->duplicates
for those who always want to see this for any outstanding work
sidecar importers
- multiline .txt note sidecar importing is fixed. I previously added some 'clear out empty lines' parsing input cleaning, but this collapsed multiline content by accident. this content-agnostic stage of import is not where cleanup should occur!
- some explicit unit tests now test CRLF splitting and multiline note parsing from .txt files (previously it was just doing tags). multiline note sidecars have broken a couple times now, precisely because it was un-tested. it will not break for so stupid a reason again!
- fixed some stupid scrollbars appearing on the 'destination' panel of the main 'metadata migration router' (sidecar job) edit panel, and made sure the 'note name' text input can't get super thin (issue #1634)
- when a multi-column list is given multi-line content for a cell, it now says
[top line]... (+n lines)
so you know there was more (previously it just trancated to the top line). this now pops up in a couple of note parsing test panel places - notes are now specified as notes in the main sidecar path list with expected content (they looked a bit like tags before)
- it isn't a big deal, but a thing that sorts the sidecar-imported text rows before handing them off to the exporter now only does a (namespace-aware) tag-sort if the exporter is tags, and otherwise just does a straight-up normal text sort
some dialog validation
- the 'edit cookie' panel now strips leading and trailing whitespace from the name, value, domain, and path
- the 'edit cookie' panel will now not allow an ok if you accidentally paste a newline into any of these values
- the 'edit header' panel now strips leading and trailing whitespace from the key and value
- the 'edit header' panel will now not allow an ok if you accidentally paste a newline into either either
boring linting cleanup
- now my IDE no longer has a cheeky multi-Qt env, its linter went nuts about old to-be-deprecated Enum references so I did more cleanup
- moved from QDialog.Accepted/Rejected to the Qt6-only DialogCode Enum reference. there were about 400 of these I think
- and
QFileDialog.AcceptMode
,QFileDialog.FileMode
, andQFileDialog.Option
- and
QLineEdit.EchoMode
- and
QAbstractItemView.SelectionMode
,QAbstractItemView.SelectionBehavior
, andQAbstractItemView.EditTrigger
- and
QSlider.TickPosition
- and
QFrame.Shadow
andQFrame.Shape
- and
QSizePolicy.Policy
- and
QToolButton.ToolButtonPopupMode
- and
QTabWidget.TabPosition
- and I played around with typing.cast in a few places to handle some custom panels here and there. it is ok!
- also figured out some nicer typing in my newer command-processing menu generation code, and filled in some places where the Command Processor Mixin was needed
- also fixed some bad test panel stuff in the ancient lookup script panels
Qt when running from source
- I no longer support Qt5! it may run, depending on version, if you set up your own venv, but my
setup_venv
scripts no longer offer it as a choice and I will no longer fix any new non-trivial Qt5 bugs. at some point I expect I will use a Qt6 technique for which there is no Qt5 equivalent and things will simply stop working - I cleaned up the Qt choice more in the
setup_venv
scripts, reducing it down to the one choice regarding Qt6 options and removing the '(m)iddle' choice in favour of simple old/new/test, and then a new '(q) for PyQt6' that just gets the latest PyQt6, and the '(w)rite your own' - the 'setup_venv' scripts now tell you that Python 3.13 is probably not going to work. they also say, in prep for when it will, in the '(w)rite your own' Qt version step, that Python 3.13's earliest version is 6.8.0.2. this is actually later than our current 'test' version, which is 6.7.something. I've now set up a 3.13 dev environment and did get the program booting but there seem to be problems with numpy<2.0.0. too, and then with scikit for psd-tools, which seems to have no Windows wheel, so I'll keep working here and update everything once I figure out something that will work out of the box. for now, assume python 3.13 is a no-go unless you know how to use pip. probably best to just wait six months for all the base stuff here to catch up and settle
- I removed some Qt5 gubbins from the 'running from source' document
build stuff
- updated a deprecated term in the Windows inno setup (the installer exe) user script
- silenced a compiler warning about User-space-while-using-admin-installer in the Windows inno setup script. no good solution here, I think, but it isn't a huge deal