In src/gui/TrayIcon.qml the showUpWatcher looked for the settingsFolder
in the qrc file context so it didn't notice changes in the real settingsFolder.
Fixes#126
Encryption keys, themes and general config dir (if used) were stored in
the default directories even if Moment-specific environmental variables
were present.
This is a bad place to display a huge error because it is a repeating
query. And also this is the first thing people see when opening the app
for the first time and it is a bad impression.
By Linux convention for GUI software, Ctrl+Q is quit.
By general chat app convention, Ctrl+K is filter.
Some keybindings have been changed to make space for these:
Reply is now Ctrl+R
Remove is now Ctrl+Shift+R
"Previous message" is now Ctrl+I
I did not want to alter the defaults more than this.
But ideally, you would want "Previous message" and "Next message"
adjacent, so it makes sense to swap Ctrl+U and Ctrl+J as well.
Moment has different default directories and is controlled by
different environment variables. On first startup, Moment
detects Mirage directories and offers to copy them.
It doesn't make sense to migrate logins without migrating encryption
keys, so this is now included in migration. Themes are migrated as well.
Only offer migration is only if both config and data directory are able to be
migrated.
By default, TapHandler is used for all input types. GlobalTapHandlers
was blocking finger touch events from reaching the underlying elements,
breaking the app for mobile devices with a touch screen.
Sending screenshots of error popups is an easy way to leak information.
But if the popup is transparent, that makes it so much easier.
For the sake of privacy, error popups should be opaque.
I just spent half an hour debugging why some setting didn't work for me.
It was because I was putting it in Chat instead of Keys.Chat. This is
very confusing when you're making your own partial config override file.
I've added comments to the classes with identical names to hopefully
make this less confusing.