From 70fb1f2cb9f2a0afad223cf51be9b6ac6a6b521f Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Wed, 19 Aug 2020 11:59:47 +1000 Subject: [PATCH 1/6] THANKS: Updated --- THANKS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/THANKS b/THANKS index 91f1c5fa..932f2185 100644 --- a/THANKS +++ b/THANKS @@ -3,11 +3,13 @@ translation teams for their contributions: Adam Dingle Adrien Plazas +Adwait Rawat Alex Henrie Alexander Wilms Andre Klapper Andrea Corbellini Andreas Obergrusberger +Andres Salomon Angelo Marchesin Anirudh Sanjeev Attila Bukor @@ -25,6 +27,7 @@ Colin Walters Daniel Foré Daniel Kahn Gillmor Didier Roche +Diego Escalante Urrelo Emersion Erik Faye-Lund Federico Bruni @@ -33,6 +36,7 @@ Gautier Pelloux-Prayer Georges Basile Stavracas Neto Gianfranco Costamagna Greg V +Guillaume Ayoub Gustavo Rubio Heiko Becker Jakob Unterwurzacher @@ -94,6 +98,7 @@ Sergey Shnatsel Davidoff Simon Lipp Stephen Michel Sven Hagemann +Thibault Martin Thomas Moschny Tiago Quelhas Timo Kluck @@ -107,6 +112,7 @@ Ville Korhonen William Jon McCann Wolfgang Steitz Yosef Or Boczko +hkdb john mar-v-in nick richards From e4683c1dfcc358adabba24718bb3c1e397c2a3eb Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Wed, 19 Aug 2020 12:00:01 +1000 Subject: [PATCH 2/6] Updates files for 3.37.90 --- NEWS | 57 +++++++++++++++++++++++ desktop/org.gnome.Geary.appdata.xml.in.in | 16 ++++++- meson.build | 2 +- 3 files changed, 72 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index d37d46d5..8fa2a310 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,60 @@ +Version 3.37.90 +~~~~~~~~~~~~~~ +Released: 2020-08-19 + +Notable changes included in this release: + + * Drop messages in the database older than the storage preference + * Added a mail merge plugin + * Sent sound plugin improvements + * Follow system font preference in the conversation list + * Hide composer formatting toolbar by default + * Improved default preferences window size + * Improved server compatibility + * Code cleanup, build and bug fixes + * Broke out generic unit test code into a stand-alone subproject + * Use a distinct icon for nightly builds + * Update vala dependency to >= 0.46.2 + * Update libhandy dependency to >= 0.90 + +Thanks to all who contributed code fixes and enhancements to this +release: + * Adwait Rawat + * Andres Salomon + * Chris Heywood + * Diego Escalante Urrelo + * Federico Bruni + * Guillaume Ayoub + * hkdb + * Jan Tojnar + * Jordan Petridis + * Oliver Giles + * Rico Tzschichholz + * Thibault Martin + +Thanks also to all who contributed translations, for the user +interface: + * Anders Jonsson (sv) + * Baurzhan Muftakhidinov (kk) + * Daniel Mustieles (es) + * Daniel Șerbănescu (ro) + * Dušan Kazik (sk) + * Emin Tufan Çetin (tr) + * Federico Bruni (it) + * Jordi Mas (ca) + * Kukuh Syafaat (id) + * Piotr Drąg (pl) + * Rafael Fontenelle (pt_BR) + * sicklylife (ja) + * Thibault Martin (fr) + * Yuri Chornoivan (uk) + +And for the user manual: + * Andre Klapper (it) + * Jordi Mas (ca) + * Piotr Drąg (pl) + * Yuri Chornoivan (uk) + Version 3.37.1 ~~~~~~~~~~~~~~ Released: 2020-05-03 diff --git a/desktop/org.gnome.Geary.appdata.xml.in.in b/desktop/org.gnome.Geary.appdata.xml.in.in index a0f4cd03..b2d8e467 100644 --- a/desktop/org.gnome.Geary.appdata.xml.in.in +++ b/desktop/org.gnome.Geary.appdata.xml.in.in @@ -92,8 +92,20 @@

Enhancements included in this release:

    -
  • New mail notifications now show contact photos
  • -
  • New preferences pane for managing plugins
  • +
  • Clean up email in database older than the storage preference
  • +
  • New Preferences window pane for managing plugins
  • +
  • New Email Templates plugin
  • +
  • New Mail Merge plugin
  • +
  • New Sent Sound plugin
  • +
  • New Unity Messaging Menu plugin
  • +
  • Reduced number of spurious problem report info bars
  • +
  • Improved ordering of folders in the folder list
  • +
  • Spam folder renamed to Junk
  • +
  • Composer formatting toolbar initially hidden for new installs
  • +
  • Desktop mail notifications now show contact photos
  • +
  • Improved server compatibility
  • +
  • Numerous bug fixes and user interface improvements
  • +
  • Numerous user interface translation updates
diff --git a/meson.build b/meson.build index 10062688..ad482a1f 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('geary', [ 'vala', 'c' ], - version: '3.37.1', + version: '3.37.90', license: 'LGPL2.1+', meson_version: '>= 0.50', ) From 8f278e3e039457a16fd0feee4c54db0a0ffd456e Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Thu, 20 Aug 2020 11:34:57 +1000 Subject: [PATCH 3/6] Application.Client: Fix criticals when opening first new window If there is no existing window, then `current` will be null. --- src/client/application/application-client.vala | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/client/application/application-client.vala b/src/client/application/application-client.vala index 43002728..3585a5a4 100644 --- a/src/client/application/application-client.vala +++ b/src/client/application/application-client.vala @@ -1184,11 +1184,14 @@ public class Application.Client : Gtk.Application { private void on_activate_new_window() { // If there was an existing active main, select the same // account/folder/conversation. + Geary.Folder? folder = null; + Gee.Collection? conversations = null; MainWindow? current = this.last_active_main_window; - this.new_window.begin( - current.selected_folder, - current.conversation_list_view.copy_selected() - ); + if (current != null) { + folder = current.selected_folder; + conversations = current.conversation_list_view.copy_selected(); + } + this.new_window.begin(folder, conversations); } private void on_activate_preferences() { From b3aa2052cf61df97b8f2556b85141c69e7afa83b Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Thu, 20 Aug 2020 11:35:39 +1000 Subject: [PATCH 4/6] Accounts.Manager: Fix criticals when removing/restoring accounts Cancellables must be nullable. --- src/client/accounts/accounts-manager.vala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/accounts/accounts-manager.vala b/src/client/accounts/accounts-manager.vala index c0ead2bb..f9c2bdff 100644 --- a/src/client/accounts/accounts-manager.vala +++ b/src/client/accounts/accounts-manager.vala @@ -306,7 +306,7 @@ public class Accounts.Manager : GLib.Object { * restore_account}. */ public async void remove_account(Geary.AccountInformation account, - GLib.Cancellable cancellable) + GLib.Cancellable? cancellable) throws GLib.Error { this.accounts.unset(account.id); this.removed.add(account); @@ -324,7 +324,7 @@ public class Accounts.Manager : GLib.Object { * he account was removed. */ public async void restore_account(Geary.AccountInformation account, - GLib.Cancellable cancellable) + GLib.Cancellable? cancellable) throws GLib.Error { if (this.removed.remove(account)) { yield save_account(account, cancellable); From bf1879059cfa4291f15894e7b53743c79d4e12ff Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Thu, 20 Aug 2020 11:36:07 +1000 Subject: [PATCH 5/6] Application.Controller: Clean up account adding/removal Add dedicated methods for adding and removing accounts to simplify callback impls and remove redundancy, ensure they check for engine errors if an account already exists or doesn't exist. --- .../application/application-controller.vala | 72 +++++++------------ 1 file changed, 27 insertions(+), 45 deletions(-) diff --git a/src/client/application/application-controller.vala b/src/client/application/application-controller.vala index 38b1bfea..234c7485 100644 --- a/src/client/application/application-controller.vala +++ b/src/client/application/application-controller.vala @@ -947,6 +947,16 @@ internal class Application.Controller : } } + private void add_account(Geary.AccountInformation added) { + try { + this.application.engine.add_account(added); + } catch (Geary.EngineError.ALREADY_EXISTS err) { + // all good + } catch (GLib.Error err) { + report_problem(new Geary.AccountProblemReport(added, err)); + } + } + private async void open_account(Geary.Account account) { AccountContext context = new AccountContext( account, @@ -1012,6 +1022,19 @@ internal class Application.Controller : update_account_status(); } + private async void remove_account(Geary.AccountInformation removed) { + yield close_account(removed, false); + try { + this.application.engine.remove_account(removed); + } catch (Geary.EngineError.NOT_FOUND err) { + // all good + } catch (GLib.Error err) { + report_problem( + new Geary.AccountProblemReport(removed, err) + ); + } + } + private async void close_account(Geary.AccountInformation config, bool is_shutdown) { AccountContext? context = this.accounts.get(config); @@ -1540,11 +1563,7 @@ internal class Application.Controller : private void on_account_added(Geary.AccountInformation added, Accounts.Manager.Status status) { if (status == Accounts.Manager.Status.ENABLED) { - try { - this.application.engine.add_account(added); - } catch (GLib.Error err) { - report_problem(new Geary.AccountProblemReport(added, err)); - } + this.add_account(added); } } @@ -1552,33 +1571,12 @@ internal class Application.Controller : Accounts.Manager.Status status) { switch (status) { case Accounts.Manager.Status.ENABLED: - if (!this.application.engine.has_account(changed)) { - try { - this.application.engine.add_account(changed); - } catch (GLib.Error err) { - report_problem(new Geary.AccountProblemReport(changed, err)); - } - } + this.add_account(changed); break; case Accounts.Manager.Status.UNAVAILABLE: case Accounts.Manager.Status.DISABLED: - if (this.application.engine.has_account(changed)) { - this.close_account.begin( - changed, - false, - (obj, res) => { - this.close_account.end(res); - try { - this.application.engine.remove_account(changed); - } catch (GLib.Error err) { - report_problem( - new Geary.AccountProblemReport(changed, err) - ); - } - } - ); - } + this.remove_account.begin(changed); break; case Accounts.Manager.Status.REMOVED: @@ -1588,23 +1586,7 @@ internal class Application.Controller : } private void on_account_removed(Geary.AccountInformation removed) { - debug("%s: Closing account for removal", removed.id); - this.close_account.begin( - removed, - false, - (obj, res) => { - this.close_account.end(res); - debug("%s: Account closed", removed.id); - try { - this.application.engine.remove_account(removed); - debug("%s: Account removed from engine", removed.id); - } catch (GLib.Error err) { - report_problem( - new Geary.AccountProblemReport(removed, err) - ); - } - } - ); + this.remove_account.begin(removed); } private void on_report_problem(Geary.ProblemReport problem) { From f6bb718fbb603da991f1284a6baeb2776bc52a8c Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Thu, 20 Aug 2020 12:34:44 +1000 Subject: [PATCH 6/6] build: Bump minimum vala version to 0.48.6 Ensure 3.38 isn't affected by GNOME/vala#995, which causes spurious bug reports. --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index ad482a1f..5bcb02d0 100644 --- a/meson.build +++ b/meson.build @@ -50,7 +50,7 @@ valac = meson.get_compiler('vala') # Required libraries and other dependencies # -target_vala = '0.46.2' +target_vala = '0.48.6' target_glib = '2.60.4' target_gtk = '3.24.7' target_webkit = '2.26'