| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Apparently not required anymore, and was actually causing embedded
widgets for attachments to malfunction when collapsed and expanded
again -- particularly audio attachments.
|
|
|
|
|
|
| |
None of my attachment samples invoke bind_iframe_content_visibility().
Both it and toggle_widget_visibility() appear to dead code. Removing
the functions causes no ill side-effects as far as I can tell.
|
| |
|
| |
|
| |
|
|
|
|
| |
on those operations
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Highlight a section of a mailing list post, click Reply, answer "Reply
Privately", Evolution mishandles the source message's reference count,
causing the message to finalize too early and crash in Camel.
|
| |
|
|
|
|
|
|
| |
Direct the focus away from the filter combo box so the next keyboard
event doesn't change the selected filter. The user is probably trying
to navigate search results.
|
| |
|
|
|
|
|
|
| |
This is a fixed version of the previously reverted commit.
Thanks to Daniel Mustieles García for tracking down the flaw.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 83ce49534bc02a574b77a4072fdb973f43db8acf.
This commit introduced a build break:
Error: Could not merge translations:
'NoneType' object has no attribute 'node'
make: *** [de/de.stamp] Error 1
|
| |
|
|
|
|
|
|
|
| |
Testing IMAP NOTIFY and folder renames, I observed a "folder-created"
signal emission before the "folder-renamed" signal emission. So the
renamed folder already exists in the tree model when we receive the
"folder-renamed" signal. Make sure we handle that sanely.
|
|
|
|
| |
store_info_unref() already disconnects the signal handlers one by one.
|
|
|
|
| |
Simply do not change selection when the dialog is already shown.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
List only the current development team.
|
| |
|
|
|
|
|
|
|
| |
When using "make -j [N > 1]", the install-icons/uninstall-icons and
update-icon-cache make targets were running concurrently. Move the
icon cache updating to data/Makefile.am to ensure it runs AFTER the
icons are installed or uninstalled.
|
| |
|
|
|
|
|
|
| |
This adds a "close-alert" signal to EShellWindow, which is bound to
GDK_KEY_Escape. The default handler closes view-specific alerts first,
then global alerts.
|
|
|
|
|
| |
Closes the active EAlert and returns TRUE, or else returns FALSE if
there is no active EAlert.
|
| |
|
| |
|
|
|
|
|
|
| |
While all the code references fill_color_rgba, the object itself
defined property's name "fill_rgba", which produced runtime
warnings and misbehavior.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
An address book editor error was shown about active EShell's window,
which means switching to other application and back made the editor
in the background, but, more importantly, the editor could be
selected and the error was in the background, thus it seemed like
being stuck, it didn't respond to any button click, until the error
was dismissed.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Commit 514736f27efeac6d5ad42e055ebabb423d243fb2 in 3.9.5 broke inline
PGP encrypted messages, because the parser was treating the encrypted
message content as an attachment even though the content type is just
text/plain. This ensures the message content is treated correctly.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Configures the EActivity to submit alerts to the EPreviewPane.
|
| |
|
| |
|
|
|
|
|
|
| |
There's now enough hooks in EWebView that it can take over image saving
from EMailDisplay / EMailReader, with the added perk that a "Save Image"
pop-up menu item now appears for images in ALL preview panes.
|
|
|
|
|
| |
Prompts the user to choose a destination file and then asynchronously
saves the image under the cursor to the destination file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Asynchronously copies the image under the cursor to the clipboard.
This replaces the "cursor-image" property, which attempts to match the
image URI to a subresource from WebKitWebDataSource. The problem with
that approach is EMailDisplay redirects several URI schemes to its own
custom request handlers which further mutate the URI. So for example,
a text/html message may use a "cid:" URI to refer to an embedded image,
which EMailDisplay transforms to a "mail:" URI and finally to a "data:"
URI. The final image URI might not be derivable from the original URI
without retracing the SoupRequest.
The "image-copy" action now calls e_web_view_cursor_image_copy().
This also adds an explicit requirement on gdk-pixbuf-2.0 >= 2.24 for
gdk_pixbuf_new_from_stream_async() / finish().
New functions:
e_web_view_cursor_image_copy()
Removed functions:
e_web_view_get_cursor_image()
e_web_view_set_cursor_image()
|
|
|
|
|
|
|
|
|
| |
Returns a new EActivity for an EWebView-related asynchronous operation,
and emits a "new-activity" signal. By default the EActivity comes loaded
with a GCancellable and sets the EWebView itself as the alert sink (which
means alerts are displayed directly in the content area). The signal
emission allows the EActivity to be further customized and/or tracked by
the application.
|
|
|
|
|
|
|
|
|
|
|
| |
Asynchronously requests data at a URI by way of a SoupRequest to WebKit's
default SoupSession, incorporating both e_web_view_redirect_uri() and the
custom request handlers installed via e_web_view_install_request_handler().
New functions:
e_web_view_request()
e_web_view_request_finish()
|
|
|
|
|
|
|
|
|
|
|
| |
Attempts to derive a suggested filename from the given URI for use in a
"Save As" dialog.
By default the suggested filename is the last path segment of the given
URI (the unless the given URI looks like a query), but subclasses can use
other mechanisms for custom URI schemes. For example, "cid:" URIs in an
email message may refer to a MIME part with a suggested filename in its
Content-Disposition header.
|
|
|
|
|
|
|
|
|
|
| |
Replaces the given URI with a redirected URI as necessary, primarily for
use with custom SoupRequest handlers. Typically this function would be
called just prior to handing a request off to a SoupSession, such as
from a WebKitWebView "resource-request-starting" signal handler.
Case in point: EMailDisplay now implements the redirect_uri() method,
and calls it from its own "resource-request-starting" signal handler.
|
|
|
|
|
|
|
| |
Trivial wrapper for webkit_web_view_get_uri().
Probably made sense while we were transitioning from GtkHTML to WebKit,
but we don't need it anymore.
|
| |
|
| |
|
|
|
|
| |
Not worth having dedicated EWebView APIs for this.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't expose public API for this.
Even though it's still possible through the WebKitWebView API, we don't
want to encourage setting an arbitrary WebKitWebSettings on an EWebView.
Removed functions:
e_web_view_set_settings()
e_web_view_get_default_settings()
|
| |
|
|
|
|
|
|
| |
Rename to e_mail_display_set_part_list().
Function takes an EMailPartList, not an "EMailPartsList".
|
|
|
|
|
|
| |
Rename to e_mail_display_get_part_list().
Function returns an EMailPartList, not an "EMailPartsList".
|
| |
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=386113
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Any provider can return a generic error code, which makes the check
useless, only hiding important error information from a user. Since
the camel_getaddrinfo() returns CAMEL_SERVICE_ERROR_URL_INVALID,
the check could be adapted and be more useful.
|
|
|
|
|
|
|
|
|
|
| |
Connect to the GtkComboBox::changed signal after all candidates are
added, to avoid calling e_source_config_check_complete() before the
candidate has been told to insert widgets. This can cause run-time
warnings such as:
(evolution:7106): evolution-cal-config-webcal-CRITICAL **:
cal_config_webcal_check_complete: assertion `context != NULL' failed
|
| |
|
| |
|
| |
|
|
|
|
| |
Same issue as in bug 703991, just in a different place.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Avoid disconnecting signal handlers through searches since we can't be
sure what else it might disconnect.
|
| |
|
|
|
|
| |
Return type is a boolean, not an integer count.
|
| |
|
|
|
|
|
|
|
| |
* Use GIO-style async parameters.
* Add mail_folder_cache_note_store_finish().
* Do the bulk of the work in a thread so the logic is more readable.
* Queue multiple calls for the same CamelStore and share the results.
|
|
|
|
| |
Mostly for symmetry with e_mail_store_go_online_sync().
|
|
|
|
| |
Need for new mail_folder_cache_note_store() implementation.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
So subclasses can safely chain up without checking for NULL.
|
| |
|
|
|
|
|
|
|
|
| |
Apparently the migration logic was more complex than it needed to be.
The old numeric key was already synced to the EMailReplyStyle enum in
the source code. Dunno where I got the idea it wasn't.
Just more evidence numeric enum keys are bad.
|
|
|
|
|
| |
Directly indicate the signal ID to be emitted from the update callback
instead of playing silly games with boolean flags.
|
|
|
|
|
|
|
|
|
|
| |
* Stop using recursive mutexes.
* Give StoreInfo a reference count.
* Give FolderInfo a reference count.
* Track CamelFolders with GWeakRef instead of weak pointers.
* Submit updates directly to the GMainContext, like we do in EDS,
instead of dequeuing them all from a single idle callback that
we then have to track.
|
|
|
|
|
| |
The "stores" hash table is created on instance init and destroyed with
the cache itself. It is never NULL during MailFolderCache's lifetime.
|
|
|
|
|
|
|
|
| |
Take a CamelStore and folder name instead of a CamelFolder.
CamelStore and folder name can easily be obtained from either a folder
URI or a CamelFolder instance, and the function is more efficient with
separate parameters.
|
|
|
|
|
|
|
|
| |
Replaces mail_folder_cache_get_folder_from_uri().
Returns the CamelFolder for the CamelStore and folder name if available,
or else NULL if a CamelFolder instance is not yet cached. This function
does not block.
|
|
|
|
|
|
|
|
|
| |
Returns whether MailFolderCache has information about the folder
described by the CamelStore and folder name. This does not necessarily
mean it has the CamelFolder instance, but it at least has some meta-data
about it.
You can use this function as a folder existence test.
|
|
|
|
|
|
| |
New functions:
mail_folder_cache_ref_main_context()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I considered replacing the "session" property with a "registry"
property, but that just complicates application startup even more.
Fact is, if we have a CamelStore then we can get the CamelSession
and even the ESourceRegistry from it. Kinda dirty, but works.
It goes a little something like this...
camel_service = CAMEL_SERVICE (camel_store);
camel_session = camel_service_get_session (camel_service);
mail_session = E_MAIL_SESSION (camel_session);
registry = e_mail_session_get_registry (mail_session);
Removed functions:
mail_folder_cache_get_session()
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
I've got UI freeze in a call of e_book_client_view_stop() on contact
store dispose, caused by synchronous D-Bus call. Doing the call
in a dedicated thread makes no UI freeze here.
|
| |
|
| |
|
|
|
|
|
| |
We were leaking the EActivity. Wonder if this is the mystery activity
that's been blocking application shutdown lately.
|
|
|
|
| |
No longer used.
|
|
|
|
|
|
|
|
| |
We were using g_object_get() to write an "unsigned int" value (at least
32 bits) into a 16-bit integer address.
Don't know why we were bothering with g_object_get() in the first place,
just call camel_network_settings_get_port() instead.
|
|
|
|
|
|
|
| |
A resize abort of an event's end time in a day view didn't restore
original event size, because the drawing function updated event's
structure, when it should not. The resize of a start time could be
aborted without any problem.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
My previous patch didn't go far enough to repair an already-corrupted
"show-headers" key. Need to actually reset it to its default value if
the "headers" key is empty.
|
|
|
|
|
| |
The list of minicards in reflow is populated on demand, and this was
a place where the demand was not satisfied, if it was missing.
|
|
|
|
|
|
| |
Unfinished undo framework from ages past.
Nice idea I guess, but not worth the complexity.
|
|
|
|
|
|
|
|
|
|
| |
Simo Sorce sent me an interesting case where the MIME type of the
message itself was image/gif, but the image was not being shown.
If the EMailPart representing the message body is marked as an
attachment, wrap it as such so it gets added to the attachment
bar but also set the "force_inline" flag since it doesn't make
sense to collapse the message body if we can render it. */
|
|
|
|
|
|
|
|
| |
nautilus-sendto has been stripped of its usefulness in GNOME 3.8.
It no longer has a UI of its own, it just immediately spawns a mail
client with a set of files as attachment arguments for a new message.
There's no reason for Evolution to be invoking it anymore.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SpamAssassin is clearly not intended for use by mail clients, as
evidenced by the number of backflips Evolution's SA module still has to
do just to detect the presence and nature of a running spamd (a problem
which D-Bus solved a decade ago), and recent SA developer comments.
In lieu of removing SA support entirely, remove all the crazy GSettings
that are (thankfully) not exposed in the UI and relegate Evolution's SA
integration to only the most basic usage (spamassassin / sa-learn).
Users are better off with Bogofilter anyway. Leave SpamAssassin for
mail servers.
|
|
|
|
|
|
|
|
| |
Nudging EPlugin closer to full removal.
Nothing in Evolution uses this anymore and 3rd-party plugins should be
using EShell's "event::ready-to-start" signal or else GApplication's
"startup" signal.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Declare the instance and class structs normally so Gtk-Doc can make
sense of it.
|
|
|
|
|
| |
Declare the instance and class structs normally so Gtk-Doc can make
sense of it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Evolution is still occasionally getting stuck on shutdown, and although
the evolution-shell log domain shows debug messages for activities that
are preventing shutdown, they frequently look like this:
(evolution:13534): evolution-shell-DEBUG: 5 active 'mail' activities:
(evolution:13534): evolution-shell-DEBUG: * (no description)
(evolution:13534): evolution-shell-DEBUG: * (no description)
(evolution:13534): evolution-shell-DEBUG: * (no description)
(evolution:13534): evolution-shell-DEBUG: * (no description)
(evolution:13534): evolution-shell-DEBUG: * (no description)
I think the lack of descriptions is from CamelOperations popping all
their pushed messages, which is correct behavior but doesn't help us
debug the problem.
e_activity_get_last_known_text() returns the most recent _non-empty_
text value set on the EActivity. So our debug message can fall back
to that if the EActivity has no description at shutdown:
(evolution:13534): evolution-shell-DEBUG: * (was "blah, blah, blah")
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
|
|
|
|
|
|
|
| |
gal_view_collection_new() now takes system and user directory arguments
and loads GalViews during instance initialization.
Removed functions:
gal_view_collection_set_storage_directories()
gal_view_collection_load()
gal_view_collection_loaded()
|
|
|
|
|
|
|
|
| |
EShellView no longer needs help from subclasses other than getting
the needed GalView subclasses registered.
A nice side-effect of this is EShellView subclasses can now use the
G_DEFINE_DYNAMIC_TYPE macro.
|
|
|
|
|
|
| |
No longer needed. Instead, use g_type_ensure() to ensure the necessary
GalView subclasses are registered in the GType system before loading a
GalViewCollection. Best place to ensure types is from GClassInitFunc.
|
|
|
|
|
|
|
|
|
| |
Given a type code string from an XML file, find the appropriate GType by
traversing the GType hierarchy from GAL_TYPE_VIEW and checking the class
structures for a matching type code string.
This completely eliminates the need for what's left of GalViewFactory.
Now it's just a matter of cleaning up the remains.
|
| |
|
| |
|
|
|
|
|
|
| |
GalViewInstance and EMailPanedView need access. Currently they're just
using the public GalViewCollection members directly, but those are about
to be sealed up.
|
|
|
|
|
|
|
|
|
|
| |
Just readable for now, but I plan to make it also construct-only.
(Despite the precendence, I prefer "user" over "local" for the name.)
New functions:
gal_view_collection_get_user_directory()
|
|
|
|
|
|
|
|
| |
Just readable for now, but I plan to make it also construct-only.
New functions:
gal_view_collection_get_system_directory()
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
It's set by EShellView but not actually used for anything.
Removed functions:
gal_view_collection_set_title()
|
|
|
|
|
|
| |
Removed functions:
gal_view_collection_display_view()
|
|
|
|
|
| |
GalViewFactory can now use its "gal_view_type" class member to
instantiate an appropriate GalView without help from subclasses.
|
|
|
|
|
| |
GalViewFactory can now use its "gal_view_type" class member to peek at
the appropriate GalViewClass and return its static "type_code" string.
|
|
|
|
|
|
|
| |
This is the GType of the GalView instances the factory creates.
Having this information will allow GalViewFactoryClass to do more itself
and be less reliant on subclasses.
|
|
|
|
|
| |
I suspect this will enable us to ditch GalViewFactory entirely once I
rework a few more things. We'll see though; one step at a time here.
|
|
|
|
|
|
| |
All GalView subclasses return a static string in their get_type_code()
methods, so replace the method with a static string pointer directly in
the class structure, and remove the "type-code" GalView property.
|
|
|
|
|
| |
It's better to have separate classes each with a fixed type code, than
one class with a variable type code. You'll see why in the next commit.
|
|
|
|
|
|
|
|
| |
No longer needed.
Removed functions:
gal_view_factory_etable_get_specification()
|
|
|
|
| |
Obtain the ETableState from the attached ETable or ETree as needed.
|
|
|
|
| |
No longer used.
|
|
|
|
|
|
|
| |
Instead, lazily load the state file once an ETable or ETree is attached,
since we need its ETableSpecification to create an ETableState instance.
This means GalViewFactoryEtable can lose its ETableSpecification too.
|
| |
|
|
|
|
|
| |
This replaces the get_title() and set_title() class methods, since
it's silly to defer to subclasses to track a simple string property.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
No longer used.
Removed functions:
gal_view_factory_get_title()
|
|
|
|
|
|
|
|
| |
No longer used.
Removed functions:
gal_view_edit()
|
|
|
|
| |
No longer user.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
|
|
|
|
|
|
|
| |
The "Define Views" dialog is nearly useless. Replace it with a "Delete
Current View" menu item which is only visible for custom views that have
been explicitly saved under a new name.
There's actually no loss of functionality with this commit. Although
some view management tasks now require more clicks, view management in
general is a seldom-used feature and I doubt the dialog's absence will
even be noticed by users, much less missed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EShellView now holds a reference to the active GalViewInstance. Where
applicable, the EShellView subclass is responsible for keeping this up
to date when the sidebar selection changes.
Holding a reference allows EShellView to implement common actions like
"Save Current View" directly instead pushing it on to subclasses.
New functions:
e_shell_view_get_view_instance
e_shell_view_set_view_instance
|
| |
|
| |
|
|
|
|
|
| |
The e_shell_content_get_view_id() and e_shell_content_set_view_id()
header file declarations have no implementation.
|
| |
|
|
|
|
|
| |
Added a comment to the page about a link from Seahorse, so that the
seahorse help is suitably changed if this page is renamed/deleted.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
e_table_specification_new() now takes a table specification filename and
a GError and parses the file as part of instance creation. If a file or
parse error occurs, e_table_specification_new() returns NULL.
This replaces e_table_specification_load_from_file().
New functions:
e_table_specification_get_filename()
Removed functions:
e_table_specification_load_from_file()
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
|
| |
Create our own ETableState and call e_table_state_load_from_string()
followed by e_tree_set_state_object().
|
|
|
|
|
| |
Use e_tree_get_state_object() and e_tree_set_state_object() instead to
transfer state info from one ETree instance to another.
|
|
|
|
|
|
| |
Use e_table_state_duplicate() and e_table_set_state_object().
Similarly for e_tree_set_state().
|
| |
|
| |
|
|
|
|
|
|
|
| |
No longer used outside of e-table-specification.c.
Its logic is merged into e_table_specification_load_from_file(), but
that too will be removed momentarily.
|
|
|
|
|
|
| |
Also remove e_tree_construct_from_spec_file().
Use e_tree_new() or e_tree_construct() instead.
|
|
|
|
|
|
| |
Also remove e_table_construct_from_spec_file().
Use e_table_new() or e_table_construct() instead.
|
|
|
|
|
| |
Creating an ETableSpecification is failable, so it's now up to the
caller to do that and handle errors before calling e_tree_new().
|
|
|
|
|
| |
Creating an ETableSpecification is failable, so it's now up to the
caller to do that and handle errors before calling e_table_new().
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
|
| |
The other parts of this UI still look ancient, but this is a good first
step. Plus we can remove a number of now-unused ETable-related classes.
|
|
|
|
|
| |
A new ETable column selection and ordering widget that looks like
it was written in the 21st century. Derives from ETreeViewFrame.
|
| |
|
| |
|