| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
More mail API churn... reversing some previous API decisions.
I've made some key API changes to EMailSession on the account-mgmt
branch which should allow for this, and will hopefully also benefit
the "email-factory" branch.
EMailBackend barely needs to exist anymore, except as the owner of
EMailSession.
For several low-level functions, we replace its EMailBackend parameter
with EMailSession and EAlertSink parameters; the latter so it can still
pass user alerts up the chain.
|
| |
|
| |
|
|\
| |
| |
| |
| | |
Conflicts:
mail/e-mail-paned-view.c
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Means EMailBrowser no longer has to.
Also, EMailReader now provides a default implementation for
get_alert_sink() which just calls get_preview_pane() and casts.
|
| |
| |
| |
| |
| | |
Also give EMailReader::show-search-bar signal a default implementation,
since it can now dig up the search bar widget itself.
|
| |
| |
| |
| | |
Emitted when the CamelMimeMessage has been obtained.
|
| |
| |
| |
| | |
Replaces e_mail_reader_mark_as_read().
|
| | |
|
| | |
|
|\| |
|
| | |
|
| | |
|
| | |
|
|\| |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Drop EMFolderTreeModel's "session" property now that it has a "backend"
property and call em_folder_tree_model_set_backend() where we used to
call em_folder_tree_model_set_session().
The session can still be obtained through e_mail_backend_get_session().
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
There was never a bug filed for this, but some mailing list discussion:
http://mail.gnome.org/archives/evolution-list/2011-August/msg00084.html
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Also, minimize the EMFolderSelector API by removing frivolous wrapper
functions and unused functions.
|
| |
| |
| |
| |
| |
| |
| |
| | |
All this so EMFolderTree can submit EActivity instances for async ops.
You can obtain an EMailSession from an EMailBackend, but not vice versa.
Creates lots of pretty ripples in the mail code, but ultimately reduces
complexity. So it's a code cleanup of sorts.
|
| |
| |
| |
| |
| | |
Now that we're configuring EMailReader instances from an idle callback,
we can safely store the forward and reply styles in the private struct.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add an action group for Search Folders to EMailReader. The action
group's visibility is bound to the "mail-enable-search-folders" setting,
so that menu items related to Search Folders are hidden when Search
Folders are disabled in GConf.
Affected menu items are:
Edit -> Search Folders
Message -> Create Rule -> Search Folder from Subject...
Message -> Create Rule -> Search Folder from Sender...
Message -> Create Rule -> Search Folder from Recipients...
Message -> Create Rule -> Search Folder from Mailing List...
Search -> Create Search Folder From Search...
|
| |
| |
| |
| |
| |
| | |
Use an enum type to request different action groups. For now we just
have E_MAIL_READER_ACTION_GROUP_STANDARD. EMailReader implementations
should map the enum value to an appropriate GtkActionGroup.
|
| |
| |
| |
| | |
Use e_mail_folder_save_messages() instead.
|
| |
| |
| |
| | |
Use e_mail_folder_remove_attachments() instead.
|
| |
| |
| |
| | |
Now uses camel_folder_get_message().
|
| |
| |
| |
| | |
Now uses camel_folder_get_message().
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
No more fetching a message itself. Oh, and stop unreffing the message.
Those kinds of insane semantics are what lead to crashes.
|
| |
| |
| |
| |
| | |
Now fetches the message itself using camel_folder_get_message(),
then calls em_utils_redirect_message().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Configuring and submitting an EActivity for every mail operation is
getting tedious. This function helps reduce boilerplate code by:
* Creating a new EActivity instance.
* Installing an EAlertSink using e_mail_reader_get_alert_sink().
* Installing a GCancellable (which is really a CamelOperation).
* Submitting the activity via e_shell_backend_add_activity().
I'm considering adding a similar function (or class method) for
EShellView. Not sure yet...
|
| | |
|
| |
| |
| |
| | |
Now uses e_mail_folder_get_multiple_messages().
|
| |
| |
| |
| |
| | |
Now uses e_mail_folder_build_attachment() and
e_mail_folder_get_multiple_messages().
|
| |
| |
| |
| | |
Now uses e_mail_folder_find_duplicate_messages().
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Instead call e_mail_reader_get_folder() and, if you really need to,
generate the folder URI with e_mail_folder_uri_from_folder().
|
| | |
|
| |
| |
| |
| |
| | |
Pass CamelFolder objects instead, which are already available at almost
every call site.
|
| |
| |
| |
| | |
Take a CamelFolder instead of a folder URI string.
|
| |
| |
| |
| |
| | |
Don't call em_utils_folder_is_drafts() or em_utils_folder_is_outbox() if
the CamelFolder is NULL.
|
| |
| |
| |
| | |
Mostly dead assignments.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Function is no longer used, or wanted.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This one's a little involved:
- EMailShellView now obtains a CamelFolder itself in response to
EMFolderTree::folder-selected signals. Uses EActivity to do so.
- Revise EMFolderTree::folder-selected signal arguments to be more
useful: emit a CamelStore object instead of a folder URI.
- Also revise EMFolderTree::folder-activiated signal arguments the
same way while we're at it.
- Remove the "folder_uri" argument from e_mail_reader_set_folder().
If you have a CamelFolder object you can obtain the URI string by
calling camel_folder_get_uri().
|
| |
| |
| |
| |
| | |
Switching between mail folders in offline mode produces lots of
annoying alerts for operations we shouldn't even be attempting.
|
| | |
|
| |
| |
| |
| | |
Prefer the newer GtkAction "set" functions over g_object_set().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With lockdown settings available through GSettings, widgets can handle
lockdown integration themselves without having to use EShellSettings.
Also fixed a few places where printing or save-to-disk actions were
either not properly wired up or not responding to lockdown settings,
but much more work needs done. Attachments, for example, are not
honoring the disable-save-to-disk setting at all.
This too requires the recently-added gsettings-desktop-schemas
dependency.
|
| |
| |
| |
| |
| |
| |
| | |
Add e_alert_dialog_get_content_area(), which returns the GtkVBox
containing the primary and secondary labels. Use this instead of
gtk_dialog_get_content_area() to maintain the dialog's left margin
beneath the image.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Lockdown keys have moved to gsettings-desktop-schemas, so disable
lockdown integration until we're ready for GSettings.
|
| |
| |
| |
| | |
GCC learned how to find dead assignments.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Per request of bug #635414
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of mail_get_messagex(), call camel_folder_get_message() and
submit an EActivity to the shell backend. EMailReader now uses the
activity's GCancellable to cancel the previous retrieval operation
when the user selects a different message.
Eliminates the last call to mail_get_messagex().
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
There was never a bug filed for this, but some mailing list discussion:
http://mail.gnome.org/archives/evolution-list/2011-August/msg00084.html
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Also, minimize the EMFolderSelector API by removing frivolous wrapper
functions and unused functions.
|
| |
| |
| |
| |
| |
| |
| |
| | |
All this so EMFolderTree can submit EActivity instances for async ops.
You can obtain an EMailSession from an EMailBackend, but not vice versa.
Creates lots of pretty ripples in the mail code, but ultimately reduces
complexity. So it's a code cleanup of sorts.
|
| |
| |
| |
| |
| | |
Now that we're configuring EMailReader instances from an idle callback,
we can safely store the forward and reply styles in the private struct.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add an action group for Search Folders to EMailReader. The action
group's visibility is bound to the "mail-enable-search-folders" setting,
so that menu items related to Search Folders are hidden when Search
Folders are disabled in GConf.
Affected menu items are:
Edit -> Search Folders
Message -> Create Rule -> Search Folder from Subject...
Message -> Create Rule -> Search Folder from Sender...
Message -> Create Rule -> Search Folder from Recipients...
Message -> Create Rule -> Search Folder from Mailing List...
Search -> Create Search Folder From Search...
|
| |
| |
| |
| |
| |
| | |
Use an enum type to request different action groups. For now we just
have E_MAIL_READER_ACTION_GROUP_STANDARD. EMailReader implementations
should map the enum value to an appropriate GtkActionGroup.
|
| |
| |
| |
| | |
Use e_mail_folder_save_messages() instead.
|
| |
| |
| |
| | |
Use e_mail_folder_remove_attachments() instead.
|
| |
| |
| |
| | |
Now uses camel_folder_get_message().
|
| |
| |
| |
| | |
Now uses camel_folder_get_message().
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
No more fetching a message itself. Oh, and stop unreffing the message.
Those kinds of insane semantics are what lead to crashes.
|
| |
| |
| |
| |
| | |
Now fetches the message itself using camel_folder_get_message(),
then calls em_utils_redirect_message().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Configuring and submitting an EActivity for every mail operation is
getting tedious. This function helps reduce boilerplate code by:
* Creating a new EActivity instance.
* Installing an EAlertSink using e_mail_reader_get_alert_sink().
* Installing a GCancellable (which is really a CamelOperation).
* Submitting the activity via e_shell_backend_add_activity().
I'm considering adding a similar function (or class method) for
EShellView. Not sure yet...
|
| | |
|
| |
| |
| |
| | |
Now uses e_mail_folder_get_multiple_messages().
|
| |
| |
| |
| |
| | |
Now uses e_mail_folder_build_attachment() and
e_mail_folder_get_multiple_messages().
|
| |
| |
| |
| | |
Now uses e_mail_folder_find_duplicate_messages().
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Instead call e_mail_reader_get_folder() and, if you really need to,
generate the folder URI with e_mail_folder_uri_from_folder().
|
| | |
|
| |
| |
| |
| |
| | |
Pass CamelFolder objects instead, which are already available at almost
every call site.
|
| |
| |
| |
| | |
Take a CamelFolder instead of a folder URI string.
|
| |
| |
| |
| |
| | |
Don't call em_utils_folder_is_drafts() or em_utils_folder_is_outbox() if
the CamelFolder is NULL.
|
| |
| |
| |
| | |
Mostly dead assignments.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Function is no longer used, or wanted.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This one's a little involved:
- EMailShellView now obtains a CamelFolder itself in response to
EMFolderTree::folder-selected signals. Uses EActivity to do so.
- Revise EMFolderTree::folder-selected signal arguments to be more
useful: emit a CamelStore object instead of a folder URI.
- Also revise EMFolderTree::folder-activiated signal arguments the
same way while we're at it.
- Remove the "folder_uri" argument from e_mail_reader_set_folder().
If you have a CamelFolder object you can obtain the URI string by
calling camel_folder_get_uri().
|
| |
| |
| |
| |
| | |
Switching between mail folders in offline mode produces lots of
annoying alerts for operations we shouldn't even be attempting.
|
| | |
|
| |
| |
| |
| | |
Prefer the newer GtkAction "set" functions over g_object_set().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With lockdown settings available through GSettings, widgets can handle
lockdown integration themselves without having to use EShellSettings.
Also fixed a few places where printing or save-to-disk actions were
either not properly wired up or not responding to lockdown settings,
but much more work needs done. Attachments, for example, are not
honoring the disable-save-to-disk setting at all.
This too requires the recently-added gsettings-desktop-schemas
dependency.
|
| |
| |
| |
| |
| |
| |
| | |
Add e_alert_dialog_get_content_area(), which returns the GtkVBox
containing the primary and secondary labels. Use this instead of
gtk_dialog_get_content_area() to maintain the dialog's left margin
beneath the image.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Lockdown keys have moved to gsettings-desktop-schemas, so disable
lockdown integration until we're ready for GSettings.
|
| |
| |
| |
| | |
GCC learned how to find dead assignments.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Per request of bug #635414
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
| |
Instead of mail_get_messagex(), call camel_folder_get_message() and
submit an EActivity to the shell backend. EMailReader now uses the
activity's GCancellable to cancel the previous retrieval operation
when the user selects a different message.
Eliminates the last call to mail_get_messagex().
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To reduce GConf usage in em-composer-utils.c:
- Relevant functions in em-composer-utils.c now take arguments for
reply and forward styles.
- Redundant forwarding functions were removed:
em_utils_forward_attached()
em_utils_forward_inline()
em_utils_forward_quoted()
- EMailReader now has "forward-style" and "reply-style" properties,
which get bound to the appropriate EShellSettings properties in
modules/mail/e-mail-config-reader.c. These same EShellSettings
properties are bound to the combo boxes in Composer Preferences.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This marks the end of unintrusive error dialogs, which were too
unintrusive. We now show errors directly in the main window using
the EAlert / EAlertSink framework.
|
|
|
|
|
|
| |
GObject now does property bindings itself.
Requires GLib >= 2.26.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'Send' and 'Save Draft' are now asynchronous and run outside of
Evolution's MailMsg infrastructure.
Add an EActivityBar to the composer window so these asynchronous
operations can be tracked and cancelled even in the absense of a main
window. Also add an EAlertBar to the composer window so error messages
can be shown directly in the window.
Instead of calling e_alert_dialog_run_for_args(), call e_alert_submit()
and pass the EMsgComposer as the widget argument. The EMsgComposer will
decide whether to show an EAlertDialog or use the EAlertBar, depending
on the GtkMessageType of the alert.
|
|
|
|
|
|
|
|
|
|
|
| |
Global variables in shared libraries are a bad idea. EMailBackend now
owns the MailSession instance, which is actually now EMailSession.
Move the blocking utility functions in mail-tools.c to e-mail-session.c
and add asynchronous variants. Same approach as Camel.
Replace EMailReader.get_shell_backend() with EMailReader.get_backend(),
which returns an EMailBackend. Easier access to the EMailSession.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
In GTK+ 2.21.8, the keysym names were renamed from GDK_* to GDK_KEY_*.
I've added backward-compatibility macors to gtk-compat.h, which can be
dumped as soon as we require GTK+ >= 2.22.0.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EMailShellContent implements the EMailReader interface but acts as a
proxy for EMailPanedView, from which it obtains MessageList and EWebView
widgets. The problem was both classes call e_mail_reader_init_private()
which connects to signals emitted from the MessageList and EWebView
widgets. But since EMailShellContent is a proxy for EMailPanedView,
the signals were being connected twice.
This commit does away with e_mail_reader_init_private(), instead adding
options to e_mail_reader_init() to control what parts of initialization
to run. It's an ugly and temporary hack.
I'm beginning to realize EMailReader is too bloated and needs rethought.
EMailReader should just manage actions. EMailView should own and manage
the widgets, and EMailReader should just have a get_mail_view() method
so it has access to those widgets. That way the EMailView subclasses
won't have to implement EMailReader themselves and wind up allocating
a bunch of duplicate, unused actions.
It's too close to a stable release to rip these interfaces apart and
reorganize them. I'll try to do that for 2.33 to help make the design
more intuitive.
|
|
|
|
|
|
|
| |
Prefer thread-safe G_DEFINE_TYPE and G_DEFINE_INTERFACE macros over
manual GType registration.
This is just a start... lots more to do.
|
| |
|
| |
|
|
|
|
| |
Reduce the composer's dependency on e_shell_get_default().
|
| |
|
|
|
|
|
|
| |
Control Up - Go to parent folder.
Control Shift Up/Down - prev/next tab
Control Shift w - close tab.
|
|
|
|
|
|
| |
This changes the behavior of the function: instead of redrawing
immediately it schedules the redraw from an idle callback. This
allows us to make multiple changes to EMFormat before redrawing.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Since e_mail_reader_get_formatter (the EMailNotebookView implementation) can
now return NULL we need to prevent that being passed into other functions.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=624867
|
| |
|
|
|
|
|
| |
David's solution is simpler: check if the HTML widget is mapped.
Avoids having to propagate the property to Srini's new classes.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
...with a dropdown menu like the Forward button, and configuration for
whether it tries to do 'Reply to List' by default.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
1: em_utils_reply_to_message() can be passed a newly-created message (from
a current selection. It needs to unref it. Which means that when we pass it
a message which *isn't* newly-created, we have to obtain a ref of our own.
It was that or add a boolean parameter to tell it whether to unref or not.
2: emf_finalize() wasn't unreferencing emf->message -- so when we clone
the EMFormat in em_utils_message_to_html() and immediately unreference the
clone, a refcount on the message got leaked. Fix emf_finalize() to unref
emf->message as presumably it should.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
EMFormatHTML now holds a sealed EWebView instead of a public GtkHTML,
accessible through em_format_html_get_web_view().
Rename e_mail_reader_get_html_display() to e_mail_reader_get_formatter()
and have it return an EMFormatHTML instead of an EMFormatHTMLDisplay,
since that's usually the type you want (or else an EMFormat, but never
an EMFormatHTMLDisplay).
|
| |
|
|
|
|
|
|
|
| |
This reverts commit 43e2c871a418b560b391af00df2b10896055026c.
Correct icon name is "mail-mark-notjunk". The previous fix got
clobbered by the express2 merge.
|
| |
|
|\ |
|
| | |
|
| |\ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Closing an EMailBrowser window causes it to be disposed immediately,
but ongoing async operations still hold an EMailBrowser reference --
in particular, regenerating the internal message list and fetching a
mail message. The callback functions for these operations were not
equipped to deal with the disposed-but-not-yet-finalized object.
|
| |\| |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit edf6286a38279e6db82dee4da50e94c587f06e02.
gnome-icon-theme got it wrong, not us. See bug #616954.
|
| | |
| | |
| | |
| | | |
mail-mark-notjunk -> mail-mark-not-junk
|
| | |
| | |
| | |
| | | |
mail-mark-notjunk -> mail-mark-not-junk
|
| |\|
| | |
| | |
| | |
| | |
| | | |
Note that express2 got some documentation for EExtensible and friends,
and that documentation is not in gnome-2-30 yet. We need to cherry-pick
those commits into gnome-2-30 and elsewhere.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add a load_string() method to EWebView. Have EMailDisplay override
load_string() and check that the formatter is not busy before loading
the string. Have EMailReader call e_web_view_load_string() directly
on the EMailDisplay instance, and eliminate update_webview_content().
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make EWebView extensible and register an extension to automatically
bind every EWebView instance to the appropriate EShellSettings.
Conflicts:
widgets/misc/e-web-view.c
|
| |/
| |
| |
| |
| | |
Make EMFormatHTML extensible and register an extension to automatically
bind every EMFormatHTML instance to the appropriate EShellSettings.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Closing an EMailBrowser window causes it to be disposed immediately,
but ongoing async operations still hold an EMailBrowser reference --
in particular, regenerating the internal message list and fetching a
mail message. The callback functions for these operations were not
equipped to deal with the disposed-but-not-yet-finalized object.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
This reverts commit edf6286a38279e6db82dee4da50e94c587f06e02.
gnome-icon-theme got it wrong, not us. See bug #616954.
|
| | |
|
| | |
|
| |
| |
| |
| | |
mail-mark-notjunk -> mail-mark-not-junk
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Add a load_string() method to EWebView. Have EMailDisplay override
load_string() and check that the formatter is not busy before loading
the string. Have EMailReader call e_web_view_load_string() directly
on the EMailDisplay instance, and eliminate update_webview_content().
|
| |
| |
| |
| |
| | |
Make EWebView extensible and register an extension to automatically
bind every EWebView instance to the appropriate EShellSettings.
|
| | |
|
|/
|
|
|
| |
Make EMFormatHTML extensible and register an extension to automatically
bind every EMFormatHTML instance to the appropriate EShellSettings.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add a private struct to the EMailReader interface so it's easier to
track state data like timeout or operation IDs, flags, etc.
This is similar to private sections of a class instance, except the
struct is created on-demand and stored as an opaque, named pointer on
the GObject with a "destroy" callback that runs during finalization.
All this is hidden behind a simple E_MAIL_READER_GET_PRIVATE macro.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EFocusTracker tracks the input focus within a window and helps keep
the sensitivity of "selectable" actions in the main menu up-to-date.
Selectable actions include Cut, Copy, Paste, Select All and Delete.
EFocusTracker has built-in support for widgets that implement the
GtkEditable interface such as GtkEntry and GtkTextView. It also
supports custom widgets that implement the ESelectable interface,
which is a subset of GtkEditable and can apply to anything that
displays selectable content (esp. tree views and ETables).
This commit integrates EFocusTracker with EShellWindow, CompEditor,
EMsgComposer, and ESignatureManager.
It also bumps the GtkHTML requirement to 2.29.5 to utilize the new
GtkhtmlEditor:html constructor property.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Kill ETreeScrolled and convert MessageList to an ETree subclass.
ETreeScrolled is nothing but a GtkScrolledWindow containing an ETree.
It adds nothing of value and actually makes customizing ETree harder.
|
|
|
|
|
|
|
|
| |
Adds the following methods:
CamelFolder * (*get_folder) (EMailReader *reader);
const gchar * (*get_folder_uri) (EMailReader *reader);
GPtrArray * (*get_selected_uids) (EMailReader *reader);
|
|
|
|
| |
Use em_utils_uids_free() instead.
|
| |
|
| |
|
| |
|
|
|
|
| |
This helps further isolate direct GtkHTML API usage to EWebView.
|
| |
|
| |
|