Rewrote RoundRecTextField to allow Auto Layout with leading
and trailing margins to dynamically size the 'n of m' bubble
which lays the groundwork for supporting 999 clippings without
looking bad. RoundRecTextField was pretty self-critical anyway.
The 'n of m' bubble was off-center previously, so now it is centered.
The bezel content was lacking in margins to the background shading,
so those have been fixed up now.
Saving to the Desktop like Screen Shot sounded great at the time,
and I turn of Desktop icons so it didn't bother me, but really it
was a mess and a bit silly considering the number of autosave
clippings that can be produced. So it is time to create year and
month directories to organize them.
Manually saved clippings don't get year and month directories
because they are an explicit user action and the user can handle
them (and might well not want to have to hunt for them).
Surely some users will want year/month/day directories, and some
only year. Perhaps some none. I can't bring myself to make the
settings panel more complicated, so year/month seemed to strike
a balance.
This cleans up inconsistencies in the layout and makes it more
durable. It retains the 4px spacing between rows even though that
is lower than standard spacing.
Per https://twitter.com/vishalmalvi_/status/1475835430067052546?s=12
"YYYY" represents a so called 'week year'
"yyyy" represents a four-digit calendar year
They aren't the same. This has caused clippings near the end of the
year to be saved with the following year number rather than the
current year number.
The bezel doesn't provide any UI indication when it loses focus and
this no longer responds to input. This ranges anywhere from being
klunky to being a bug. Users have reported that they believed Flycut
to have hung when encountering this.
This defines a protocol for the BezelWindow's delegate, which had
previously just been a blind id delegate and makes the new delegate
inherit from NSWindowDelegate so that AppController can receive
windowDidResignKey: to indicate when focus is lost and immediately
close the bezel.