| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
These are defined in GtkhtmlEditor now (bug #681087).
|
|
|
|
|
|
|
|
|
| |
This came about from a mailing list thread entitled:
Sending photos from digKam: "Skipping suspicious attachment"
Apparently KDE still uses dot-folders quite heavily, despite having
helped draft the XDG Base Directory Specification.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
All mail-parsing and formatting code has been moved to em-format.
Parsing is handeled by EMailParser class, formatting by EMailFormatter.
Both classes have registry which hold extensions - simple classes
that do actual parsing and formatting. Each supported mime-type
has it's own parser and formatter extension class.
|
| |
|
| |
|
|
|
|
| |
Always call it immediately after g_simple_async_result_new().
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Our hidden file/directory blacklist went a little too far. Evolution
was blacklisting its own temporary files. This changes the blacklist
function to trust the user's own XDG Base Directories.
|
|
|
|
|
| |
Replace 8-space indentation with tab characters, and various other
automated cleanups.
|
|
|
|
| |
Pass it in instead of digging it out of EShellSettings.
|
|
|
|
| |
with GtkHtml
|
| |
|
| |
|
|
|
|
| |
libevolution-utils.
|
| |
|
| |
|
|
|
|
|
|
|
| |
GTK's file chooser dialog provides one-click access to recently used
documents now, so we can remove the redundancy from Evolution's mail
composer main menu and calendar component editor main menu and leave
it at "Insert -> Attachment".
|
| |
|
|
|
|
|
|
|
| |
These libraries are bound for E-D-S so they live at the lowest layer of
Evolution for now -- even libeutil can link to them (but please don't).
This is the first step toward moving mail handing to a D-Bus service.
|
|
|
|
| |
Prefer GObjectClass.constructed() over GObjectClass.constructor().
|
|
|
|
| |
Simplify the algorithms, trading efficiency for readability.
|
| |
|
| |
|
| |
|
|
|
|
| |
Apply it to all windows with persistent size and/or position.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Slightly more efficient and convenient than:
g_simple_async_result_set_from_error (simple, error);
g_error_free (error);
One less GError to copy and destroy.
|
|
|
|
|
|
| |
GtkFileChooser in GTK+ 3.2 now keeps track of the last-used-folder
itself, even across applications, so get out of its way and let it
handle it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I pushed a few EShell features up to GtkApplication for GTK+ 3.2,
so we can now trim off the redundancies in EShell.
1) GtkApplication has a new "window-added" signal which replaces
EShell's own "window-created" signal.
2) GtkApplication has a new "window-removed" signal which replaces
EShell's own "window-destroyed" signal.
3) gtk_application_get_windows() now returns a list of windows sorted
by most recently focused, replacing e_shell_get_watched_windows().
4) GtkApplication now provides enough hooks to subclasses that we can
remove e_shell_watch_window() and call gtk_application_add_window()
directly.
|
|
|
|
|
|
|
|
|
| |
We have a confusing array of nearly-identical CFLAGS/LIBS definitions in
configure.ac. Time to simplify. Instead let's just have one definition
that includes all the libraries provided by Evolution-Data-Server (incl.
Camel). That, in combination with GNOME_PLATFORM, gives us most of what
we need for compliation and linking, and we can sprinkle definitions for
additional library dependencies in Makefile.am's as needed.
|
|
|
|
|
|
| |
exfiltration
Through warning on attaching Hidden/security files by mailto command.
|
| |
|
|
|
|
|
| |
G_VALUE_INIT is new in GLib 2.30. More convenient than zero-filling a
statically declared GValue with memset().
|
|
|
|
|
| |
Reducing diff noise so I can see important changes easier when comparing
branches. A few API changes, but nothing that affects functionality.
|
|
|
|
|
|
|
|
| |
The EModule, EExtensible and EExtension classes as well as the
e_type_traverse() function have been moved to Evolution-Data-Server's
libebackend library to replace e-data-server-module.c.
Now Evolution-Data-Server modules use the same framework as Evolution.
|
| |
|
|
|
|
|
|
| |
exfiltration
Through warning on attaching Hidden/security files by mailto command.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
X-Evolution-Account and X-Evolution-Transport headers were not getting
set in redirected messages.
|
| |
|
|
|
|
|
| |
Also fixes few memory leaks around ENameSelector and cancels
loading of its address books when not needed any more.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This reverts commit 94d5fb1b664ab38790ba620f7d2c6d585b666c91.
Wrong solution. See bug #650491.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Convenience function for use in GAsyncReadyCallback functions.
This acknowledges the cancellation, so that the activity's description
changes from "(cancelling)" to "(cancelled)" and the description appears
crossed out in the UI for a moment before disappearing.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
As of GLib 2.28 all GObject virtual methods, including constructed(),
are safe to chain up to unconditionally. Remove unnecessary checks.
|
|
|
|
| |
Opens the Preferences window to the Composer Preferences section.
|
|
|
|
|
|
| |
Dragging image data or an image URI to the message body while in HTML
mode should insert the image inline, not attach it. Without this the
Picture Gallery feature is pointless.
|
| |
|
| |
|
|
|
|
|
|
| |
If a newly-composed message was successfully sent but an error occurred
during post-processing (outgoing filters or appending to a Sent folder),
close the composer window and show an alert in the main window.
|
| |
|
|
|
|
| |
Have to use accessor functions, no pointer deferencing.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This is just for convenience, EActivity does not use this property.
Especially useful in async function callbacks when the operation
failed and now you have to do something useful with the GError.
|
|
|
|
|
|
|
| |
Passing a random GtkWidget and then searching its ancestors for an
EAlertSink turned out to be not as useful as I thought. Most of the
time we know about and have access to the widget that implements
EAlertSink, so just pass it directly as an EAlertSink.
|
| |
|
| |
|
|
|
|
|
|
|
| |
When sending a message from a composer window, it seems pointless to
write message to Outbox only to immediately read it back and mark it
for deletion. Instead, bypass the Outbox folder when sending, and if
an error occurs, offer to save the message to Outbox instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With unintrusive error dialogs gone, we can cut some unnecessary bits
out of EActivity.
I'm also adding a new enum property called "state", which is one of:
E_ACTIVITY_RUNNING
E_ACTIVITY_WAITING
E_ACTIVITY_CANCELLED
E_ACTIVITY_COMPLETED
The state of an activity must be explicitly changed. In particular,
when the user cancels an activity the state should be set only after
confirming the operation has been cancelled and not when cancellation
is requested (e.g. after receiving a G_IO_ERROR_CANCELLED, not when
the GCancellable emits "cancelled"). EActivityBar and EActivityProxy
widgets have been updated to make this distinction clearer in the UI.
E_ACTIVITY_WAITING will be used when activities have to be queued and
dispatched in sequence, which I haven't written yet.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Trying out a new interface called EAlertSink. The idea is to centralize
how errors are shown to the user. A GtkWindow subclass would implement
the EAlertSink interface, which consists of a single method:
void (*submit_alert) (EAlertSink *alert_sink, EAlert *alert);
The subclass has complete control over what to do with the EAlert,
although I imagine we'll wind up implementing various alert-handling
policies as standalone widgets such as EAlertDialog. I'd like to try
an EAlertInfoBar.
Code that would otherwise display an error dialog itself would instead
pass the EAlert to an appropriate EAlertSink and be done with it.
Nothing is final yet. Still hacking on EAlert trying to find an API
that feels right for these use cases.
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Given the way the autosave feature was awkwardly bolted on to the
composer, an EExtension seemed like a natural fit. And it helped
clean up some object lifecycle hacks (and bugs).
What we have now is a new module consisting of two EExtensions:
EComposerAutosave extends EMsgComposer and determines when to
kick off an asynchronous autosave operation.
EComposerRegistry extends EShell and offers to restore orphaned
autosave files on startup (which is also asynchronous now).
e-autosave-utils.c holds the actual asynchronous functions and a few
other miscellaneous utility functions.
Source code for the new module lives in /modules/composer-autosave.
|
|
|
|
|
|
| |
This simplifies the async autosave logic and improves error handling.
Hoping this will solve bug #616987 but I've yet to reproduce it myself.
|
| |
|
|
|
|
|
|
|
| |
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().
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a boolean "dragging" property to the EAttachmentView interface,
which becomes TRUE when the user start a drag from the attachment view.
e_attachment_view_drag_motion() and e_attachment_view_drag_drop() both
return FALSE when this property is set.
Also, do not register the entire EMsgComposer window as a drag
destination. Just intercept drag signals from the GtkHTML widget.
Requires gtkhtml commit 344eb5e to fully work correctly.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This is so that GtkHTML doesn't have to register drag destination
targets that that it can't handle itself, like "text/calendar" and
"text/x-vcard".
|
|
|
|
|
|
| |
At least until we have another way to insert signatures.
Obvious solution: Insert -> Signature -> (list of your signatures)
|
| |
|
|
|
|
| |
The second attempt.
|
| |
|
| |
|
|\ |
|
| | |
|
| |\ |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We are not ready to hide it just yet, as there are useful commands
there that are not available from the composer's other widgets.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Remove various utility functions that conditionally create
a lite composer, and just use the normal functions to
create a composer. The composer will know by itself whether
it needs to adjust for small screens.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | | |
zone as the mail window.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This lets us save vertical space in the mail composer
in the common case where the user has only a single
email account configured - then he doesn't need to
choose which account to send from.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now the From header will only be shown if you have more than
one mail account.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is so that the colons of the labels will align vertically.
Although the labels inside buttons don't align 100% perfectly
with the buttonless labels, this looks good enough for now,
and certainly much better than all-centered labels.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is so that the address picker will be available; there is no
good reason to hide it.
This basically reverts commit 70c799f348cc366668cac2510294f68fb5d8f6a8
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is basically a selective revert of these commits:
9b0e9dc0aeffd627ce2bdea049cc7c47bb7418f0
631da1b6baf2204ebb844a1d3962c2c7d811eb41
5d4e8994e83c9ab650981c332eaef57f4fab2788
Instead of having buttons to show/hide headers in the same row as the 'To:' header,
we will have expanders or something prettier, a la googlemail.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
This will also make 'grep' easier when we remove the lite stuff
by refactoring.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Composer and signature editor always default to HTML in Express mode.
Hide the corresponding composer preference. This will not affect the
user preference in normal mode.
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Still remaining:
GtkAccessible::widget
GtkAssistant::forward
GtkAssistant::back
GtkObject::flags
GtkTreeStore::stamp
The GtkAssistant fields are related to bug #596428. We don't
need accessor functions so much as the enhancement described
there implemented.
https://bugzilla.gnome.org/show_bug.cgi?id=615613
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Remove old ChangeLog files that predate our switch to git.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Composer and signature editor always default to HTML in Express mode.
Hide the corresponding composer preference. This will not affect the
user preference in normal mode.
|
|/ |
|
|
|
|
|
|
|
|
|
| |
We can't require the use of EUIManager everywhere because we don't
control all the UI manager instances -- the most compelling example
being the composer, whose UI manager comes from GtkhtmlEditor.
Instead, EPluginUI will check the instance type and pick an appropriate
"load_from_string" function.
|
|
|
|
|
|
| |
Add G_GNUC_NULL_TERMINATED to EAlert functions with variable-length
parameter lists and drop the unnecessary "arg0" parameter so the
function attribute works correctly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the EVO_EXPRESS environment variable with an --express command
line option. (Note, this adds a new translatable string for --help.)
Add an EUIManager class with an "express-mode" property and custom load
functions that use our new "express" preprocessor. This replaces the UI
manager functions in e-utils.c.
(Also going to see if I can get GTK+ to add an "add_ui_from_string"
method to GtkUIManagerClass that we can override. Then we could just
call gtk_ui_manager_add_ui_from_string() and the preprocessor would
automatically do its thing and chain up.)
Add an "express-mode" read-only GObject property to EShell.
Add e_shell_configure_ui_manager() to e-shell-utils.c. For now this
just creates a one-way property binding:
EShell:express-mode -> EUIManager:express-mode
Call this immediately after e_ui_manager_new(). (EUIManager can't do
this itself because it lives too low in the dependency hierarchy and
doesn't know about EShell.)
|
| |
|
|
|
|
| |
have no tooltips.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Renamed the "Security" menu to "Options" moved other options there:
Request Read Receipt
Prioritize Message
Character Encoding
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add "copy-target-list" and "paste-target-list" to the ESelectable
interface. These are underutilized for the moment, but will eventually
be used to help integrate drag-and-drop support into ESelectable.
Add cut and paste support to EWebView, along with a new "editable"
property and new clipboard signals "copy-clipboard", "cut-clipboard" and
"paste-clipboard".
In EFocusTracker, listen for "owner-changed" signals from the default
clipboard as another trigger to update actions, particularly the Paste
action. (Unfortunately this doesn't work for EWebView since GtkHtml
implements its own clipboard.)
In EMsgComposer, convert GtkhtmlEditor's clipboard methods to empty
stubs, since EFocusTracker will now trigger EWebView's clipboard
actions. Also, intercept EWebView::paste-clipboard signals and improve
the interaction between the HTML editor and the attachment bar based on
use cases in bug #603715.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding a GtkhtmlEditor::uri-requested repeater signal was a mistake.
It unnecessarily complicates URI handling and so the composer no longer
uses it -- instead it connects to GtkHTML::url-requested directly.
This also requires commit 203ce61e6ea19323914b9c459b2e79bde5db15be from
GtkHTML to work right. That commit changes GtkHTML::url-requested to a
G_SIGNAL_RUN_LAST so the composer's signal handler runs first. If the
composer can handle the URI request, it stops the signal emission so
that nothing else tries to use the freed GtkHTMLStream.
Henceforth consider GtkhtmlEditor::uri-requested to be deprecated.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
Drop all alert titles to be found in *.error.xml. HIG suggests alerts
do not have a title.
|
| |
|
| |
|
|
|
|
|
|
| |
The changes are mainly including the e-alert-header.h header instead of just
e-alert.h. This allows us to include e-alert.h in non-UI situations when
necessary.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The EError mechanism is used both for error dialogs as well as basic alerts or
user prompts, so we should give it a more general name which matches this use.
This patch also cleans up a few includes of e-alert.h (formerly e-error.h) that
were not actually being used.
https://bugzilla.gnome.org/show_bug.cgi?id=602963
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=602963
|
|
|
|
|
|
|
|
|
|
| |
Don't unref the GAsyncResult in finish functions. Do it after calling
g_simple_async_result_complete(). This allows the GAsyncReadyCallback
to be optional, and we'll still clean up resources properly.
Also, don't call g_simple_async_result_complete_in_idle() unless we're
completing an operation from a separate thread, which we're not in any
of the current cases.
|
| |
|
| |
|
|
|
|
|
|
| |
- Check for no addresses properly (in post-to only when shown)
- Check for garbage addresses and warn user about those
- Use garbage text in To/CC/Bcc fields when user typed them
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drafts button
This is due to an old hack that hiding a composer means we're closing
it so save_draft_done() destroys the composer after saved draft. But
in Anjal, the composer widget is always hidden (since the editor is
reparented to the tab), and will be wrongly destroyed by
save_draft_done() when you clicked "Save Draft" button.
This patch improved the old hack, by adding a new API
e_msg_composer_request_close() that can be used to request closing a
composer (so the old hack is no longer needed). Internally,
composer->priv->application_exiting is used to store this exiting
status.
So by this we no longer use a composer's visibility to check whether
we're to close it. When you no longer need a composer after saved
draft, call e_msg_composer_request_close() before sending the
save-draft signal.
The e_msg_composer_is_exiting() (removed by 983bea9) has to be bring
back, which is needed by other programs that use the composer (Anjal
here).
(forward ported from 08150f6 of gnome-2-28)
|
| |
|
|
|
|
|
|
|
|
| |
tab closed automatically
A new field "mail_sent" is added to the Composer to indicate whether the
mail is sent successfully or not. This is needed by Anjal to know
whether it can destroy the composer or not.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Reapplied patch from bug #551470, as this got dropped on merging.
Be sure you all also
gconftool-2 --install-schema-file=$PREFIX/etc/gconf/schemas/evolution-mail.schemas
as new key had been added.
|
| |
|
|
|
|
| |
(QP - Quoted Printable)
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Closing the last main window no longer takes composer windows down with
it, so we no longer need the "holy crap we're shutting down, quick save
to disk!" logic.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Cannot build composer without address book, but address book
is built after composer.
|
| |
|
|
|
|
|
| |
Also make it more fault-tolerant by warning about non-existent
property names instead of just crashing.
|
| |
|
|
|
|
| |
For example when part body contains a line longer than some max.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\| |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Wrote a new widget (ECharsetComboBox) to replace e-charset-picker.c.
The widget provides a "charset" string property that allows us to bind
to GConf keys (via EShellSettings). Moved e_charset_add_radio_actions()
to e-util/e-charset.c. Updated Glade files, #include lines, etc.
|
|\| |
|
| | |
|
| |
| |
| |
| | |
widget.
|
| | |
|
| | |
|
| | |
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
composer/e-composer-header-table.h
composer/e-composer-header.c
composer/e-composer-private.c
configure.ac
mail/em-account-editor.c
po/POTFILES.in
po/or.po
widgets/misc/e-search-bar.c
|
| | |
|
| | |
|
| |
| |
| |
| | |
Icon view.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|