Commit graph

5375 commits

Author SHA1 Message Date
Chris Heywood
cecf66df08 Track and notify messages detached during cleanup
Split detach query into two so that messages identifiers can be captured
which are then used to signal through that the folder has locally
removed messages
2020-01-08 11:31:25 +01:00
Chris Heywood
52bd48bab5 Signalling for locally removed messages 2020-01-08 11:04:51 +01:00
Chris Heywood
7684c33830 Track all windows going out of focus 2020-01-08 11:00:01 +01:00
Chris Heywood
d77f5d9fcc Merge branch 'mainline' into remove-old-msgs-beyond-storage-pref 2019-12-18 12:09:53 +01:00
Chris Heywood
dbb1d783a1 Demote log message level 2019-12-18 12:08:24 +01:00
Michael Gratton
c9d6d9666a Merge branch 'mjog/search-refinement' into 'mainline'
Search implementation refinement

See merge request GNOME/geary!389
2019-12-17 23:56:23 +00:00
Michael Gratton
e7f85710e9 Move display-related Util.Email.shorten_url function to Util.Gtk
Add a short doc comment, tweak slightly.
2019-12-18 09:25:07 +11:00
Michael Gratton
77125fc17d Remove some redundant collection copies 2019-12-18 09:25:07 +11:00
Michael Gratton
cc0fb9eef2 Remove unused Geary.Folder::list_local_email_fields_async method 2019-12-18 09:25:07 +11:00
Michael Gratton
dda8d9baf1 Remove distinct search folder email identifiers
The only reason SearchFolder.EmailIdentifier exists was to store the
date for ordering the folder, but that can be done with any old class,
meaning we can simply pass though existing ImapDb ids to clients, fixing
a lot of bugs and corner cases along the way.
2019-12-18 09:25:07 +11:00
Michael Gratton
5eb6bb2a6d Update and simplify SearchBar component
Rename source file name and contents to match code convention, add
transation comments, remove extra API in favour of simply exposing the
search entry publically. Extend Hdy.Searchbar so that the width of the
entry grows as needed.
2019-12-18 09:25:07 +11:00
Michael Gratton
f025f6904d Move SearchFolder management into the client
Rename the search folder again to App.SearchFolder, move its id class
into it as an inner class. Remove search folder from the engine so the
application can manage it and it's policy in the future. Also remove
the outbox from the accout's list of local folders, so that code can
be removed altogether.
2019-12-18 09:25:07 +11:00
Chris Heywood
880df8691f Start towards clearing old messages beyond prefetch window
- Add custom optimised query to ImapDB.Folder and use in synchronizer
2019-12-17 12:43:55 +01:00
Jordi Mas
3640bef9c9 Update Catalan translation 2019-12-12 22:26:51 +01:00
Michael Gratton
130fd95b86 Remove Geary.Account::search_upgrade_monitor
Implement the upgrade call as an account operation so the background
monitor takes care of reporting its progress.
2019-12-12 11:19:51 +11:00
Michael Gratton
924104c282 Clean up search folder implementation
Move SearchFolder and search EmailIdentifier implementation out of
ImapDb and into its own package. Decouple both from ImapDB, and improve
the implementation, fixing a few inefficiencies. Merge search
FolderProperties into the SearchFoldern implementation as an inner
class.

Merge SearchTerm into ImapDB.SearchQuery as an inner class and move the
outer class's source down a level, since it was the only file left in
the imap-db/search dir.
2019-12-12 10:47:52 +11:00
Michael Gratton
b3488f6cf9 Add Geary.Account::list_local_email_async
Add new method and implementation to support breaking search folder
impl out of the ImapDb package.
2019-12-12 10:47:52 +11:00
Michael Gratton
cb16bdc59d Remove default Geary.EmailIdentifier::hash and ::equal_to impls
Make subclasses implement these themselves and remove the unique string
property, to be (hopefully) more efficient and easier for subclasses
to specialise.
2019-12-12 10:47:52 +11:00
Michael Gratton
981ea845f4 Make Geary.EmailIdentifier serialisation a bit less ad-hoc
Require EmailIdentifier implementations to use an outer GVariant of the
form `(yr)` (that is, a byte and an arbitrary length tuple), so that
inner representations are independent of the outer format.
2019-12-12 10:47:52 +11:00
Michael Gratton
c93cfc38b1 Clean up Engine search API
Clean up search API so that query string parsing and error handling can
be pushed out to the client.

Rename Geary.Account::open_search factory method to ::new_search_query
to better reflect what it actually does.

Update Geary.SearchFolder::search to be async so it can throw errors and
the caller can catch them, require SearchQuery objects instead of plain
text query strings.

Add Geary.SearchQuery::owner property so that the query's account can be
sanity checked.

Update API documentation to reflect this.
2019-12-12 10:47:52 +11:00
Michael Gratton
a4727a8a6c Merge branch '640-feedback-on-slow-image-paste' into 'mainline'
Provide feedback for slow inline image paste

Closes #640

See merge request GNOME/geary!387
2019-12-08 00:54:48 +00:00
Chris Heywood
953f943907 Improved docstrings for shared timeout values for background progress
bars
2019-12-07 13:53:51 +01:00
Chris Heywood
7a5fb05fb5 Minor tidy up for feedback on large image paste 2019-12-07 13:48:03 +01:00
Chris Heywood
554a8d9e1a Use shared values for timeouts on background process progress 2019-12-07 09:45:44 +01:00
Chris Heywood
8299f9c17a Bubble error on inline image paste up to UI 2019-12-07 08:52:43 +01:00
Chris Heywood
50a1691b2f Add feedback via HUD progress pulse on slow inline image paste 2019-12-06 11:17:12 +01:00
Michael Gratton
4d0ed05a2b Merge branch 'mjog/misc-fixes' into 'mainline'
Misc fixes and polish

Closes #600

See merge request GNOME/geary!385
2019-12-06 00:30:12 +00:00
Michael Gratton
f4788b412d Merge branch 'gnumoksha-mainline-patch-66137' into 'mainline'
chore: add matrix channel in README.md

See merge request GNOME/geary!386
2019-12-05 11:39:06 +00:00
Tobias Sette
d9939daf9b chore: add matrix channel in README.md 2019-12-05 02:29:48 +00:00
Michael Gratton
62edbed63c Blacklist logging GTK warning about null action targets
GAction does not support disabling parameterised actions
with specific values, but GTK complains if the parameter is
set to null to achieve the same effect, and they aren't
interested in supporting that: GNOME/gtk!1151

Move GDKPixbuf blacklisting to log handler as well, target it more
precisely.
2019-12-04 11:43:26 +08:00
Michael Gratton
411f3ef661 Warn about bad shutdowns so they can be caught and diagnosed 2019-12-04 09:48:47 +08:00
Michael Gratton
992bfe8fde Don't block application shutdown check when mainloop is blocked 2019-12-04 09:46:30 +08:00
Michael Gratton
2590e0090e Don't select wrong Inbox
Fixes the inboxes branch inbox being selected when the account branch
inbox was clicked.
2019-12-04 09:44:38 +08:00
Emin Tufan Çetin
875909e4f4 Update Turkish translation 2019-12-02 16:25:44 +00:00
Michael Gratton
b6e790e3db Report errors opening Application.Controller with a UI
Instead of logging errors, open a ProblemReportDialog.

Should help with issues like #30 and #600.
2019-12-02 20:15:50 +08:00
Michael Gratton
c07b878b09 Allow ProblemDetailsDialog to be show without a MainWindow
This lets it be used for app startup problems.
2019-12-02 20:13:59 +08:00
Michael Gratton
dfc6be2b17 Report when account operations are being executed
Replace the Geary.Account::opening_monitor with a more generic
::background_progress, and pass that to
Geary.ImapEngine.AccountProcessor so it can keep it updated when ops
are being execited.
2019-12-02 20:08:51 +08:00
Michael Gratton
78866085bf Fix status bar not appearing in MainWindow 2019-12-02 18:52:27 +08:00
Michael Gratton
f83a5a57c1 Fix compiler warnings in Application.Configuration 2019-12-02 18:52:27 +08:00
Michael Gratton
21482ffcbe Merge branch 'mjog/logging-update' into 'mainline'
Logging update

See merge request GNOME/geary!384
2019-12-02 10:42:00 +00:00
Michael Gratton
d949a8e500 Don't log non-enabled levels from Geary.Logging.Source
We want to do this in the future, but only when we have better means
of selecting which log messages to display or not.
2019-12-02 18:21:21 +08:00
Michael Gratton
24a0ad70ae Ensure some kind of logging source location is being printed
If printing source and line number is not being printed (it isn't at
the moment) then print the class name of the inner-most logging source
to give an idea of where the message came from.
2019-12-02 18:19:52 +08:00
Michael Gratton
dc665d20dd Update Geary.ImapEngine classes to implement Geary.Logging.Source 2019-12-02 16:31:42 +11:00
Michael Gratton
9884cd2e6c Update Geary.IMAP classes to implement Geary.Logging.Source 2019-12-02 16:31:11 +11:00
Michael Gratton
778a06af77 Add Geary.Logging.Source::log method
Generic method allows custom level and flags to be specified.
2019-12-02 11:42:15 +11:00
Michael Gratton
70dffd783a Add new Geary.Logging.State object for snapshotting source state
Add State object and Geary.Logging.State::to_logging_state factory
method. Use this in LogRecord to print formatted log messages so that
sources can log state that may change between being logged and the
log message being displayed/saved.

Provide a default implementation of Source::to_string that uses the
instance's current state.

Update implementing classes.
2019-12-02 11:38:55 +11:00
Michael Gratton
56601cfb5c Ensure AccountProcessorTest stops its test article
Add ::tear_down, stop the test article from running, so it doesn't
keep executing after tests have run.
2019-12-02 10:40:31 +11:00
Michael Gratton
978ff12810 Rename Geary.Loggable to Geary.Logging.Source
Rename the class because we need to distinguish between logging sources
and logging state, for cases when the logged object's state may change
between being logged and being displayed.

Rename util souce file to match new name space per source code
convernstion.
2019-12-01 19:37:15 +11:00
Michael Gratton
7517da5faa Merge branch 'wip/actually-imap-logout' into 'mainline'
Actually imap logout

See merge request GNOME/geary!381
2019-12-01 08:07:47 +00:00
Michael Gratton
d7fbf3b27f Merge branch 'conversation-dnd-icon-fix' into 'mainline'
Fix for conversation DND copy/move icon bug

See merge request GNOME/geary!379
2019-12-01 07:28:03 +00:00