* org.gnome.Geary.service.in: create, and let it be installed by CMake.
* org.gnome.Geary.desktop.in: add `DBusActivatable=true`.
* geary-autostart.desktop.in: use `--gapplication-service` instead of
hidden.
* Change the way arguments are parsed:
* Use the _command-line_ and _handle-local-options_ signals instead
of _local-command-line_.
* Remove the `--hidden` option (replaced by `--gapplication-service`)
* Use VariantDict (which is a little cleaner)
* Don't use global variables in Arg, but set them in
the config instead.
* We can no longer set a global summary due to the new option handling
in GApplication. On IRC, I got the feedback that info like this should
be going into a manpage.
* Since the QUIT-action can now be called without ever activating the
app, make the necessary changes to the `GearyController`:
* `main_window` and `current_conversations` can be null.
* use `pending_mailtos()` for the compose action as well.
* Don't update the UNDO action if we're closing down.
* More instance variables prefixed with this (we're changing the lines
anyway, might as well do it properly).
* `Environment.set_prgname()` is already executed in GApplication.run(),
so no more need for `GearyApplication.PRGNAME`.
Signed-off-by: Niels De Graef <nielsdegraef@gmail.com>
Remove CI test workaround
See merge request GNOME/geary!198
(cherry picked from commit 8654c7ae136d2467f7b5b2e85a436d9039bd64bc)
4fc688de Revert "Work around DB tests always failing on gcc150.osuosl.org CI runner"
6b4b598a Add test runner multiplier to account for slow CI runners
If a FillWindowOperation didn't load a full amount of messages, it just
assumed that there were no more to load. This is not true however when
loading locally, the folder's vector isn't fully expanded, and it gets
to the end of the vector.
This patch fixes the operation to also queue another fill if the
monitor's folder message window is smaller than the folder's total
message count.
Fixes#289
In RFC822.Date, don't use duplicate time_t and GLib.DateTime properties
-- just use the latter, fix formatting of half-hour time zones, fix
where the that class refers to ISO 8601 instead of RFC822 strings since
that is just plain wrong, and finally when parsing an RFC 822 string,
take note of the timezone offset and store that in the DateTime object,
so it is round-tripped correctly.
Stop passing time_t around everywhere else, just use the UNIX time from
the DateTimes we store for protocol objects anyway, so the time zone is
obvious.
Add unit tests.
The ComposerPageState JS object assumed that if no signature was present
when first loaded, that none ever would be. This broke changing the
signature when the composer was opened for an account without one, and
the from account was changed to an account with a sig.
Instead of including the signature as part of the loaded body, always
include just a skeleton signature DIV and ensure the signature is loaded
dynamically after the body has been loaded. Update code and tests to
match this assumption, and add a unit test for updating the sig.
Fixes#309
Some software like the above will mangle From mailbox names by appending
"via Some Service" to the From mailbox name. This messes up generating
default avatars for the actual people sending these messages, so
attempt to de-mangle the names.
This involves moving primary originator determination from the engine
to the client, since it's now a policy thing. Add unit tests.
Don't try to dray null initials, actually return null per API contract
when no initials can be found, don't include non-alphanumerics in the
initials. Add test case.
This default instance was causing double the number of preferred height
events, which was likely creating a race for ConversationWebView. This
might (should?) fix plain text email with quotes sometimes showing up
with a vastly incorrect height.
To ensure that a PageState is constructed properly, make ClientWebView
abstract and use replace the one direct use of the class in the accounts
editor for the signature with a new subclass.
See #283
When pasting an email address copied from Geary, replying to a message
or entering an address via autocmoplete in the composer, and the
recipient's mailbox name contains a comma, it needs to be quoted so
that it is not parsed by the entry as two seperate addresses.
Fixes#282
find . -name '*.vala' -type f -exec sed -i 's/ *$//g' {} +
The following files was ignored:
test/client/composer/composer-web-view-test.vala
test/engine/util-html-test.vala
Fix#271
This allows people with dark themes to apply style to the cmoposer's
body editor as well as to conversation bodies. Note that this CSS does
not get sent, so WYSIWYG will break if people choose to do this.
Also renames the user CSS file from user-message.css to user-style.css,
but still looks for the old name for now.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=714129
If the primary email address matches the incoming host name, use that.
Else use a prefix of the hostname but only if it is more that two domain
parts long. E.g. don't shorten "other.com" to "com".
Fixes#261
This updates both AccountInformation and ServiceInformation to
implicitly apply provide-specific defaults, allowing the same
mechanism to provide defaults for accounts, and meaning that API
clients do not need to do this themselves any more. Add unit tests.
If a least one email in a conversation that is in the base folder but
also in another is removed from the base folder, the conversation may
not be removed from the monitor despite possibly not having any email
in the base folder, since the email may not have been completely removed
from the conversation.
This was particulary being seen with GMail accounts where even single
message conversations were not disappering when trashed because the
converation's email was still in All Mail.
This fix does a few things: Avoids hitting the database when checking
a conversation still has email in the base folder, when it does check
only ensures that email are in the base folder, not *any* folder, and
updates ConversationSet::remove_all_emails_by_identifier to do this
check iternally, clean up its API and implementation and avoids having
to use out args calling it.
Athough it was removed a while back, add it back since it is not only
needed when adding conversations, but also when removing email from
conversations to be able to detect when a conversation should be
dropped.
If an IdleManager or TimeoutManager had been scheduled, it would not get
destroyed until it was executed by the main loop, causing criticals
if the objects enclosed by its callback had been destroyed.
This adds a weak reference to the manager object itself when scheduling
on the main loop, so it can get safely dropped.
Updating the unread count after opening a folder and finding email that
has an unexpected unread status messes up the count obtained from the
server, which has already taken these messages into account.
Here, both the main normalisation process and the email flag updater are
prevented from adjusting the unread count for a folder when they
encounter email that are new and unread, or have an unread status
different from what was last seen by the engine.
See #213
If the common ancestor of the quoted text is the plain-text-message DIV
itself, the isDescendant test fails and the style to preserve new lines
is not maintained. This adds a non-strict check to isDescendant and
enables that when checking the common ancestor node and a test case for
it.
Use uppercase since that is what the DOM for HTML defaults to, use
nodeName rather than tagName for cases when there the check is false and
ancestor is the document element, add unit tests.
* master: (212 commits)
Import standard GNOME Flatpak CI config rather than copy/pasting it
Update Gitlab CI Flatpak build with standard template
Fix build with new FolderPath API
Only collapse runs of space, tab, carriage return, and newline
Do not add non openable folders entry in sidemenu. Bug 712902
Reducing padding in conversation viewer list
Fix build warnings
Fix possible critical when removing an account is removed
Fix local accounts for special-case providers not configured correctly
Rework GenericAccount::ensure_special_folder_asyc yet again
Add some useful debugging to GenericAcount
Fix ambiguous test in AccountInformation.set_special_folder
Fix pathological FolderPath.is_equal() case, add unit test
Revamp Geary.FolderPath implementation
Add additional FolderPath unit tests
Convert Geary.FolderRoot to be an actual root, not just a top-level
Stop duplicate inboxes being created, not being listed
Ensure MinimalFolder remote open forces closed on hard errors
Ensure accounts don't accidentially create multiple inbox-type folders
Remove unwanted debuging cruft
...
Convert getters that look like properties into actual properties,
remove unused and redundant public and internal API, convert
implementation to use a tree that aucyally maintains references between
steps, rather than each creating a new list of path steps and
manipulating that.