MailSettings: Add a GML file for Mail settings
MailSettings: Add an AF desktop file for Mail Settings
MailSettings: Unveil /res in mail settings, fix GML
MailSettings: Mail settings texteditor->textbox
MailSettings: Update mail username to correct category in settings
Modified Mail settings GML to properly represent ports >100
MailSettings: Update/fix mail settings GML
MailSettings: Adjust GML, add icons for mail settings
MailSettings: Change Okay button to OK
MailSettings: Change mail setting reset button to revert
MailSettings: Fix incorrect variable names in mail settings
MailSettings: Add newlines af EOF of all mail setting files
MailSettings: Mail settings linting issues fixed
MailSettings: Increase size of icon features
Code cleaning/styling changes as per gunnarbeutner review
Made settings descriptions more friendly per sin-ack review
MailSettings: Fixes as per PR comments
MailSettings: Fix checkbox weirdness
MailSettings: Adjust width of checkbox
MailSettings: Remove unneccessary update() call
MailSettings: Replace port SpinBox with ComboBox
MailSettings: Add colons to labels, remove port 110 option
MailSettings: Remove custom model, use ItemListModel
MailSettings: Change relative icon paths to absolute ones
We can use kill(pid,0) to check for kill permissions instead of relying
on file path access. Using 0 as signal does error checking but does not
send a signal.
This prevents GUI::TextBox and the `Paste & Go` action in the browser
from trying to paste a bitmap. Also, the paste action is enabled
and disabled on clipboard change to reflect if the clipboard data
can be pasted.
The original work was done in #2752
(deceb91c48 to be precise),
but unfortunately 2c772d1848 replaced
on_selection with on_selection_change, which caused the function
to never be executed, as it was reassigned a few lines below.
For example, the servers I tested this on sent "Subject" which matched
what I was checking for. However, some servers can send "SUBJECT" which
didn't match and would cause an assertion failure.
This utilises LibIMAP and LibWeb to provide an e-mail client.
The only way currently to connect to a server and login is with a
config file. This config file should be stored in ~/.config/Mail.ini
Here is an example config file:
```
[Connection]
Server=email.example.com
Port=993
TLS=true
[User]
Username=test@example.com
Password=Example!1
```
Since this is stored in plaintext and uses a less secure login method,
I'd recommend not using this on your main accounts :^)
This has been tested on Gmail and Outlook. For Gmail, you either have
to generate an app password if you have 2FA enabled, or enable access
from less secure apps in your account settings.
I found myself accidentally opening two assistants at once with the
Window+Space shortcut. Since only one assistant window is usable at the
same time, I made assistant only spawn 1 instance at most.
This fixes#6902.
Previously, dragging and dropping multiple files would create a window
for each file or directory that was selected. Now, we combine them and
show one progress window for the whole batch. :^)
Depending on the values it might be difficult to figure out whether a
value is decimal or hexadecimal. So let's make this more obvious. Also
this allows copying and pasting those numbers into GNOME calculator and
probably also other apps which auto-detect the base.
Applications previously had to create a GUI::Menubar object, add menus
to it, and then call GUI::Window::set_menubar().
This patch introduces GUI::Window::add_menu() which creates the menubar
automatically and adds items to it. Application code becomes slightly
simpler as a result. :^)
Instead of using the doubleclick_event this uses the current double-
click speed setting to check whether or not the colors of the double-
click icon should be inverted. This allows us to use the current (and
unsaved) setting for comparison instead of having to apply the settings
first.
This enables changing monitor settings for each monitor individually.
In the event that changing a resolution causes screens to overlap we
now try to disperse the screens, although the algorithm currently
implemented may result in some rather unexpected layouts in certain
cases. We can still improve this logic, and eventually we're going to
have a widget where the screens can be arranged as desired.