Commit graph

42 commits

Author SHA1 Message Date
Cédric Bellegarde
f45afac091 components: Rework adapative layout by removing HdySwipeGroup
HdySwipeGroup is deprecated since libhandy 1.4.

- Split headerbar into 3 components
- Remove HdySwipeGroups/GtkSizeGroups used for syncing headerbar with content.
2022-09-26 08:59:44 +00:00
Cédric Bellegarde
864a3135e3 components: Rework Folder Popover
- Do not use tags for service providers not using this metaphor
- Do not show folders with a dedicated button: Trash, Archive, ...
- Do not show folders as an IMAP path but as a human readable path (>INBOX>Folder vs Boîte de reception/Folder)
2022-09-20 05:37:14 +00:00
Michael Gratton
0aa8ad6a05 client: Convert from shared conversation action widget to use multiple
Convert Components.ConversationActions to a widget that encapsulates
selectively visible conversations action groups. Use multiple instances
of that in preference to a single shared instance that gets re-parented
as the responsive UI adjusts.

Flatten the custom widget hierarchy a bit by merging the
`ConversationActionBar` and `ConversationHeaderbar` widgets into
`MainToolbar` itself.
2021-04-11 11:23:13 +10:00
Michael Gratton
7b994ece1d client: Move MainToolbar into the Components name space proper 2021-04-09 21:11:41 +10:00
Michael Gratton
c331145fd3 client: Clean up database upgrade dialog implementation
Rename `UpgradeDialog` to `DatabaseManager` since it's not actually a
dialog, move it into the APplication package. Replace old Glade UI file
with a custom built dialog since it's trivial and so we can make it
modal for a main window.

Fixes #1007
2021-01-19 23:50:29 +11:00
Michael Gratton
bf3a0e830b Merge branch 'adaptive_dialogs' into 'mainline'
Make account-editor adaptive

See merge request GNOME/geary!609
2021-01-07 21:54:57 +00:00
Julian Sparber
3530a804a1 compnents-info-bar: use custom infobar so that the buttons reflow 2020-11-18 16:50:18 +01:00
Julian Sparber
9c6ca541cc conversation-viewer: move actions to the bottom when they don't fit 2020-11-18 14:59:43 +01:00
Julian Sparber
a30afb9e86 account-editor: replace remove confirm view with dialog 2020-11-17 13:45:57 +01:00
Michael James Gratton
d7af23201c Revert "Revert "Merge branch 'mjog/558-webkit-shared-process' into 'mainline'""
This reverts commit cbe6e0ba9b, which reinstates
commit e4a5b85698.

See !411 and !374
2020-10-13 00:02:02 +11:00
Julian Sparber
70a40893a3 action-bar: Add an action bar to the conversations list (2-panel)
This moves the actions from the headerbar to the action bar at the
bottom of the conversations list when multiple conversations are
selected. This changes is needed so that the user can still interact
with the conversations when folded.
This also hides the actions from the Headerbar and action bar when
no conversation is selected.
2020-10-12 11:03:55 +02:00
Julian Sparber
98017cfb39 main-toolbar: Create object containing conversation actions
This creates a new object that contain the 4 groups of actions that used
to be in the conversation-viewer headerbar.
This allows the widgets to be moved to differen locations, e.g. to an
action bar that will be added in a later commit.
2020-10-12 11:03:04 +02:00
Michael Gratton
369b1f1a4d Composer.Widget: Split email body editing code out into separate widget
Create a new Composer.Editor widget and move all body web view and
action bar related code from the main widget there.

This helps to clearly delineate concerns of the two classes, it
substantially reduces the complexity of the main widget, and should
reduce the odds of further breakage like that fixed by the previous
commit less likely in the future.
2020-08-28 18:25:58 +10:00
Michael Gratton
feece66c6e MainWindowInfobar: Rename and derive from common InfoBar widget
Rename to Components.ProblemReportInfoBar to better describe what it
does, and to fit with the code convention for package and file names.

Derive from Components.InfoBar so we can drop the custom GTK Builder
file for it.
2020-03-20 17:08:46 +11:00
Michael James Gratton
cbe6e0ba9b Revert "Merge branch 'mjog/558-webkit-shared-process' into 'mainline'"
Revert merge request GNOME/geary!374 for now since the shared process
model breaks old-style WebProcess message handler IPC.

This can be un-reverted when out JS is ported to the new Messages API
that is landing in WebKitGTK 2.28.

This reverts commit e4a5b85698, reversing
changes made to 66f6525480.
2020-02-13 12:56:52 +11:00
Michael Gratton
e99bf29bd5 Break out ConversationMessage link popover into seperate UI file
This reduces the number of widgets to be parsed and constructed when
showing a conversation, improving loading perf a bit for large
conversations.

See #230
2019-11-27 11:17:04 +11:00
Michael Gratton
6c57839ddf Fix remote resource blocking with shared processes
Now that a shared WebKitUserContentManager is shared between web views,
the old "load a JS file when remote resource loading is allowed" doesn't
work any more. Instead, set a variable on the frame's window object
in the web extension notified that a new page has been loaded, and
use that instead.
2019-11-26 19:37:49 +11:00
Michael Gratton
ceb9c9764a Rename ClientWebView to Components.WebView per code style 2019-11-26 14:26:03 +11:00
Michael Gratton
259ebe50fd Re-implement single key shortcuts as a preference
Add new `single-key-shortcuts` GSetting, Application.Configuration
property and add UI for it in the Preferences window. When enabled,
load in new `single-key-shortcuts.css` file that has the appropriate
bindings. Update bindings to match Google's current set, and update
shortcut help to match.
2019-11-21 02:36:09 +11:00
Michael Gratton
e11e2bd279 Convert prefs dialog to a HdyPreferencesWindow
Move it to the Components package, use libhandy preferences widgets
for the UI.
2019-11-20 23:16:55 +11:00
Michael Gratton
239fdce562 Move MainWindow to Application package
Move MainWindow out of the root namespace and add it to Application,
so it can privately share internal state with the Controller. Rename
the source and UI files to match.
2019-11-17 21:38:33 +11:00
Michael Gratton
de6ef699de Clean up attachment save code
Create new Application.AttachmentManager class and move code for saving
attachments there from both Application.Controller and MainWindow since
aside from needing the latter for dialogs it is independent of both.

Create new Components.AttachmentPane widget for diplaying attachents
for an email in the ConversationViewer.

Update ConversationEmail and ConversationMessage to use these two new
classes directly, rather than implementing save management itself or
requiring the MainWindow to wire up signals on these classes.
2019-11-07 11:58:55 +11:00
Michael Gratton
d5e7c05cba Move InAppNotification class to components package
It was the last class left in notifications, so not much point keeping
it there. Also take the opportunity to add it to a package proper.
2019-09-27 19:37:33 +10:00
Michael Gratton
6f65062219 Convert ProblemReportDialog to use Inspector views
Aside from the code re-use, this allows including log files in problem
reports.
2019-07-05 13:00:11 +10:00
Michael Gratton
2841cb0b66 Break up Inspector's panes into seperate components for re-use
Create new InspectorLogView and InspectorSystemView classes abd UI, move
code from inspector into those and use them in the inspector.
2019-07-05 13:00:11 +10:00
Michael Gratton
6234405e4f Merge branch 'wip/geary-inspector' into 'mainline'
Add an Inspector to Geary

See merge request GNOME/geary!199
2019-04-08 09:26:05 +00:00
Michael Gratton
ae4d7655b0 Add basic Geary Inspector, hook it up to Alt+Shift+I 2019-04-08 18:05:03 +10:00
Michael Gratton
680f46c77a Add initial contact popover UI and implementation 2019-04-08 10:22:58 +10:00
Michael Gratton
9ed81ed759 Remove default instance of ClientWebView's PageState JS object
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
2019-03-06 20:11:33 +11:00
p3732
161aa2a818 Retire app menu
Removing the app menu, see https://gitlab.gnome.org/GNOME/Initiatives/issues/4
2019-02-24 16:19:07 +11:00
Michael Gratton
bd960dcaf5 Make EmptyPlaceholder more generally useful and rename to fit style 2019-01-21 10:29:15 +10:30
Michael Gratton
fdb9243ae5 Move common account editor pane in-app notification impl to the editor
This moves the individual in-app notification implementation on each of
the editor panes to the editor itself, reducing redundancy and allowing
the editor to issue notifications if needed (spoiler: it will).
2019-01-09 13:30:50 +11:00
Michael Gratton
4ef81050f5 Show details for status-based service problems
This breaks out the problem details dialog out into a seperate class so
it can be used for both problem reports and status problems. Pass in any
service errors to the main window when updating account status, show a
Details button on the service status info bar and show the details
dialog when clicked.
2019-01-07 23:47:00 +11:00
Michael Gratton
b5f6594448 Remove old accounts editor UI files 2018-12-21 10:03:47 +11:00
Michael James Gratton
b8213b5b86 Add initial replacement account creation pane. 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
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
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
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