| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
No longer used.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
|
| |
A new ETable column selection and ordering widget that looks like
it was written in the 21st century. Derives from ETreeViewFrame.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
New parser implementation that uses GMarkupParser instead of libxml2.
|
|
|
|
| |
New parser implementation that uses GMarkupParser instead of libxml2.
|
|
|
|
|
|
|
|
| |
Replace ETableSortColumn with separate ETableColumnSpecification and
GtkSortType parameters in the "get_nth" and "set_nth" functions.
Makes some other parts of the code simpler since it no longer has to
translate a column number to a column specification.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
ETableSortInfo now keeps a weak reference on the ETableSpecification to
which it's associated. The plan is to replace the column index numbers
with a direct reference to an ETableColumnSpecification from the spec.
New functions:
e_table_sort_info_ref_specification()
|
| |
|
| |
|
|
|
|
| |
Will eventually replace e_table_header_get_column_by_col_idx().
|
|
|
|
|
| |
Lookups up the column index of an ETableColumnSpecification, returns a
negative value if no match found.
|
|
|
|
|
| |
Compares two ETableColumnSpecification instances for equality, which
just means they both refer to the same model column number.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
ETableState now keeps a weak reference on the ETableSpecification to
which it's associated. The plan is to replace the column index numbers
with a direct reference to an ETableColumnSpecification from the spec.
New functions:
e_table_state_ref_specification()
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
ETreeViewFrame embeds a GtkTreeView in a scrolled window and adds an
inline-style toolbar beneath the scrolled window which can be hidden.
The inline-style toolbar supports "add" and "remove" actions, as well
as move actions if the tree view is reorderable and selection actions
if the tree view supports multiple selections. The action set can be
extended through e_tree_view_frame_insert_toolbar_action().
This also adds a small demo program: test-tree-view-frame
|
|
|
|
|
|
|
|
| |
Replace the big, bulky "open URL" button with a clickable icon directly
in the text entry field. This saves precious vertical space, especially
in the contact editor.
Also remove e_url_entry_get_entry() since EUrlEntry now IS a GtkEntry.
|
| |
|
| |
|
|
|
|
| |
Now that ETree no longer has an ESorter, this function is silly.
|
|
|
|
|
|
| |
ESorter itself does nothing useful, so there's no reason to create one.
ESorter should really be an interface.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
row_count = e_table_model_row_count (E_TABLE_MODEL (adapter));
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
e_tree_table_adapter_force_expanded_state (adapter, state);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
e_tree_table_adapter_load_expanded_state_xml (adapter, xml);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
xml = e_tree_table_adapter_save_expanded_state_xml (adapter);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
e_tree_table_adapter_load_expanded_state (adapter, filename);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
e_tree_table_adapter_save_expanded_state (adapter, filename);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
e_tree_table_adapter_show_node (adapter, path);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
visible = e_tree_table_adapter_root_node_is_visible (adapter);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
row = e_tree_table_adapter_row_of_node (adapter, path);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
path = e_tree_table_adapter_node_at_row (adapter, row);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
e_tree_table_adapter_root_node_set_visible (adapter, visible);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
e_tree_table_adapter_node_set_expanded_recurse (adapter, path, expanded);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
e_tree_table_adapter_node_set_expanded (adapter, path, expanded);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
adapter = e_tree_get_table_adapter (tree);
expanded = e_tree_table_adapter_node_is_expanded (adapter, path);
|
| |
|
| |
|
| |
|
|
|
|
| |
It just calls gtk_drag_get_data() anyway.
|
|
|
|
| |
It just calls gtk_drag_dest_unset() anyway.
|
|
|
|
| |
It just calls gtk_drag_dest_set_proxy() anyway.
|
|
|
|
| |
Reducing API bloat. Call gtk_drag_dest_set() directly instead.
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
selection = (ETreeSelectionModel *) e_tree_get_selection_model (tree);
e_tree_selection_model_foreach (selection, callback, closure);
|
|
|
|
|
|
|
| |
Reducing API bloat. Do this instead:
selection = (ESelectionModel *) e_tree_get_selection_model (tree);
e_selection_model_foreach (selection, callback, closure);
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Returns the total number of nodes in the tree model, including hidden
nodes in collapsed tree branches.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces e_tree_table_adapter_construct() with construct properties
and overrides GObjectClass.constructed() to finish instance construction.
New functions:
e_tree_table_adapter_get_source_model()
Removed functions:
e_tree_table_adapter_construct()
|
| |
|
| |
|
| |
|
|
|
|
| |
It always returned FALSE.
|
|
|
|
| |
Was never called.
|
|
|
|
| |
It always returned TRUE.
|
|
|
|
| |
It always returned TRUE.
|
|
|
|
| |
It always returned NULL.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit does a number of things which I could not subdivide into
smaller commits.
* Converts ETreeModel to an interface, implemented by MessageList.
* Drops ETreeMemory and ETreeMemoryCallbacks, which were ETreeModel
subclasses. Their functionality is subsumed by MessageList.
* MessageList drops its public ETreeModel pointer, since MessageList
now implements ETreeModel as an interface.
* Adds message_list_set_expanded_default(), which takes over for
e_tree_memory_set_expanded_default().
|
|
|
|
|
|
| |
Replaces e_tree_memory_get_children().
The "paths" output parameter was unused, and was a bad idea anyway.
|
|
|
|
| |
ETreeMemory does not implement this, so it's always FALSE.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a bug in the old implementation where the application could
crash after a second shell window was created and destroyed, because a
signal handler with the destroyed shell window as the closure was left
connected.
But moreover this simplifies the implementation by using a property
binding plus transform function instead of juggling signal handlers,
and also adds code comments where things get a little tricky.
Removed (now unused) functions:
e_shell_window_get_toolbar_new_prefer_item
e_shell_window_set_toolbar_new_prefer_item
|
|
|
|
|
| |
Calls e_source_selector_update_row() for each ESource being shown
by the ESourceSelector, according to the "extension-name" property.
|
|
|
|
| |
Use the EMailPartHeaders API instead.
|
|
|
|
|
|
|
|
| |
Returns a GtkTreeModel of header names and values and visibility flags,
built from the CamelMimeMessage. The tree model rows can be reordered
and toggled prior to printing.
Also add e_mail_part_headers_is_default() as a handy helper.
|
|
|
|
|
|
|
|
|
| |
This will replace the headers API in EMailFormatter. Need a more
permanent place for headers since EMailFormatter is too disposable.
Also add an ESettingsMailPartHeaders class, which binds the new property
to the "show-headers" setting with a suitable mapping function to filter
out disabled header names.
|
|
|
|
|
|
|
|
|
|
| |
This is a weak reference to the EMailPartList to which the EMailPart
has been added. The property is set by e_mail_part_list_add_part().
New functions:
e_mail_part_ref_part_list()
e_mail_part_set_part_list()
|
| |
|
|
|
|
| |
To have a proper GEnumClass registered for ask/always/never choices.
|
|
|
|
|
|
| |
Convenience function that works like e_source_registry_ref_source(),
but spares the caller from digging out the ESourceRegistry from the
header table.
|
|
|
|
|
|
|
|
| |
No longer needed.
Removed functions:
e_composer_header_table_get_shell()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ESourceRegistry can still be obtained from the EClientCache:
client_cache = e_composer_header_table_ref_client_cache (table);
registry = e_client_cache_ref_registry (client_cache);
...
g_object_unref (client_cache);
g_object_unref (registry);
Added functions:
e_composer_header_table_ref_client_cache()
Removed functions:
e_composer_header_table_get_registry()
|
|
|
|
| |
No longer needed.
|
|
|
|
|
|
| |
To make Evolution's shared libraries more consistent.
Also add an evolution-mail-composer documentation module.
|
|
|
|
|
|
| |
To make Evolution's shared libraries more consistent.
Also add an evolution-mail-formatter documentation module.
|
|
|
|
|
|
| |
To make Evolution's shared libraries more consistent.
Also rename the documentation module to evolution-shell.
|
|
|
|
|
|
| |
To make Evolution's shared libraries more consistent.
Also rename the documentation module to evolution-util.
|
| |
|
|
|
|
| |
Convenience function cancels the activity's GCancellable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reimplement EPhotoCache to delegate the actual photo fetching to
EPhotoSources. When a photo is requested for a given email address,
all available EPhotoSources are dispatched concurrently and a photo
input stream is selected from the result set.
This also utilizes EDataCapture, which is affixed to the returned
GInputStream to capture and cache photo data for an email address.
New functions:
e_photo_cache_add_photo_source()
e_photo_cache_list_photo_sources()
e_photo_cache_remove_photo_source()
e_photo_cache_add_photo()
Renamed functions:
e_photo_cache_remove() --> e_photo_cache_remove_photo()
|
|
|
|
|
|
|
|
|
| |
EPhotoSource is an interface used to extend the functionality of
EPhotoCache. You can add an object implementing EPhotoSource to an
EPhotoCache with e_photo_cache_add_photo_source() and remove it with
e_photo_cache_remove_photo_source(). When EPhotoCache needs a photo
for an email address, it will invoke e_photo_source_get_photo() on all
available EPhotoSource objects simultaneously and select one photo.
|
|
|
|
|
|
|
|
|
|
| |
EDataCapture is a GConverter that captures data until the end of the
input data is seen, then emits a "finished" signal with the captured
data in a GBytes instance.
When used with GConverterInputStream or GConverterOutputStream, an
EDataCapture can discreetly capture stream content for the purpose
of caching.
|
| |
|
|
|
|
|
| |
Returns a GtkSizeGroup used to keep the search bar and sidebar banner
vertically aligned.
|
|
|
|
|
|
|
|
|
| |
Remove the following properties and corresponding get/set functions:
"express-mode"
"filter-visible"
"labels-visible"
"search-visible"
|
|
|
|
|
| |
This also removes an unused function e_web_view_get_highlights() which
was returning a GSList.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer needed.
|
|
|
|
| |
No longer needed. Use GtkUIManager directly.
|
|
|
|
|
|
|
|
| |
Loads a UI definition into a GtkUIManager from Evolution's UI directory.
We actually had this function for a brief period during the 2.29 series,
before Express Mode was a thing. I'm reviving the function to take over
for EUIManager.
|
|
|
|
| |
No longer needed.
|
|
|
|
| |
No longer needed.
|
|
|
|
| |
No longer needed.
|
|
|
|
|
|
| |
The property is always FALSE.
Remove both the property itself and any logic predicated on it.
|
|
|
|
| |
Its preconditions are never TRUE, and is therefore a no-op function.
|
|
|
|
|
|
| |
The property is always FALSE.
Remove both the property itself and any logic predicated on it.
|
|
|
|
| |
No longer used.
|
|
|
|
|
|
|
|
| |
EShellSettings predates GSettings and is no longer necessary.
GSettings allows binding GObject properties to GSettings keys,
with optional mapping functions. That fulfills the purpose of
EShellSettings.
|
|
|
|
|
| |
e_weekday_to_tm_wday()
e_weekday_from_tm_wday()
|
|
|
|
|
|
|
|
|
|
| |
These aren't as efficient as possible, but are as clear as possible.
New functions:
e_weekday_add_days()
e_weekday_subtract_days()
e_weekday_get_days_between()
|
|
|
|
|
|
|
| |
Changed my mind... got more to add.
e_get_next_weekday() -> e_weekday_get_next()
e_get_prev_weekday() -> e_weekday_get_prev()
|
|
|
|
|
|
| |
These just cycle over the GDateWeekday enum.
Trivial functions, but they help make loops a little easier to read.
|
|
|
|
|
|
| |
This enum type is intentionally compatible with GDateWeekday.
It exists only because GLib does not provide a GEnumClass for
GDateWeekday. If that ever changes, this enum can go away.
|
| |
|
|
|
|
| |
Basically any place where we use both EClient and ESourceComboBox.
|
| |
|
|
|
|
|
|
| |
Caches contact photos by email address.
Replaces the disastrous implementation in e-mail-utils.c.
|
| |
|
| |
|
|
|
|
| |
Gonna need to call this from the EClientSelector subclass.
|
|
|
|
|
|
|
| |
Returns TRUE if an EClient instance for the given source and the value
of ESourceSelector's "extension-name" property was recently discarded
after having emitted a "backend-died" signal, and a replacement EClient
instance has not yet been created.
|
|
|
|
|
|
| |
Returns TRUE if an EClient instance for the given source and extension
name was recently discarded after having emitted a "backend-died" signal,
and a replacement EClient instance has not yet been created.
|
|
|
|
|
|
|
|
| |
EClientSelector extends the functionality of ESourceSelector by
utilizing an EClientCache to display status information about the
backends associated with the displayed data sources.
(No backend status is displayed just yet, but that's the plan.)
|
|
|
|
|
|
|
|
|
| |
Give EShell its own EClientCache. This should be used throughout
Evolution, wherever an EClient is needed.
New functions:
e_shell_get_client_cache()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New class to help reduce code duplication and centralize some EClient
handling policies.
Benefits:
- EClient instances can be shared across the entire application.
- Centralized rebroadcasting of "backend-died" and "backend-error"
signals emitted from cached EClient instances.
- Automatic cache invalidation when backends crash. The EClient
is discarded, and a new instance is created on the next request.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
e_config_add_skip_check()
e_config_class_remove_factory()
e_config_create_window()
e_config_page_get()
e_config_page_next()
e_config_page_prev()
e_config_set_page_is_finish()
Also remove E_CONFIG_ASSISTANT and all the assistant support therein.
|
|
|
|
|
|
|
| |
e_passwords_cancel()
e_passwords_clear_passwords()
e_passwords_forget_passwords()
e_passwords_shutdown()
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move the supporting widgets for the contact maps feature alongside
EABContactDisplay. Removing them from libeutil helps isolate our usage
of libchamplain so it's not imposed on the entire application, and even
3rd party software. That libchamplain is an optional dependency only
further complicates the matter.
Ideally I'd like to somehow isolate this feature in an extension module,
but we currently lack sufficient hooks for such an extension. So this
arrangement will have to suffice for now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Evolution consists of entirely too many small utility libraries, which
increases linking and loading time, places a burden on higher layers of
the application (e.g. modules) which has to remember to link to all the
small in-tree utility libraries, and makes it difficult to generate API
documentation for these utility libraries in one Gtk-Doc module.
Merge the following utility libraries under the umbrella of libeutil,
and enforce a single-include policy on libeutil so we can reorganize
the files as desired without disrupting its pseudo-public API.
libemail-utils/libemail-utils.la
libevolution-utils/libevolution-utils.la
filter/libfilter.la
widgets/e-timezone-dialog/libetimezonedialog.la
widgets/menus/libmenus.la
widgets/misc/libemiscwidgets.la
widgets/table/libetable.la
widgets/text/libetext.la
This also merges libedataserverui from the Evolution-Data-Server module,
since Evolution is its only consumer nowadays, and I'd like to make some
improvements to those APIs without concern for backward-compatibility.
And finally, start a Gtk-Doc module for libeutil. It's going to be a
project just getting all the symbols _listed_ much less _documented_.
But the skeletal structure is in place and I'm off to a good start.
|
|
|
|
|
| |
As of GTK+ 3.4, GtkApplication now provides session management
support similar to EggSMClient. So drop our copy of EggSMClient.
|
|
|
|
| |
These date back to Evolution 1.x era or perhaps earlier.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Silly function. Use gtk_entry_get_text() for a const string or else
gtk_editable_get_chars() for an allocated string.
|
|
|
|
| |
Silly function. Use gtk_entry_set_text().
|
|
|
|
| |
No longer needed.
|
|
|
|
| |
No longer needed.
|
|
|
|
|
|
|
|
| |
Removes: e_binding_transform_enum_value_to_nick()
e_binding_transform_enum_nick_to_value()
Those functions now live in libedataserver/e-data-server-util.h,
which e-util.h already includes.
|
|
|
|
| |
Bump our gtk-doc requirement to 1.14 and use --flavour no-tmpl.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Another EAccount utility function down...
|
|
|
|
|
| |
Checkout http://mail.gnome.org/archives/evolution-list/2010-December/msg00170.html
for more details.
|
| |
|
| |
|
|
|
|
| |
Function is no longer used, or wanted.
|
|
|
|
| |
Function is no longer used, or wanted.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
An easy way to broadcast application-wide alerts to shell windows.
These alerts will persist in all current and future shell windows
until responded to (either programmatically or by the user).
|
| |
|
|
|
|
| |
Messed up some hunks in the doc with my previous commit. Reverting them.
|
|
|
|
| |
Widget name required to update.
|
|
|
|
| |
We'll want to store enum settings by their nicknames.
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Use the same alert handling policy as the composer.
|
|
|
|
|
|
| |
GObject now does property bindings itself.
Requires GLib >= 2.26.
|
|
|
|
|
| |
Use it to override network availability detection as reported by
NetworkManager or other network monitoring software.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Listen for "prepare-for-quit" signals from the shell and inhibit
shutdown until all the activities we're tracking are finalized.
Also, add a couple supporting functions:
gboolean e_shell_backend_is_busy (EShellBackend *shell_backend);
void e_shell_backend_cancel_all (EShellBackend *shell_backend);
These will eventually replace mail_msg_active() and mail_cancel_all().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
| |
We preview imported files by other means now.
|
| |
|
|
|
|
|
| |
Also replace "$USER_DATA_DIR/cache" path constructions with
e_get_user_cache_dir().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 uses the new gtk_assistant_commit() I had added to GTK+ for our
EImportAssistant progress page.
|
|\ |
|
| |\ |
|
| |\| |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For express mode:
- Move the search bar up to the toolbar.
- Hide the "filter" combo box and lock down the first item.
- Hide the "scope" combo box and lock down the first item.
(This is the combo box with "Current Folder" only in the mailer.)
- EShellView owns the search bar widget now instead of EShellContent.
- Insert several nasty hacks that will likely come back to bite me.
Conflicts:
doc/reference/shell/eshell-sections.txt
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
|
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For express mode:
- Move the search bar up to the toolbar.
- Hide the "filter" combo box and lock down the first item.
- Hide the "scope" combo box and lock down the first item.
(This is the combo box with "Current Folder" only in the mailer.)
- EShellView owns the search bar widget now instead of EShellContent.
- Insert several nasty hacks that will likely come back to bite me.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|
|
|
|
|
| |
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.)
|
|
|
|
| |
Also, start fixing some Gtk-Doc warnings. There's a lot.
|
|
|
|
| |
Also, let EShellSearchbar handle search state persistence.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The signal uses the name of the newly created shell view as the detail,
so for example "shell-view-created::mail" is emitted when the "mail"
view is created.
Also, add e_shell_window_peek_shell_view() to obtain a shell view if it
exists but without instantiating it.
Using these new tools, teach the templates plugin to wait for the user
to switch to the "mail" view before connecting to its "update-actions"
signal. Previously is was instantiating the "mail" view itself.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move the search interface to a new widget: EShellSearchbar
The current search rule is now stored in EShellView, and the search
context in EShellViewClass similar to GalViewCollection (since it's
class-specific, not instance-specific).
Also add a couple new signals to EShellView: "clear-search" and
"custom-search" ("custom" refers to an advanced search or a saved
search -- something more complex than a quick search).
Still working out a few kinks. The search entry is clearly trying to
be too many things. We need a different way of indicating that you're
looking at search results. Perhaps a search results banner similar to
Nautilus.
|
|
|
|
|
|
| |
EMailSidebar is a subclass of EMFolderTree that implements the state
saving and restoration feature from EMailShellSidebar. Placing this
in the shared mail library allows Anjal to reuse it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This tells EShell where to look for EModules. Best practice is to
define the directory in your CPPFLAGS and then pass it to EShell at
instantiation time, like so:
Makefile.am:
evolution_CPPFLAGS = \
-DMODULEDIR=\""$(moduledir)"\"
...
main.c:
shell = g_object_new (
E_TYPE_SHELL, "module-directory", MODULEDIR, ...);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So Anjal can override what it needs to for its own purpose.
Also makes the EShellWindow design a little cleaner.
Methods added:
GtkWidget * (*construct_menubar) (EShellWindow *shell_window);
GtkWidget * (*construct_toolbar) (EShellWindow *shell_window);
GtkWidget * (*construct_sidebar) (EShellWindow *shell_window);
GtkWidget * (*construct_content) (EShellWindow *shell_window);
GtkWidget * (*construct_taskbar) (EShellWindow *shell_window);
EShellView * (*create_shell_view) (EShellWindow *shell_window,
const gchar *view_name);
Also added some new GObject properties to help decouple actions from
internal EShellWindow widgets created by these methods:
EShellWindow:sidebar-visible
EShellWindow:switcher-visible
EShellWindow:taskbar-visible
EShellWindow:toolbar-visible
|
|
|
|
|
|
|
|
| |
Adds the following methods:
CamelFolder * (*get_folder) (EMailReader *reader);
const gchar * (*get_folder_uri) (EMailReader *reader);
GPtrArray * (*get_selected_uids) (EMailReader *reader);
|