- Adds a Popup at startup about Plugins that failed to load.
- Adds entry about broken Plugins in the Settings - Plugins tab.
- Adds corresponding translation entries.
- Fixes#2088 and #2089.
- Adds usage of ``row=`` for ``.grid()`` for all config entries in included plugins.
- Changes all config pages to start at row 0.
- Starts introducing a standard for config panel layouts.
* I can't even get this code to be problematic, with a folder containing
unicode heart characters, on 64-bit Python 3.7.9 (Release/4.1.6 adjusted to
not set UTF-8 locale), let alone on 64-bit Python 3.11 and this branch.
So, just always use the tkinter dialog. Bye-bye ctypes code which I just
couldn't get to work under 64-bit Python.
* I *think* the issue with the ctypes code was that under 32-bit an 'int' and
a pointer are the same size.
'Raw' (not declaring types beforehand) the `SHBrowseForFolderW()` function
causes ctypes to consider it returns an int. This works on 32-bit.
But on 64-bit that int is still 32-bits, but pointers are 64-bit, so ctypes
ends up coercing/casting/truncating the returned pointer into an int,
which than can't even be cast back to a pointer.
Meanwhile, attempting to properly define the signature of the function
has only lead to it crashing on invocation, despite being passed the same
BROWSEINFOW structure, defined in the same manner. This might be a matter
of a type within it needing adjusting, but I was following the docs there.
1. `SHGetPathFromIDListW` needing fixing, which was achieved, but...
2. ... then `SHBrowseForFolderW()` as-was returned `int` instead of a pointer
to the correct structure.
Trying to fix 2 has proven intractable:
a. Trying to cast the `int` return just results in `exception: access violation
reading <address>`.
b. Trying to define `SHBrowseForFolderW` properly, so it returns the correct
type results in a *writing* access violation when called, despite passing
the exact same data in as for the 'raw' call version.
So, this commit is a record, and I'm next going to try switching to
`IFileDialog` as recommended by the docs for `SHBrowseForFolderW` ('For
Windows Vista or later').