Commit graph

449 commits

Author SHA1 Message Date
Michael Gratton
d61d49bef9 Use a command stack with Accounts.EditorServerPane
Use the stack to apply changes to the service config copies and update
the apply button's state.
2018-12-20 20:47:38 +11:00
Michael Gratton
cf73a91681 Hide add account text entry borders
Cromulence++
2018-12-20 14:10:38 +11:00
Michael Gratton
ccd1c857c3 Polish first-run appearance of the accounts editor 2018-12-09 19:16:35 +11:00
Michael Gratton
f630e03485 Add some polish to account edditor list drag and drop
Paint the row that was picked up as the drag icon, dim the actual row
and don't highlight it when dragging over itself.

Icon drawing code courtesy ebassi's tutorial:
https://blog.gtk.org/2017/04/23/drag-and-drop-in-lists/
2018-12-02 15:16:07 +11:00
Michael Gratton
9aab053382 Implement initial drag and drop for accounts, sender mailbox ordering
Code courtesy @ebassi's tutorial:
https://blog.gtk.org/2017/04/23/drag-and-drop-in-lists/
2018-12-02 15:15:58 +11:00
Michael Gratton
8d606e57a8 Implement initial server editing and validation 2018-12-01 00:26:24 +11:00
Michael Gratton
143da15bb2 Update UI for accounts editor servers pane
This is close to something that would work as an initial
implementation.
2018-11-30 23:49:30 +11:00
Michael Gratton
4eccbdf6c4 Make sure account listbox is shrinkwapped when only one is present 2018-11-30 23:49:30 +11:00
Michael Gratton
3c06c0969e Improve handling of GOA accounts in the account editor
Show GNOME settings when adding a supported GOA service type and
it is installed, otherwise show Geary's custom password-based impl.

For GOA accounts, hide the Remove button, and enable opening the
account in GNOME Settings from the server pane.
2018-11-30 23:49:30 +11:00
Michael Gratton
468a7a674b Get basic new account verification working. 2018-11-30 23:49:30 +11:00
Michael Gratton
bb629999a6 Implement decent keyboard nav for AccountsEditor and editor panes
Return to previous panes using escape/back/(left|right), navigate
between settings list items using up/down.

Implementation courtesy
https://blogs.gnome.org/mclasen/2014/02/27/getting-the-details-right/
2018-11-30 23:49:30 +11:00
Michael James Gratton
b8213b5b86 Add initial replacement account creation pane. 2018-11-30 23:49:30 +11:00
Michael James Gratton
9c8990d18d Implement undo-able account removal. 2018-11-30 23:49:30 +11:00
Michael James Gratton
f754d3df82 Introduce some common interfaces for account editor panes.
This allows the panes themselves to manage their own headers, command
stacks, and so on. Break out the account list pane out so it's handled in
the same way as the others.
2018-11-30 23:49:30 +11:00
Michael James Gratton
d9b94c1c61 Implement editing for the account editor pane. 2018-11-30 23:49:30 +11:00
Michael James Gratton
f7ad510dcc Push WebView editing machinery from the composer to the client.
This allows using the same code for editing account signatures as for the
composer.

* src/client/components/client-web-view.vala (ClientWebView): Move both
  command_stack_changed and document_modified signals here from
  ComposerWebView, since they use the same underlying machinery to
  emit. Move get_html() from ComposerWebView since we want to get to the
  HTML when editing signatures. Override WebView.set_editable() so we can
  enable/disable the signal machinery and hence not get change signals
  emitted when enabling/disabling editing.

* ui/client-web-view.js (PageState): Mirror the changes above made to
  ClientWebView.

* src/meson.build (geary_web_process): Ensure C args are passed through
  web compiling the web extension.
2018-11-30 23:49:30 +11:00
Michael James Gratton
688040663a Add initial replacement account server details pane. 2018-11-30 23:49:30 +11:00
Michael James Gratton
b289170c1a Add initial replacement account removal pane. 2018-11-30 23:49:30 +11:00
Michael James Gratton
2f0a7b9c18 Add initial replacement account editor pane. 2018-11-30 23:49:30 +11:00
Michael James Gratton
05be1c1014 Add initial replacement accounts editor dialog. 2018-11-30 23:49:30 +11:00
Michael Gratton
1e3fbdc69a Use doc element's scrollHeight as ClientWebView's preferred height
This seems to be a bit more accurate than the previous calculation.
Force the doc element's border to zero as well to make using
scrollHeight more reliable.
2018-10-14 11:55:46 +11:00
Michael Gratton
07c4133b11 Check for ClientWebView preferred height changing in a few more cases
Queue a preferred height check on resize and transition end so we catch
cases where the user resizes the window and transitions cause a height
change after loading has completed, etc.
2018-10-14 11:52:52 +11:00
Alex Henrie
698f61e6e5 Print common headers when printing messages 2018-09-26 18:43:46 -06:00
Michael Gratton
00e7834082 Revert "Merge branch 'print-headers' into 'master'"
This reverts merge request !45
2018-09-23 02:18:24 +00:00
Alex Henrie
2b2c587e6c Print common headers when printing messages 2018-09-22 09:48:51 -06:00
Michael James Gratton
b9af50c005 Add translation comments to conversation email menu 2018-08-23 18:40:24 +10:00
Alex Henrie
6c8bc2c580 Implement single-message deletion for messages in the current folder 2018-08-22 20:04:11 +10:00
Alex Henrie
7ab6f713fb Fix context of "Paste Without Formatting" 2018-07-27 12:36:30 -06:00
Michael Gratton
0b57e5b490 Merge branch 'wip/730495-fix-inline-plain-text-paste' into 'master'
Fix rich text being pasted by Ctrl+V in plain text embedded composers

See merge request GNOME/geary!28
2018-07-27 00:03:26 +00:00
Michael James Gratton
ae6aed8ae6 Fix rich text being pasted by Ctrl+V in plain text embedded composers
This restores normal key handling MainWindow:key_press_event when a
keyboard modifier (Ctrl, Shift, etc) is down, keeping the ordering hack
only for plain key presses, so that we can handle Ctrl+V before
WebKitGTK does, and hence letting us paste plain text default when rich
text is not enabled.

Fixes Bug 730495.
2018-07-27 09:51:04 +10:00
Alex Henrie
74a6802dca Make generic "Paste" action paste with formatting if possible 2018-07-26 09:18:19 -06:00
Michael James Gratton
98e2d319eb Remove CMake build.
Closes Bug 777044.
2018-06-13 22:30:10 +10:00
Niels De Graef
c72d7b28ac Implement in-app notifications. Bug 774442.
Implemented it for the mail sent-notification.

Signed-off-by: Niels De Graef <nielsdegraef@gmail.com>
2018-06-07 08:39:17 +10:00
Michael James Gratton
adf168218e Ensure composer overlay widget isn't visible by default.
Followup for commit 07b4a784.
2018-04-16 11:46:00 +10:00
Michael James Gratton
07b4a7842f Replace some deprecated style calls in the composer with CSS rules. 2018-04-15 22:03:35 +10:00
Michael James Gratton
7fa755f0b7 Work around composer info label being too long. Fixes Bug 790435.
* ui/composer-widget.ui: Make the info label esliipsisable, but give it a
  reasonable minimum size.

* src/client/composer/composer-widget.vala (ComposerWidget): Set the info
  label's tooltip with the text so it can still be read when ellipsed.
2018-04-14 12:46:55 +10:00
Michael James Gratton
5a9075b345 Fix TRUE/FALSE listed as composer drafts status.
* src/client/composer/composer-widget.vala (Composer): Replace use of
  inappropriate public properties and obtuse property bindings with a
  subject_changed signal and private properties that update the info
  label in their setter, so it's obvious how the whole thing works. Move
  code for managing a detached compoer's window title to the
  ComposerWindow class.
2018-04-14 12:37:22 +10:00
Michael James Gratton
77d33d7346 Don't display quote expander buttons when printing a message.
Fixes Bug 795216.

* ui/conversation-web-view.css: Fix syntax error in CSS, make
  geary-button elements display: none for print.
2018-04-13 16:54:57 +10:00
Michael James Gratton
67e8a8ab93 Fix composer detach button position & visibility on custom setups.
Fixes Bug 793710.

* src/client/composer/composer-headerbar.vala (ComposerHeaderbar): Ensure
  we actually get notified when the user changes their decoration prefs
  and update detach button location correctly.

* ui/composer-headerbar.ui: Make start detach button's image visible by
  default.
2018-04-12 11:36:18 +10:00
Michael James Gratton
3da72b2f76 Fix message body quote button styling under WebKitGTK 2.20.
* ui/conversation-web-view.css: Replace bogus ">>" with simple descendent
  selector.
2018-04-11 14:01:54 +10:00
Michael James Gratton
71d05b6ce0 Reduce CPU use when idle.
It looks like Gtk.Spinner triggers repaints when running, even when the
widget is not visible. This ensures the conversation is stopped when not
visible.

Fix for Bug 783025.

* src/client/conversation-viewer/conversation-viewer.vala
  (ConversationViewer): Start the conversation spinner when showing it,
  stop the conversation spinner when it is hidden.
2018-04-09 12:31:39 +10:00
Michael James Gratton
32f9f17d08 Remove icon from composer's send button her HIG recommendations. 2018-02-13 13:39:07 +11:00
Michael James Gratton
2228fe73e7 Stop using Gtk.Widget.show_all() on the main window.
Using show_all is a pita, since it causes a bunch of bugs whenever we
need to conditionally show/hide widgets. This removes all uses on the
main window in favour of either just show() or present(), and ensures
that its widgets that are shown by default, are shown by default.
2018-02-07 14:49:59 +11:00
Michael James Gratton
360e5a094c Make copying a message subject much more likely to work. Bug 788494.
* ui/conversation-message.ui: Make subject label focusable so if clicked
  on, its default keyboard bindings will Just Work.
2018-02-05 22:30:58 +11:00
Michael James Gratton
8b42ceda1a Update start-notification preferences text, tooltip, and user manual.
Fixes Bug 742244, again.
2018-01-11 03:13:54 +11:00
Michael James Gratton
2f35e40e46 Swap position of UL and OL lists, to be in that order. 2017-12-12 23:32:43 +11:00
Nikolas Tapia
63521d8566 Added support for lists in composer
This attempts to solve bug
[#714921](https://bugzilla.gnome.org/show_bug.cgi?id=714921).

They are available as two buttons on the format bar, next to font
options. The icons I used are taken from a free icons site just for demo
purposes and should be replaced by new icons. Also I did not include
hotkeys mainly because I could not come up with a good one, also they
are pretty uncommon I think.

Also added new icons to icons/CMakeLists.txt
2017-12-12 23:32:28 +11:00
Michael James Gratton
cba778d6f7 RTL UI fixes for ConversationMessage. 2017-12-12 15:56:31 +11:00
Niels De Graef
01c13f726f Port build system to Meson. Bug 777044.
Some remarks:

* Note that Meson adds a hard dependency on Python 3.

* All dependencies and defines are now listed together.

* Some build files were put in their respective subdirectories, e.g. the Geary
  engine library will be built from the Meson file in `src/engine`.

* `--fatal-warnings` is no longer an explicit flag, as Meson provides
  `-Dwerror=true` for this.

* An explicit resource file needs to be used. The issue to support this from
  Meson itself can be found at https://github.com/mesonbuild/meson/issues/706 .

* The `gnome.yelp()` function parses a LINGUAS file so we no longer need to keep
  track of all languages in our build system.

* There are no Debian scripts defined in the meson.build files to keep them
  clean, but they can be kept as separate scripts in `build-aux`.

* Left out the `dist` target as there is now `ninja dist`

* `geary-docs` is disabled by default, as valadoc-0.38.3 returns errors.

https://bugzilla.gnome.org/show_bug.cgi?id=777044
2017-12-12 00:27:46 +01:00
Michael James Gratton
d1d8d6411e Merge branch 'wip/713006-better-error-reporting'. Fixes Bug 713006. 2017-11-19 18:35:06 +11:00