| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Another EAccount utility function down...
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Change the OK button to Apply, and fix the padding around the window
edges. People already bitching about the window being too tall are just
gonna bitch louder now, but it does look better on normal size screens.
|
| |
|
|
|
|
|
|
|
|
|
| |
Not only is get_font_options() no longer needed, it's actually doing the
wrong thing by reading settings through GConfClient instead of GSettings.
But it turns out, thanks to the tighter Cairo integration in GTK3, the
widgets that call get_font_options() can be made to work correctly by
simply removing this hack. Love it when that happens.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
We already include a CamelStore and folder name string in the signal
arguments, so it's trivial to reconstruct the URI if it's needed.
|
|
|
|
| |
Function is no longer used, or wanted.
|
|
|
|
| |
Mostly dead assignments.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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().
|
|
|
|
| |
Function is no longer used, or wanted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enhance e_get_account_by_uid() to also accept CamelTransport UIDs.
The convention we use to distinguish them is simple:
Given an EAccount UID:
- The CamelStore UID is the EAccount UID verbatim.
- The CamelTransport UID is the EAccount UID + "-transport".
So just check for a "-transport" suffix and truncate it.
|
| |
|
|
|
|
|
| |
Always copy the xmlChar property into GLib-allocated memory.
g_mem_is_system_malloc() has nothing to do with libxml2.
|
| |
|
|
|
|
|
|
|
| |
This plugin was for developers, but no one uses it anymore. Plus the
only profiling hooks left in Evolution were in the MessageList widget,
which performs fine. There's better ways to collect profiling data
these days anyway (sysprof, systemtap, etc.).
|
|
|
|
|
|
| |
Warnings are generally meant for transient errors. No need to leave
them up indefinitely. Close them automatically if the user hasn't
responded after a reasonable period of time has elapsed.
|
|
|
|
|
|
|
|
| |
From: $HOME/.gnome2/accels/evolution
To: $XDG_CONFIG_HOME/evolution/accels
Custom keyboard accelerator maps is a well-hidden feature these
days, especially in GNOME 3. Not worth migrating the old file.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
As of GLib 2.28 all GObject virtual methods, including constructed(),
are safe to chain up to unconditionally. Remove unnecessary checks.
|
|
|
|
| |
GCC learned how to find dead assignments.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Yes, the GtkScrollable interface is implemented by more than just
GtkLayout, but it turns out GtkLayout is the only thing Evolution
uses the GtkScrollable API for on the gtk3 branch.
|
|
|
|
|
| |
Easy enough to fake gtk_widget_get_preferred_size() in gtk2 using
gtk_widget_size_request(). Reduces diff noise with gtk3 branch.
|
| |
|
| |
|
|
|
|
| |
Per request of bug #635414
|
| |
|
| |
|
|
|
|
|
| |
Continue replacing the use of calendar-config functions with GObject
property bindings to EShellSettings properties.
|
|
|
|
| |
We'll want to store enum settings by their nicknames.
|
|
|
|
| |
And move the definition to e-util-enums.h so we get a GType for it.
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
You can now amend the predefined actions in an EAlert by calling
e_alert_add_action(). Useful for adding actions from an existing
GtkUIManager.
Call e_alert_peek_actions() to obtain a combined list of predefined
and custom actions. These will typically serve as "related" actions
for GtkButtons (cf. gtk_activatable_set_related_action()).
Also, both EShellWindow and EShellView now implement EAlertSink. Use
EShellWindow for application-wide alerts, EShellView for view-specific
alerts.
|
|
|
|
| |
Taking absolute value of diff.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Clean up the header, drop some unused cruft.
|
|
|
|
| |
Remove backward-compatibility hacks for older GTK+ versions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EActivity now uses a GCancellable to manage cancellations, instead of
having its own redundant cancellation API. API changes are as follows:
+ e_activity_get_cancellable()
+ e_activity_set_cancellable()
- e_activity_cancel()
- e_activity_is_cancelled()
- e_activity_get_allow_cancel()
- e_activity_set_allow_cancel()
EActivity's "cancelled" signal remains, but only as a repeater for
GCancellable::cancelled signals. It should not be emitted directly.
The presence of a GCancellable implies that cancellation is allowed.
EActivity does not create its own default GCancellable, it has to be
given one.
If a CamelOperation (cast as a GCancellable) is given, EActivity will
configure itself to listen for status updates from the CamelOperation
and propagate the information to its own "primary-text" and "percent"
properties.
These changes allowed me to start cleaning up some of the incredibly
convoluted logic in mail-mt.c -- in particular, mail_operation_status()
is completely gone now. mail-mt.c is still in a transitional state --
much more significant changes coming soon.
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
EConfig and EMAccountEditor are very, very brittle.
|
| |
|
| |
|
|
|
|
|
|
|
| |
If we're using GTK+ 2.21.8 (where gtk_dialog_set_has_separator() is
deprecated but the property is still present and defaults to TRUE), we
still need to set the property to FALSE. So instead use g_object_set()
up through GTK+ 2.90.6, after which the property itself is gone.
|
|
|
|
|
|
| |
Unfortunately the default value for this property is TRUE (bzzt, WRONG!)
so we can't just remove the function outright until we require GTK+ 2.22.
It was deprecated in GTK+ 2.21.8.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Prefer thread-safe G_DEFINE_TYPE and G_DEFINE_INTERFACE macros over
manual GType registration.
This is just a start... lots more to do.
|
| |
|
| |
|
|
|
|
|
| |
Migration runs just before the main loop starts.
It's just a sequence of local directory and file renames.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also replace "$USER_DATA_DIR/cache" path constructions with
e_get_user_cache_dir().
|
| |
|
|
|
|
| |
API was deprecated and removed in less than two hours! Sheesh!
|
|
|
|
|
|
|
|
|
|
|
| |
The issue was EConfig's GtkAssistantPageFunc callback assumed the pages
in the GtkAssistant were sorted, but that assumption breaks as EPlugins
with custom EConfigItemFactoryFunc callbacks are introduced and EConfig
has to rebuild its assistant pages.
It's an unnecessary requirement anyway, since EConfig already keeps a
sorted list of widgets internally. After correcting that assumption a
number of hacks addressing previous page ordering bugs fell out.
|
|
|
|
|
|
|
| |
This reverts commit 8b32dcadba4c705af60b1e33b24f46d97f7181d6.
Breaks opening more common URL-encoded links (see bug #621721).
Will take a closer look at the test case in bug #581032.
|
| |
|
|
|
|
| |
and don't tamper with registry unless asked for it explicitely.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Work around the issue of GnomeCanvasItem amending its own flags to
GtkObject::flags (which is sealed) by giving it its own flags field.
This breaks libgnomecanvas ABI and API, but I see no other way.
This commit didn't work the first time because gnome-pilot libraries
were still pulling in the system-wide libgnomecanvas, and that was
interfereing with our bundled version which has a different ABI.
But gnome-pilot integration was dropped in the previous commit, so
everything is now using the bundled libgnomecanvas.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It just doesn't belong in Evolution anymore. We don't support syncing
with more modern devices -- see Conduits or SyncEvolution for that -- so
it does not make sense for older model Palm Pilot PDAs to be the lone
exception.
I have repackaged the Evolution-Data-Server conduit modules to be
provided by gnome-pilot itself in bug #619315. This should provide
eqivalent Palm Pilot syncing functionality; it's just being moved to
gnome-pilot.
This completely severs our dependency on deprecated GNOME 2.x libraries
which were still being dragged in by way of gnome-pilot dependencies.
It was also interfereing with our bundling of libgnomecanvas.
|
|
|
|
|
|
|
| |
This reverts commit fd8b55edaa88906b588aa07d9eadcacd34a7a774.
Something in this commit seriously hosed ETable, making Evolution pretty
much unusable. Reverting this until I can track down the problem.
|
|
|
|
|
|
| |
Work around the issue of GnomeCanvasItem amending its own flags to
GtkObject::flags (which is sealed) by giving it its own flags field.
This breaks libgnomecanvas ABI and API, but I see no other way.
|
| |
|
|
|
|
| |
gdk_drag_context_get_selected_action for gtk version 2.21.1
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This uses the new gtk_assistant_commit() I had added to GTK+ for our
EImportAssistant progress page.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Convert the "startup-wizard" EPlugin to an EExtension, and fix up the
importing UI a bit (but it still needs a lot more love). Importing
progress is now shown directly in the GtkAssistant window.
Define a new EConfigItem type (E_CONFIG_PAGE_PROGRESS) for creating
progress pages in a GtkAssistant.
Also, change EMAccountEditor semantics slightly: you now have to call
e_config_create_window() manually after creating a new EMAccountEditor
instance. This allows extra EConfigItems (specifications for the window
content) to be added manually before the window is created.
|
|
|
|
|
|
|
| |
This reverts commit 0cdd9484fec0b1fec0801df7d7e0b05c6544ba9b.
Causes the Mail window to erroneously switch to Contacts when opening
the Contacts window in express mode.
|
|\ |
|
| | |
|
| |\ |
|
| | | |
|
| | |
| | |
| | |
| | | |
to be used by windows default application setting dialogue
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Defaults" dialogue and use quoted string instead of short path, since
this is how the "Hotmail" e-mail provider is doing it (unlike what
documentation says)
|
| |\ \ |
|
| | |\| |
|
| | | |
| | | |
| | | |
| | | | |
mailto handler.
|
| | | |
| | | |
| | | |
| | | | |
setting Evolution comme defaut mail application on windows.
|
| |/ /
| | |
| | |
| | | |
some transience issues in the calendar dialog re-layout.
|
| | |
| | |
| | |
| | | |
setting Evolution comme defaut mail application on windows.
|
| |\| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Exclude print settings that should not persist. This topic has a lot of
grey areas and GTK+ offers no help, so we'll do this by popular demand.
For starters, I'm excluding settings that have messed -me- up in the past:
GTK_PRINT_SETTINGS_N_COPIES
GTK_PRINT_SETTINGS_PAGE_RANGES
GTK_PRINT_SETTINGS_PAGE_SET
GTK_PRINT_SETTINGS_PRINT_PAGES
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The EConfig code that creates widgets based on .eplug descriptions will
already hide sections that end up containing no child widgets.
Here we also make that code hide sections that end up containing
only invisible child widgets. We will use this from the actual
plugins, so that if they decide not to show any widgets in Express
mode, then the corresponding configuration sections will not
show up in the preferences dialog.
EConfig types 'section' and 'section-table' have an internal factory function,
which doesn't return the actual GtkFrame that they create. Instead, they return
a GtkContainer which is the actual vbox or table used to insert child widgets.
Here we modify the internal factory function to also return the actual GtkFrame
that it creates, so that the calling code can hide *that* frame properly.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
|
| |\|
| | |
| | |
| | |
| | |
| | | |
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.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This introduces a simple means of extending Evolution objects.
Any GObject subclass wishing to be extensible need only call
g_type_add_interface_static (type, E_TYPE_EXTENSIBLE, NULL);
when registering its GType, and then at some point during initialization
call e_extensible_load_extensions() to load extensions for that subclass.
Extensions are implemented by subclassing EExtension, setting the GType
being extended in EExtensionClass, and making sure its own GType gets
registered at startup. This usually done while loading a GTypeModule.
e_extension_get_extensible() provides extensions access to the object
being extended.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Introduce e_extensible_list_extensions(), which provides extensible
objects access to their own extensions, or a subset of them.
Convert EShellBackend to an abstract EExtension subtype. EShell will
load its extensions with e_extensible_load_extensions(), and then obtain
a list of EShellBackend extensions as follows:
shell_backends = e_extensible_list_extensions (
E_EXTENSIBLE (shell), E_TYPE_SHELL_BACKEND);
Because EShellBackend is abstract, its GType is skipped while traversing
the GType hierarchy to find EShell extensions.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
The mechanism here is simple but hard to explain without leaning heavily
on object-oriented jargon. Consider this a rough draft. Illustrations
would certainly help clarify.
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This introduces a simple means of extending Evolution objects.
Any GObject subclass wishing to be extensible need only call
g_type_add_interface_static (type, E_TYPE_EXTENSIBLE, NULL);
when registering its GType, and then at some point during initialization
call e_extensible_load_extensions() to load extensions for that subclass.
Extensions are implemented by subclassing EExtension, setting the GType
being extended in EExtensionClass, and making sure its own GType gets
registered at startup. This usually done while loading a GTypeModule.
e_extension_get_extensible() provides extensions access to the object
being extended.
|
| |
| |
| |
| | |
avoids the need for intltool changes.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
to be used by windows default application setting dialogue
|
| | |
|
| |
| |
| |
| |
| |
| | |
Defaults" dialogue and use quoted string instead of short path, since
this is how the "Hotmail" e-mail provider is doing it (unlike what
documentation says)
|
| |
| |
| |
| | |
mailto handler.
|
| |
| |
| |
| |
| | |
This also removes the boxed CamelObject GType, since CamelObject is an
honest-to-goodness GObject now.
|
| | |
|
| | |
|
| |
| |
| |
| | |
setting Evolution comme defaut mail application on windows.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Exclude print settings that should not persist. This topic has a lot of
grey areas and GTK+ offers no help, so we'll do this by popular demand.
For starters, I'm excluding settings that have messed -me- up in the past:
GTK_PRINT_SETTINGS_N_COPIES
GTK_PRINT_SETTINGS_PAGE_RANGES
GTK_PRINT_SETTINGS_PAGE_SET
GTK_PRINT_SETTINGS_PRINT_PAGES
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
MessageList is the only thing still using it.
EMemPool is gone now, so it uses CamelMemPool instead (same thing).
|
| |
| |
| |
| |
| |
| |
| | |
There's too much ancient, crufty code there that we can't realistically
support anymore. A workaround for those poor users still on 1.x is to
upgrade to some 2.x release first, then upgrade again to 3.x. An error
dialog explaining this will be shown at startup.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
avoids the need for intltool changes.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Introduce e_extensible_list_extensions(), which provides extensible
objects access to their own extensions, or a subset of them.
Convert EShellBackend to an abstract EExtension subtype. EShell will
load its extensions with e_extensible_load_extensions(), and then obtain
a list of EShellBackend extensions as follows:
shell_backends = e_extensible_list_extensions (
E_EXTENSIBLE (shell), E_TYPE_SHELL_BACKEND);
Because EShellBackend is abstract, its GType is skipped while traversing
the GType hierarchy to find EShell extensions.
|
| | |
|
| |
| |
| |
| |
| |
| | |
The mechanism here is simple but hard to explain without leaning heavily
on object-oriented jargon. Consider this a rough draft. Illustrations
would certainly help clarify.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This introduces a simple means of extending Evolution objects.
Any GObject subclass wishing to be extensible need only call
g_type_add_interface_static (type, E_TYPE_EXTENSIBLE, NULL);
when registering its GType, and then at some point during initialization
call e_extensible_load_extensions() to load extensions for that subclass.
Extensions are implemented by subclassing EExtension, setting the GType
being extended in EExtensionClass, and making sure its own GType gets
registered at startup. This usually done while loading a GTypeModule.
e_extension_get_extensible() provides extensions access to the object
being extended.
|
|
|
|
|
|
|
|
|
| |
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.)
|
|
|
|
|
|
| |
Allow plugins to disable chunks of their UI - *NB* requires patched intltool,
that doesn't elide comments in XML
Remove some debug
|
|
|
|
|
| |
extend them to plugins - use a simple one-off boolean on the UI Manager
instead of exhaustively trying to propagate this information everywhere.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Finally found the bug in GConfBridge...
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To avoid another case like bug #587014, add GSignalAccumulator functions
to all ETable and ETree signals that return a flag to indicate the signal
has been handled.
See commit e9dc381d3ace3404d0eafe94eb6da3b9a843abb8 for an example of
the kind of problems not having a GSignalAccumulator can cause.
Signals changed:
ETree::click
ETree::right-click
ETree::white-space-event
ETable::click
ETable::key-press
ETable::right-click
ETable::start-drag
ETable::white-space-event
ETableItem::click
ETableItem::right-click
ETableItem::start-drag
ETableGroup::click
ETableGroup::key-press
ETableGroup::right-click
ETableGroup::start-drag
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Neither ETree::key-press nor ETableItem::key-press signal definitions
specify a GSignalAccumulator that terminates the signal emission when
a handler returns TRUE, and Evolution 2.29 connects multiple handlers
to ETree::key-press.
When the space key is pressed, the first handler implements the magic
space bar behavior and returns TRUE, which should terminate signal
emission but doesn't because there's no accumulator function on the
signal. So the second handler runs and checks for other keys besides
space. It returns FALSE since it didn't handle the key press.
End result: emission site gets back FALSE (from the second handler) as
the return value, so it thinks the key press was not handled at all and
invokes the fallback handler -- e_selection_model_toggle_single_row() --
which -unselects- the newly selected row, making it appear the next
unread message was never selected.
Several other ETable-related signals that return "handled" flags also
lack GSignalAccumulator functions. I've made a note to myself to fix
those as well.
|
|
|
|
|
|
| |
EAlertDialog wants the primary and secondary strings escaped for use in
markup text, EActivityProxy does not use markup. So make it an explicit
part of the EAlert API.
|
| |
|
|
|
|
| |
Also, start fixing some Gtk-Doc warnings. There's a lot.
|
| |
|
|
|
|
|
|
| |
Avoid listing calendar and directory targets explicitly, so that
e-selection.c contains the one and only master list. Still need
to figure out how to centralize "text/x-source-vcard".
|
| |
|
| |
|
| |
|
|
|
|
| |
Add UTF-16 to UTF-8 conversion to e_selection_data_get_html().
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=607804
|
| |
|
|
|
|
| |
Caught by the Clang Static Analyzer.
|
|
|
|
| |
Caught by the Clang Static Analyzer.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Drop all alert titles to be found in *.error.xml. HIG suggests alerts
do not have a title.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Previously I was just using G_TYPE_POINTER. Use the boxed camel object type
from e-util.h instead. When camel-gobject lands, we'll use G_TYPE_OBJECT
instead.
|
|
|
|
|
|
|
|
|
| |
Yes, this signal is kind of an ugly monster. I'm not sure how to improve this
significantly. But this commit removes the last EMFolderTreeModel and EShell
dependencies from MailFolderCache, which is a big step towards splitting off
the backend.
https://bugzilla.gnome.org/show_bug.cgi?id=604627
|
|
|
|
|
|
|
|
|
|
|
| |
This will allow us to decouple ourselves from some of the current dependencies,
such as the folder treemodel, the shell, etc. This just defines the signals,
the next step is to refactor things and actually make other classes use them.
We need one additional signal yet related to indicating the new unread emails,
but that one will require a little more thought I think.
https://bugzilla.gnome.org/show_bug.cgi?id=604627
|
|
|
|
|
|
|
|
| |
previously we were storing the EAlert's primary and secondary text in the dialog
object (using g_object_set_data_full). Since EAlertDialog encapsulates an
EAlert and we have access to the underlying EAlert object, we can just use the
EAlert API to get the primary and secondary text rather than storing duplicates
copies of it in the dialog.
|
|
|
|
| |
Fix another minor regression from my EAlert refactoring
|
| |
|
|
|
|
|
|
| |
Some error definitions don't specify a title or secondary text. Handle these
situations properly. This was a regression caused by my refactoring. Fixes
bug #604085.
|
|
|
|
|
| |
Make it obvious that this does not need to be freed like the other things that
use get_* (e.g. e_alert_get_title)
|
|
|
|
|
| |
This is a proper implementation of the various alert dialog helper functions.
It is a proper subclass of GtkDialog, etc.
|
|
|
|
|
|
| |
This encapsulates things a bit better and will be useful in the future since it
will probably need to be a GObject if we want to communicate EAlerts between the
front- and back-ends
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=602963
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, Most things reported errors directly. This is evidenced by the fact
that e_error_new() returns a GtkDialog*. This patch attempts to de-couple
error-reporting from the UI. It introduces a simple stuct (EError) that
describes the error which is returned much like a GError by passing it as an
output parameter to a function.
e_error_new() now returns a newly-allocated EError*, but the function signature
has changed to no longer accept a parent GtkWidget, so the API change should be
detected at compile time. I kept the convenience dialog functions, but renamed
them slightly:
- e_error_new() -> e_error_new_dialog()
- e_error_run() -> e_error_run_dialog()
Build is currently broken because nothing has been ported to use this new API
yet.
https://bugzilla.gnome.org/show_bug.cgi?id=602963
|
| |
|
|
|
|
|
|
|
|
|
| |
This is step two of the new --force-shutdown implementation.
Read Evolution's PID from ~/.evolution/.running, then invoke Evolution
with --quit to ask it to shutdown gracefully, then wait up to X seconds
for notification of process termination. If the process still has not
terminated, -then- we will kill it.
|
| |
|
|
|
|
|
| |
GTK+ already does this. Eliminates e_icon_factory_init() and
e_icon_factory_shutdown().
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This introduces e-shell-utils for miscellaneous utility functions
that integrate with the shell or shell settings. First function
is e_shell_run_save_dialog(), which automatically remembers the
selected folder in the file chooser dialog.
Also, kill some redundant save dialog functions, as well as some
write-this-string-to-disk functions that block.
|