You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
added four checkboxes to options->media viewer to alter what shows in the media viewer top hover window's file info summary line. you can say whether archived status is mentioned; and if it is, if there should be a timestamp; and you can say whether individual file services should be enumerated; and if so, whether they should have timestamps
this same line is reflected in the main gui status bar when you have the new options->thumbnails checkbox set on--so if you missed seeing your current local file services on the status bar, it should be doable now, and in a more compact way
archived times
there has been a bug for some time where if you import files with 'automatically archive' set in the file import options, an 'archive time' was not being recorded! this is now fixed going forward
for the past instances of this happening, I have written a new database->file maintenance->fix missing file archived times job to fill these gaps with synthetic values. it can also fill in gaps from before archive times were recorded (v474, in 2022-02)
on the v602 update, your client will scan for this. if you have a large database, the update may take a couple minutes this week. if you have either problem, it will point you to the new job
the job itself looks for both problems and gives you the choice of what to fix. for files imported since 2022-02, it assumes these were 'archive on import' files and inserts an archive time the same as the import time. for files imported before 2022-02, the synthetic values will be 20% between the import time and (any known deletion time or 2022-02), which is imperfect but I think it'll do
system predicates
the system tags for duration, framerate, frames, width, height, notes, urls, and words are now written system: has/no xxxxx rather than system:xxxxx: has/no xxxxx
the system:file properties UI panel is now a two-column grid. 'has xxxxx' on the left, 'no xxxxx' on the right
system:has/no duration added to system:file properties (it is also still in system:duration, but let's see how it goes having it in both places. I am 50% sold on the idea)
the 'paste image!' button in the system:similar files edit panel now understands file paths when they are copied from something like Windows Explorer. previously it was only reading bitmaps or raw text, but when you hit ctrl+c on an actual file, it actually gets encoded as a URI, which is slightly different to raw text. should work now!
fixed the system:duration predicate's string presentation around 0ms, where it would sometimes unhelpfully insert '+/- no duration' and other such weirdness
fixed the system:duration edit predicate window initialising with sub-second values. previously, the ms amount on the main value or the +/- were being zeroed
the various NumberTest objects across the program that have a +/- in absolute or percentage terms now test that boundary in an inclusive manner. previously it was doing x < n < y; now it does x <= n <= y, which satisfies 5 = 5 +/- 0, 6 = 4 +/- 50%, and 0 = 600 +/- 100%
the 'has/no' system pred shortcuts now all parse in the system predicate parser. the old format will still parse too. I added unit tests to check this, and more to fill in gaps for 'framerate' and 'num frames'
rating predicates specifically
system:rating search predicates are now edited separately, which means that in the edit panel, each rating widget has its own 'ok' button. you edit one at a time with a clearer workflow
the radio buttons involved here are now less confusing. no 'do not search' nonsense or 'is = NULL' to search for 'no rating'--you now just say 'has rating', 'no rating', or set the specific rating
the inc/dec system pred box now has quick-select choices for 'has count' and 'no count'
rating predicates have slightly simpler and nicer natural language labels. 'is like' and 'more than 2/3' rather than '= like' and '> 2/3'. 'count' instead of 'rating' for the inc/dec ratings. inc/dec rating predicates will also now swap in the new 'has count' and 'no count' too, rather than saying "> 0" explicitly
the system predicate parser is updated to handle the new 'count' labels (but the old format will still work, so nothing should break™). new unit tests check this
these panels now recover better from a predicate that refers to a service that no longer exists. in general, if you try to edit a bad pred (e.g. from an old session) it'll try to just ignore it and give you a popup letting you know
deleted similar files search
the similar files system no longer de-lists files from the search tree when they are deleted. phashes being disassociated from deleted files was not intentionally enforced before, but it was legacy policy from an old optimisation when the search tech was far more limited than today; now the file filtering tech is better, and we can handle it CPU wise, and I now intentionally want to keep them. it should be possible to search similar deleted files in future. the similar files search code can get pretty wew mode though, so I wouldn't be surprised if there are some bugs in odd 'all known files' situations
I do not think this functionality is too useful, but we might want to build a 'oh we have seen this file before and we deleted it then, so stop this import' auto-tech one day, maybe, if we combine it with multiple/better similar files hashes, so keeping deleted file data in our search trees will be the policy going forward. although I regret these perceptual hash disassociations, the good news is that pixel hashes were never removed, and this will be more useful for this objective
misc
renamed 'human-readable embedded metadata' to 'embedded metadata' across the program, mostly just to stop it being so wide. I hate this system predicate, and with the jpeg stuff it is now a catch-all and basically useless as a discriminator. I have plans to replace it with a flexible all-in-one system that will integrate all the 'has icc profile' stuff together and bundle in fine search for 'jpeg:interlaced' or arbitrary EXIF data row search so you can search for what you actually want rather than the blanket 'uh some metadata I guess'
the 'move files now' dialog in database->move media files has a new 'run for custom time' button so you don't have to do 10/30/60/indefinite. note I also hate this whole system and want to replace it in the middle-term future with a background migration job, so fingers crossed this whole mess will be gone before long
when you manually lock the database with the Client API, the bottom-right status bar cell now says 'db locked'. when it is reading or writing, it now also just says 'db reading/writing' rather than 'db read/write locked'
the way the database updates the status bar with 'db reading' and stuff is now a little overhead efficient (it only updates the db cell, not the whole status bar)
clarified the text in options->importing
moved the 'default export directory' option from 'files and trash' to the new 'exporting' panel
if an SSLCertVerificationError occurs in a connection, the exception now has some extra info explaining the potential causes of the problem (issue #1642)
env stuff
I added a DEBUG checkbox to options->connection that explicitly sets the REQUESTS_CA_BUNDLE environment variable to your certifi's cacert.pem path, assuming that path exists and the env variable has not already been set. I'd like to test this a bit and see if it helps or breaks any situations, and maybe force it one day, or add some more options. also, I don't know much about CURL_CA_BUNDLE, but if you want me to defer to that rather than certifi if it is already set, or you have other thoughts, let me know what you think
added help->debug->data actions->show env, which simply spams it to a popup and writes it to the log. it also splits up your various PATH vars for readability, but the list is usually giant so this is best actually read in the log rather than the popup atm. a couple other places where the env is spammed to screen also now uses this now format
Qt enum cleanup
fixed up more Qt5 Enums to the new Qt6 locations, including those now under Qt.ItemDataRole, Qt.ItemFlag, Qt.SortOrder, Qt.ContextMenuPolicy, Qt.Key, Qt.KeyboardModifier, Qt.MouseButton, Qt.DropAction, Qt.AlignmentFlag, Qt.LayoutDirection, Qt.Orientation, Qt.CursorShape, Qt.WidgetAttribute, Qt.WindowState, Qt.WindowType, Qt.GlobalColor, Qt.FocusReason, Qt.FocusPolicy, Qt.CheckState, Qt.TextElideMode, Qt.TextFormat, Qt.TextFlag, Qt.TextInteractionFlag, Qt.ShortcutContext, Qt.ScrollBarPolicy, Qt.TimerType, Qt.ToolButtonsTyle, Qt.PenStyle, and Qt.BrushStyle
and QEvent.Type
and QItemSelectionModel.SelectionFlag
other code cleanup
cleaned up the recent 'make width sort before height in most places' hacks into something nicer
deleted the old 'Edit Multiple Predicates' panel py file, which was only handling the ratings stuff. was probably an interesting idea at some point, but it was too convoluted IRL, both for users and me to work with
decoupled some rating-to-stars and stars-to-rating rating conversion code out of the rating services object
new macOS App
sorry for no macOS App last week; github retired the old 'runner' that builds the App, and I missed the notifications. we are today updating from macos-12 to macos-13, which appears to still work on intel machines
macos-14, whose migration will presumably come in a few years, will likely require Apple Silicon (ARM), at which point I'll have to tell older mac users to run from source, but that's a problem for the future