* Add the concept of custom TOTP encoders, each with potential for custom
code alphabet, length, step interval and code direction (i.e. reversed)
* Select custom encoder via overload of the digits field of a loaded entry
* Allow selection of custom encoders via the "TOTP Settings" field's
size, as currently done by KeeTrayTOTP for Steam. Use "S" for the
short name of the Steam custom encoder
* Allow selection of custom encoders via the "otp" field by appending
a "&encoder=<name>" field to the URL query. For example,
"&encoder=steam"
* Update TOTP set-up dialog to permit selection between (default,
steam, custom) settings.
- Fix multiple activations of updateTotp by different QTimer instance timeouts.
- Fix call to updateTotp with invalid, uninitialized state
- Fix tooltip description
According to the AppStream specification org.keepassxc is not a valid
id. The product name is missing. This results in failures if one tries
to validate the file and makes it unusable where validation is enforced.
Additionally it seems specification don't allow the `<icon>` tag with
component type desktop-application. I am not sure this tag is strictly
necessary. In any case validation tests require this to be removed.
Fixing both of these issues ensure the AppStream appdata is compliant
and works anywhere passing validations is a requirement.
Also provide some other fixes and improvements to the appdata.
Minor validation failures:
- Fix missing captions for screenshots (`appstreamcli`)
- Fix descriptions cannot start with `<ul>` tag (`appstream-util`)
Other enhancements:
- Add more URL types, but could not add donation type because "&" is not
allowed in the `<url>` tag and using "%26" causes
`appstreamcli validate` to fail.
- Add `<developer_name>`, which in cases such as KeePassXC is a team name.
The alignment is a bit off, however. A better option may be simply
disabling the QPlainTextEdit widget and stashing the actual notes
in another buffer somewhere.
There is a simple checkbox that allows your notes to become visible
again. This is always disabled by default, as the use case
referenced in issue #342 (and my own use case) has confidential data
in that field.
Passes all tests (YubiKey is N/A) on Ubuntu 16.04.2 with Qt 5.5.1.