aboutsummaryrefslogtreecommitdiffstats
path: root/e-util
Commit message (Collapse)AuthorAgeFilesLines
* Bug #215115 - Per-folder From: email addressMilan Crha2013-10-082-2/+76
| | | | | | The change also allows setting accounts for certain recipients (based on a part of the recipient address). The option can be found in Folder Properties and in Edit->Preferences->Composer Preferences->Send Account.
* Bug #708682 - Move with 'End' key with collapsed threads failsMilan Crha2013-10-011-6/+1
| | | | This reverts part of commit 452638466217dbfef0c0954c90aa7cb03cf91452
* Bug #708347 - Memory leak from EWebView/webkitTomas Popela2013-09-231-2/+5
|
* Update API documentation.Matthew Barnes2013-09-152-3/+3
|
* EClientSelector: Show an initial icon based on host name.Matthew Barnes2013-09-151-1/+150
| | | | | | | | Have GNetworkMonitor make an initial guess at the online state of backends by evaluating the reachability of their host name. This will show an initial status icon for all displayed ESources without actually opening a connection, since some backends are expensive to start unnecssarily.
* Bug #706008 - Workaround gnome-shell style change on focus changeTomas Popela2013-09-122-21/+249
| | | | | | | Avoid redrawing (thus loosing the selection and scroll position) of preview window on style change by defining the colors through CSS styles. On style change we just update the CSS color definitions and preview will update itself without redraw.
* EClientSelector: Do not prefetch EClient instancesMilan Crha2013-09-121-51/+0
| | | | | Let the open for a user, when respective source in the selector is selected.
* Miscellaneous cleanups.Matthew Barnes2013-09-0814-121/+165
|
* Bug #706901 - Large default book slows down composer openMilan Crha2013-08-301-4/+15
|
* Skip evolution from 'Open with' list of applications on attachmentsMilan Crha2013-08-291-0/+26
|
* EAlertBar: Mention Escape binding in close button tooltip.Matthew Barnes2013-08-111-1/+2
|
* Add e_alert_bar_close_alert().Matthew Barnes2013-08-112-0/+41
| | | | | Closes the active EAlert and returns TRUE, or else returns FALSE if there is no active EAlert.
* Bug #704207 - Dragged column's arrow indicator oversizedMilan Crha2013-08-091-0/+3
|
* Bug #699603 - Message list scrolls to cursor on style changeMilan Crha2013-08-013-0/+63
|
* [workaround] Bug #695633 - Attachments disappear after opening oneMilan Crha2013-07-312-4/+4
|
* EPreviewPane: Handle "new-activity" signals from EWebView.Matthew Barnes2013-07-281-0/+25
| | | | Configures the EActivity to submit alerts to the EPreviewPane.
* EPreviewPane cleanups.Matthew Barnes2013-07-282-25/+5
|
* EWebView: Add an "image-save" action.Matthew Barnes2013-07-282-1/+21
| | | | | | 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.
* Add e_web_view_cursor_image_save().Matthew Barnes2013-07-282-0/+236
| | | | | Prompts the user to choose a destination file and then asynchronously saves the image under the cursor to the destination file.
* Add e_web_view_cursor_image_copy().Matthew Barnes2013-07-283-157/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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()
* Add e_web_view_new_activity().Matthew Barnes2013-07-282-0/+51
| | | | | | | | | 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.
* Add e_web_view_request().Matthew Barnes2013-07-282-0/+160
| | | | | | | | | | | 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()
* Add e_web_view_suggest_filename().Matthew Barnes2013-07-282-0/+65
| | | | | | | | | | | 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.
* Add e_web_view_redirect_uri().Matthew Barnes2013-07-272-0/+43
| | | | | | | | | | 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.
* Remove e_web_view_get_uri().Matthew Barnes2013-07-272-9/+0
| | | | | | | 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.
* Remove unused e_web_view_set_enable_frame_flattening().Matthew Barnes2013-07-272-19/+0
|
* Remove unused e_web_view_get_enable_frame_flattening().Matthew Barnes2013-07-272-21/+0
|
* Remove unused e_web_view_frame_get_uri().Matthew Barnes2013-07-272-24/+0
|
* Remove unused e_web_view_frame_load_uri().Matthew Barnes2013-07-272-44/+0
|
* Remove unused e_web_view_frame_load_string().Matthew Barnes2013-07-272-46/+0
|
* Remove unused e_web_view_extract_uri().Matthew Barnes2013-07-272-41/+0
|
* EWebView: Initialize WebKitWebSettings internally.Matthew Barnes2013-07-272-63/+43
| | | | | | | | | | | | 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()
* EWebView cleanups.Matthew Barnes2013-07-271-188/+208
|
* Bug 697575 - ESourceConfig: Avoid calling check_complete() too soonMatthew Barnes2013-07-211-4/+11
| | | | | | | | | | 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
* Bug 704494 - EStockRequest calls into GTK+ from worker threadMatthew Barnes2013-07-201-16/+31
|
* EStockRequest cleanups.Matthew Barnes2013-07-201-91/+91
|
* Bug 704558 - Crash when using -fstack-protector-strongMatthew Barnes2013-07-201-1/+3
| | | | Same issue as in bug 703991, just in a different place.
* EContactStore: Stop book views in a dedicated threadMilan Crha2013-07-171-1/+18
| | | | | | 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.
* Remove tree-expanded.xpm and tree-unexpanded.xpm.Matthew Barnes2013-07-133-48/+0
| | | | No longer used.
* ERuleEditor: Remove dead code.Matthew Barnes2013-07-092-161/+0
| | | | | | Unfinished undo framework from ages past. Nice idea I guess, but not worth the complexity.
* Remove nautilus-sendto integration.Matthew Barnes2013-07-085-300/+0
| | | | | | | | 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.
* Miscellaneous cleanups.Matthew Barnes2013-07-076-19/+21
|
* Add e_activity_get_last_known_text().Matthew Barnes2013-07-062-0/+33
| | | | | | | | | | | | | | | | | | | | | | | 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")
* Remove GalViewFactory.Matthew Barnes2013-07-064-170/+0
| | | | No longer used.
* Remove GalViewFactoryEtable.Matthew Barnes2013-07-064-140/+0
| | | | No longer used.
* GalViewCollection: Load files during instance initialization.Matthew Barnes2013-07-063-249/+249
| | | | | | | | | | | 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()
* Remove gal_view_collection_add_factory().Matthew Barnes2013-07-062-34/+1
| | | | | | 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.
* GalViewCollection: We don't need no stinkin' factories!Matthew Barnes2013-07-061-15/+37
| | | | | | | | | 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.
* GalViewCollection: Move public members into private section.Matthew Barnes2013-07-063-121/+140
|
* GalViewCollection: Add a private section.Matthew Barnes2013-07-062-0/+14
|
* Use gal_view_collection_get_user_directory() where needed.Matthew Barnes2013-07-061-2/+8
| | | | | | GalViewInstance and EMailPanedView need access. Currently they're just using the public GalViewCollection members directly, but those are about to be sealed up.
* GalViewCollection: Add a "user-directory" property.Matthew Barnes2013-07-062-1/+39
| | | | | | | | | | 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()
* GalViewCollection: Add a "system-directory" property.Matthew Barnes2013-07-062-0/+55
| | | | | | | | Just readable for now, but I plan to make it also construct-only. New functions: gal_view_collection_get_system_directory()
* GalViewCollection cleanups.Matthew Barnes2013-07-062-71/+52
|
* Remove unused gal_view_collection_set_default_view().Matthew Barnes2013-07-062-13/+0
|
* Remove unused gal_view_collection_copy_view().Matthew Barnes2013-07-062-38/+0
|
* Remove unused gal_view_collection_append().Matthew Barnes2013-07-062-37/+0
|
* Remove unused gal_view_collection_get_view_id_by_index().Matthew Barnes2013-07-062-14/+0
|
* GalViewCollection: Remove "title" member.Matthew Barnes2013-07-062-17/+0
| | | | | | | | It's set by EShellView but not actually used for anything. Removed functions: gal_view_collection_set_title()
* GalViewCollection: Remove unused "display-view" signal.Matthew Barnes2013-07-062-38/+0
| | | | | | Removed functions: gal_view_collection_display_view()
* GalViewFactoryClass: Remove the new_view() method.Matthew Barnes2013-07-063-17/+4
| | | | | GalViewFactory can now use its "gal_view_type" class member to instantiate an appropriate GalView without help from subclasses.
* GalViewFactoryClass: Remove the get_type_code() method.Matthew Barnes2013-07-063-10/+8
| | | | | GalViewFactory can now use its "gal_view_type" class member to peek at the appropriate GalViewClass and return its static "type_code" string.
* GalViewFactoryClass: Add a "gal_view_type" member.Matthew Barnes2013-07-062-0/+3
| | | | | | | 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.
* GalViewClass: Replace get_type_code() with "type_code" string.Matthew Barnes2013-07-065-52/+24
| | | | | | 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.
* GalViewFactoryEtable: Remove "specification" property.Matthew Barnes2013-07-062-112/+3
| | | | | | | | No longer needed. Removed functions: gal_view_factory_etable_get_specification()
* GalViewEtable: Remove ETableState member.Matthew Barnes2013-07-061-31/+39
| | | | Obtain the ETableState from the attached ETable or ETree as needed.
* Remove gal_view_etable_set_state().Matthew Barnes2013-07-062-15/+0
| | | | No longer used.
* GalViewEtable: Remove ETableSpecification member.Matthew Barnes2013-07-063-57/+59
| | | | | | | 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.
* GalViewEtable: Add a private section.Matthew Barnes2013-07-062-45/+60
|
* GalView: Store the title string internally.Matthew Barnes2013-07-065-47/+32
| | | | | This replaces the get_title() and set_title() class methods, since it's silly to defer to subclasses to track a simple string property.
* GalView: Add a private section.Matthew Barnes2013-07-062-0/+13
|
* GalView-related cleanups.Matthew Barnes2013-07-066-97/+76
|
* GalViewFactory: Remove get_title() method.Matthew Barnes2013-07-063-28/+0
| | | | | | | | No longer used. Removed functions: gal_view_factory_get_title()
* GalView: Remove edit() method.Matthew Barnes2013-07-063-62/+0
| | | | | | | | No longer used. Removed functions: gal_view_edit()
* Remove GalViewNewDialog.Matthew Barnes2013-07-066-555/+0
| | | | No longer user.
* Remove GalDefineViewsModel.Matthew Barnes2013-07-066-456/+0
| | | | No longer used.
* Remove GalDefineViewsDialog.Matthew Barnes2013-07-066-710/+0
| | | | No longer used.
* Update evolution-util API docs.Matthew Barnes2013-07-022-3/+2
|
* ETableSpecification: Implement GInitable.Matthew Barnes2013-07-022-61/+154
| | | | | | | | | | | | | | | | 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()
* Remove e_tree_set_state().Matthew Barnes2013-07-022-28/+0
| | | | No longer used.
* Remove e_tree_get_state().Matthew Barnes2013-07-022-23/+0
| | | | No longer used.
* Remove e_table_set_state().Matthew Barnes2013-07-022-28/+0
| | | | No longer used.
* Remove e_table_get_state().Matthew Barnes2013-07-022-22/+0
| | | | No longer used.
* ETableHeaderItem: Avoid e_table_set_state().Matthew Barnes2013-07-021-6/+9
| | | | | | Use e_table_state_duplicate() and e_table_set_state_object(). Similarly for e_tree_set_state().
* Remove e_table_specification_load_from_string().Matthew Barnes2013-07-022-36/+7
| | | | | | | 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.
* Remove e_tree_new_from_spec_file().Matthew Barnes2013-07-022-94/+0
| | | | | | Also remove e_tree_construct_from_spec_file(). Use e_tree_new() or e_tree_construct() instead.
* Remove e_table_new_from_spec_file().Matthew Barnes2013-07-022-87/+0
| | | | | | Also remove e_table_construct_from_spec_file(). Use e_table_new() or e_table_construct() instead.
* e_tree_new: Take an ETableSpecification parameter.Matthew Barnes2013-07-022-27/+15
| | | | | Creating an ETableSpecification is failable, so it's now up to the caller to do that and handle errors before calling e_tree_new().
* e_table_new: Take an ETableSpecification parameter.Matthew Barnes2013-07-022-22/+13
| | | | | Creating an ETableSpecification is failable, so it's now up to the caller to do that and handle errors before calling e_table_new().
* Remove ETableWithout.Matthew Barnes2013-07-024-530/+0
| | | | No longer used.
* Remove ETableMemory.Matthew Barnes2013-07-024-360/+0
| | | | No longer used.
* Remove ETableMemoryStore.Matthew Barnes2013-07-024-778/+0
| | | | No longer used.
* ETableConfig: Use ETableColumnSelector.Matthew Barnes2013-07-023-1091/+475
| | | | | 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.
* Add ETableColumnSelector.Matthew Barnes2013-07-024-0/+547
| | | | | A new ETable column selection and ordering widget that looks like it was written in the 21st century. Derives from ETreeViewFrame.
* ETreeViewFrame: Fix runtime warning during dispose.Matthew Barnes2013-07-021-6/+2
|
* e_tree_new_from_spec_file: Remove unused "state_fn" parameter.Matthew Barnes2013-07-022-31/+7
|
* e_tree_new: Remove unused "state_str" parameter.Matthew Barnes2013-07-022-23/+7
|
* e_table_new_from_spec_file: Remove unused "state_fn" parameter.Matthew Barnes2013-07-022-31/+6
|
* e_table_new: Remove unused "state_str" parameter.Matthew Barnes2013-07-023-26/+8
|
* Remove e_table_column_specification_load_from_node().Matthew Barnes2013-07-022-35/+0
| | | | No longer used.
* Remove e_table_specification_load_from_node().Matthew Barnes2013-07-022-96/+0
| | | | No longer used.
* Reimplement e_table_specification_load_from_file().Matthew Barnes2013-07-021-7/+8
| | | | Use g_file_get_contents() and e_table_specification_load_from_string().
* Reimplement e_table_specification_load_from_string().Matthew Barnes2013-07-022-18/+392
| | | | New parser implementation that uses GMarkupParser instead of libxml2.
* Add e_table_state_parse_context_push/pop().Matthew Barnes2013-07-022-0/+234
| | | | New parser implementation that uses GMarkupParser instead of libxml2.
* Add e_table_sort_info_parse_context_push/pop().Matthew Barnes2013-07-022-0/+216
| | | | New parser implementation that uses GMarkupParser instead of libxml2.
* ETableSortInfo: Rework API to avoid exposing ETableSortColumn.Matthew Barnes2013-07-028-386/+536
| | | | | | | | 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.
* Add e_table_sort_info_sorting_remove().Matthew Barnes2013-07-023-10/+24
|
* ETableSortInfo: Move arrays to private section.Matthew Barnes2013-07-022-72/+65
| | | | And convert them to GArrays internally.
* ETableSortInfo: Use *unsigned* ints for index/length params.Matthew Barnes2013-07-022-20/+20
| | | | So we don't have to worry about negative values.
* ETableSortInfo: Move "sort_count" to private section.Matthew Barnes2013-07-022-13/+14
| | | | Use e_table_sort_info_sorting_get_count() to obtain the value.
* ETableSortInfo: Move "group_count" to private section.Matthew Barnes2013-07-022-10/+11
| | | | Use e_table_sort_info_grouping_get_count() to obtain the value.
* ETableSortInfo: Move "can_group" to private section.Matthew Barnes2013-07-022-10/+17
| | | | Use e_table_sort_info_get_can_group() to obtain the value.
* ETableSortInfo: Remove some unused public members.Matthew Barnes2013-07-021-3/+0
|
* ETableSortInfo: Add a "specification" construct-only property.Matthew Barnes2013-07-023-9/+125
| | | | | | | | | | 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()
* ETableSortInfo: Add a private section.Matthew Barnes2013-07-022-0/+14
|
* ETableSortInfo cleanups.Matthew Barnes2013-07-022-199/+201
|
* ETableState: Convert the column index array to a column spec array.Matthew Barnes2013-07-026-116/+170
|
* Add e_table_header_get_column_by_spec().Matthew Barnes2013-07-022-0/+35
| | | | Will eventually replace e_table_header_get_column_by_col_idx().
* ETableCol: Embed an ETableColumnSpecification.Matthew Barnes2013-07-0215-238/+139
| | | | Eliminates a few redundant fields.
* Add e_table_specification_get_column_index().Matthew Barnes2013-07-022-0/+44
| | | | | Lookups up the column index of an ETableColumnSpecification, returns a negative value if no match found.
* Add e_table_column_specification_equal().Matthew Barnes2013-07-022-0/+31
| | | | | Compares two ETableColumnSpecification instances for equality, which just means they both refer to the same model column number.
* ETableColumnSpecification: Make "sortable" a boolean.Matthew Barnes2013-07-023-10/+5
|
* ETableSpecification: Make the columns array private.Matthew Barnes2013-07-025-80/+133
| | | | Use e_table_specification_ref_columns() to access column specs.
* ETableSpecification: Add a private section.Matthew Barnes2013-07-022-0/+15
|
* Add e_table_specification_ref_columns().Matthew Barnes2013-07-022-1/+30
|
* ETableState: Add a "specification" construct-only property.Matthew Barnes2013-07-026-49/+143
| | | | | | | | | | 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()
* ETableState: Add a private section.Matthew Barnes2013-07-022-2/+28
|
* e-table-sorting-utils.c cleanups.Matthew Barnes2013-07-022-54/+101
|
* ETableGroupContainer cleanups.Matthew Barnes2013-07-021-13/+22
|
* Remove unused e_table_sort_info_freeze/thaw().Matthew Barnes2013-06-262-60/+2
|
* Remove unused e_table_column_specification_save_to_node().Matthew Barnes2013-06-262-33/+0
|
* Remove unused e_table_specification_save_to_node().Matthew Barnes2013-06-262-67/+0
|
* Remove unused e_table_specification_save_to_string().Matthew Barnes2013-06-262-33/+0
|
* Remove unused e_table_specification_duplicate().Matthew Barnes2013-06-262-29/+0
|
* Remove unused e_table_specification_save_to_file().Matthew Barnes2013-06-262-35/+0
|
* ETableState cleanups.Matthew Barnes2013-06-262-53/+40
|
* ETableSpecification cleanups.Matthew Barnes2013-06-262-112/+107
|
* Add ETreeViewFrame.Matthew Barnes2013-06-265-0/+1685
| | | | | | | | | | | | 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
* Notify user about question dialogsMilan Crha2013-06-241-0/+26
| | | | | | | | | Set an urgency hint on dialog's parent, or dialog itself, when it has no parent, to get user's attention to the dialog. For example, when there is a changed mail composer window on a different workspace than evolution's main window and user invokes quit by File->Quit in evolution, then the window is waiting for a response on the composer, but there was no hint it's waiting for anything.
* EUrlEntry: Try harder to recognize a valid URL.Matthew Barnes2013-06-241-2/+18
| | | | | | | Skip leading whitespace and hand the rest to g_uri_parse_scheme(). If that can identify a scheme then make the open button sensitive. (Have to be careful to skip leading whitespace when opening, too.)
* EUrlEntry: Replace button with clickable inline icon.Matthew Barnes2013-06-242-64/+31
| | | | | | | | 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.
* EUrlEntry cleanups.Matthew Barnes2013-06-242-90/+76
|
* Calendar views inline text edit with Ctrl+C/V/X does not workMilan Crha2013-06-2114-4/+302
| | | | | | | | The shortcuts Ctrl+C/V/X are used for whole calendar items copy/paste/cut, not for text when editing event details inline, either in a day/week view or in a list view. By tracking the is-editing property of respective cell editor and using it when enabling/disabling clipboard actions makes the respective text operations work as expected.
* ESelectionModel: Don't assume an ESorter is present.Matthew Barnes2013-06-211-4/+9
| | | | ETree does not provide one anymore.
* ETableSorter: Further cleanups.Matthew Barnes2013-06-212-359/+347
|
* ESorterArray: Further cleanups.Matthew Barnes2013-06-212-163/+145
|
* Convert ESorter to an interface.Matthew Barnes2013-06-216-290/+230
|
* Update ETree API documentation.Matthew Barnes2013-06-211-9/+9
|
* Remove e_tree_view_to_model_row().Matthew Barnes2013-06-212-13/+0
| | | | Now that ETree no longer has an ESorter, this function is silly.
* Remove e_sorter_new().Matthew Barnes2013-06-213-20/+1
| | | | | | ESorter itself does nothing useful, so there's no reason to create one. ESorter should really be an interface.
* ESorter cleanups.Matthew Barnes2013-06-212-79/+72
|
* Remove unused e_tree_find_next().Matthew Barnes2013-06-212-89/+0
|
* Remove unused e_tree_get_tooltip().Matthew Barnes2013-06-212-10/+0
|
* Remove unused e_tree_model_to_view_row().Matthew Barnes2013-06-212-14/+0
|
* Remove unused e_tree_get_prev_row().Matthew Barnes2013-06-212-20/+0
|
* Remove unused e_tree_get_next_row().Matthew Barnes2013-06-212-29/+0
|
* Remove unused e_tree_get_printable().Matthew Barnes2013-06-212-9/+0
|
* Remove unused e_tree_load_state().Matthew Barnes2013-06-212-28/+0
|
* Remove unused e_tree_set_search_column().Matthew Barnes2013-06-212-25/+0
|
* Remove unused e_tree_save_state().Matthew Barnes2013-06-212-21/+0
|
* Remove e_tree_row_count().Matthew Barnes2013-06-212-9/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); row_count = e_table_model_row_count (E_TABLE_MODEL (adapter));
* Remove e_tree_force_expanded_state().Matthew Barnes2013-06-212-14/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); e_tree_table_adapter_force_expanded_state (adapter, state);
* Remove e_tree_load_expanded_state_xml().Matthew Barnes2013-06-212-14/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); e_tree_table_adapter_load_expanded_state_xml (adapter, xml);
* Remove e_tree_save_expanded_state_xml().Matthew Barnes2013-06-212-9/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); xml = e_tree_table_adapter_save_expanded_state_xml (adapter);
* Remove e_tree_load_expanded_state().Matthew Barnes2013-06-212-12/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); e_tree_table_adapter_load_expanded_state (adapter, filename);
* Remove e_tree_save_expanded_state().Matthew Barnes2013-06-212-11/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); e_tree_table_adapter_save_expanded_state (adapter, filename);
* Remove e_tree_show_node().Matthew Barnes2013-06-212-11/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); e_tree_table_adapter_show_node (adapter, path);
* Remove e_tree_root_node_is_visible().Matthew Barnes2013-06-212-9/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); visible = e_tree_table_adapter_root_node_is_visible (adapter);
* Remove e_tree_row_of_node().Matthew Barnes2013-06-212-13/+6
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); row = e_tree_table_adapter_row_of_node (adapter, path);
* Remove e_tree_node_at_row().Matthew Barnes2013-06-212-16/+3
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); path = e_tree_table_adapter_node_at_row (adapter, row);
* Remove e_tree_root_node_set_visible().Matthew Barnes2013-06-212-11/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); e_tree_table_adapter_root_node_set_visible (adapter, visible);
* Remove e_tree_node_set_expanded_recurse().Matthew Barnes2013-06-212-14/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); e_tree_table_adapter_node_set_expanded_recurse (adapter, path, expanded);
* Remove e_tree_node_set_expanded().Matthew Barnes2013-06-212-13/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); e_tree_table_adapter_node_set_expanded (adapter, path, expanded);
* Remove e_tree_node_is_expanded().Matthew Barnes2013-06-212-11/+0
| | | | | | | Reducing API bloat. Do this instead: adapter = e_tree_get_table_adapter (tree); expanded = e_tree_table_adapter_node_is_expanded (adapter, path);
* Remove unused e_tree_right_click_up().Matthew Barnes2013-06-212-9/+0
|
* Remove unused e_tree_drag_unhighlight().Matthew Barnes2013-06-212-13/+0
|
* Remove unused e_tree_drag_highlight().Matthew Barnes2013-06-212-65/+0
|
* Remove unused e_tree_drag_get_data().Matthew Barnes2013-06-212-25/+0
| | | | It just calls gtk_drag_get_data() anyway.
* Remove unused e_tree_drag_dest_unset().Matthew Barnes2013-06-212-18/+0
| | | | It just calls gtk_drag_dest_unset() anyway.
* Remove unused e_tree_drag_dest_set_proxy().Matthew Barnes2013-06-212-19/+0
| | | | It just calls gtk_drag_dest_set_proxy() anyway.
* Remove e_tree_drag_dest_set().Matthew Barnes2013-06-212-22/+0
| | | | Reducing API bloat. Call gtk_drag_dest_set() directly instead.
* Remove e_tree_selected_path_foreach().Matthew Barnes2013-06-212-15/+0
| | | | | | | Reducing API bloat. Do this instead: selection = (ETreeSelectionModel *) e_tree_get_selection_model (tree); e_tree_selection_model_foreach (selection, callback, closure);
* Remove e_tree_selected_row_foreach().Matthew Barnes2013-06-212-15/+0
| | | | | | | Reducing API bloat. Do this instead: selection = (ESelectionModel *) e_tree_get_selection_model (tree); e_selection_model_foreach (selection, callback, closure);
* ETree cleanups.Matthew Barnes2013-06-212-869/+843
|
* Remove unused e_bit_array_invert_selection().Matthew Barnes2013-06-202-21/+0
|
* Remove unused e_selection_model_invert_selection().Matthew Barnes2013-06-204-73/+0
|
* Remove unused e_table_invert_selection().Matthew Barnes2013-06-202-15/+0
|
* Bug 702006 - Select All does not select collapsed threadsMatthew Barnes2013-06-201-6/+29
|
* ETreeTableAdapter: Further cleanups.Matthew Barnes2013-06-201-45/+62
|
* Add e_tree_model_node_get_n_nodes().Matthew Barnes2013-06-202-0/+15
| | | | | Returns the total number of nodes in the tree model, including hidden nodes in collapsed tree branches.
* ETreeTableAdapter cleanups.Matthew Barnes2013-06-192-281/+467
| | | | | | | | | | | | | 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()
* Convert ETableModel to an interface.Matthew Barnes2013-06-1913-196/+245
| | | | Similar to what was recently done to ETreeModel.
* ETable-related cleanups.Matthew Barnes2013-06-1928-1178/+1301
|
* Remove unused ETableMemoryCallbacks.Matthew Barnes2013-06-195-386/+25
|
* Remove unused ETableMemoryStoreCustomColumn.Matthew Barnes2013-06-191-12/+3
|
* Remove unused E_TABLE_MEMORY_STORE_COLUMN_TYPE_OBJECT.Matthew Barnes2013-06-192-22/+1
|
* Remove unused E_TABLE_MEMORY_STORE_COLUMN_TYPE_CUSTOM.Matthew Barnes2013-06-192-12/+0
|
* ETreeSelectionModel: Further cleanups.Matthew Barnes2013-06-181-179/+195
|
* ETreeSelectionModel: Modernize GHashTable usage.Matthew Barnes2013-06-181-61/+36
|
* Remove e_tree_model_node_is_editable().Matthew Barnes2013-06-163-33/+1
| | | | It always returned FALSE.
* Remove e_tree_model_set_value_at().Matthew Barnes2013-06-163-27/+1
| | | | Was never called.
* Remove e_tree_model_has_get_node_by_id().Matthew Barnes2013-06-164-31/+5
| | | | It always returned TRUE.
* Remove e_tree_model_has_save_id().Matthew Barnes2013-06-165-29/+2
| | | | It always returned TRUE.
* Remove e_tree_model_icon_at().Matthew Barnes2013-06-163-64/+3
| | | | It always returned NULL.
* Convert ETreeModel to an interface.Matthew Barnes2013-06-168-1140/+130
| | | | | | | | | | | | | | | | 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().
* Add e_tree_memory_get_n_children().Matthew Barnes2013-06-164-34/+14
| | | | | | Replaces e_tree_memory_get_children(). The "paths" output parameter was unused, and was a bad idea anyway.
* Simplify ETreeMemory.Matthew Barnes2013-06-162-186/+56
| | | | Instead of reinventing GNode, use GNode.
* Remove e_tree_model_has_change_pending().Matthew Barnes2013-06-163-33/+0
| | | | ETreeMemory does not implement this, so it's always FALSE.
* ETreeModel: Further cleanups.Matthew Barnes2013-06-152-152/+163
|
* Remove unused e_tree_model_new().Matthew Barnes2013-06-152-14/+0
|
* Remove unused e_tree_model_node_request_collapse().Matthew Barnes2013-06-153-52/+0
|
* Remove unused e_tree_model_node_col_changed().Matthew Barnes2013-06-154-77/+0
|
* Remove unused e_tree_model_no_change().Matthew Barnes2013-06-154-55/+0
|
* Remove unused e_tree_model_node_traverse_preorder().Matthew Barnes2013-06-152-40/+0
|
* Remove unused e_tree_model_node_get_prev().Matthew Barnes2013-06-153-36/+0
|
* Remove unused e_tree_model_node_get_last_child().Matthew Barnes2013-06-153-37/+0
|
* e_tree_model_node_find: Remove "forward_direction" parameter.Matthew Barnes2013-06-153-44/+14
| | | | It's always TRUE.
* ETreeMemory: Further cleanups.Matthew Barnes2013-06-152-134/+137
|
* ETreeMemory: Remove unused "fill-in-children" signal.Matthew Barnes2013-06-152-68/+0
|
* Remove unused e_tree_memory_new().Matthew Barnes2013-06-152-14/+0
|
* Remove unused e_tree_memory_construct().Matthew Barnes2013-06-152-12/+0
|
* Remove unused e_tree_memory_set_node_destroy_func().Matthew Barnes2013-06-152-18/+0
|
* Remove unused e_tree_memory_sort_node().Matthew Barnes2013-06-152-86/+0
|
* Remove unused e_tree_memory_node_insert_before().Matthew Barnes2013-06-152-40/+0
|
* Remove unused e_tree_memory_node_insert_id().Matthew Barnes2013-06-152-15/+0
|
* Remove unused ETreeSorted.Matthew Barnes2013-06-154-1540/+0
|
* EMenuToolButton cleanups.Matthew Barnes2013-06-112-33/+38
|
* Add e_source_selector_update_all_rows().Matthew Barnes2013-06-112-0/+33
| | | | | Calls e_source_selector_update_row() for each ESource being shown by the ESourceSelector, according to the "extension-name" property.
* Add EAutomaticActionPolicy enum.Matthew Barnes2013-06-051-0/+20
| | | | To have a proper GEnumClass registered for ask/always/never choices.
* Make EAlertDialog non-resizable.Matthew Barnes2013-05-301-13/+5
| | | | | | | | | | Making EAlertDialog non-resizable is the only way at present for GTK+ to pick a resonable default size, otherwise we get alerts looking like this: https://bugzilla.gnome.org/attachment.cgi?id=221303 See https://bugzilla.gnome.org/681937 for details. Also drop the default window size hack in alert_dialog_constructed().
* Bug 700277 - EClientCache allocates memory ad infinityMatthew Barnes2013-05-301-0/+95
| | | | | Remove a ClientData entry on "source-removed" or "source-disabled" signals from the ESourceRegistry.
* Rename libeutil to libevolution-util.Matthew Barnes2013-05-281-13/+13
| | | | | | To make Evolution's shared libraries more consistent. Also rename the documentation module to evolution-util.
* configure.ac: Remove unused function and header checks.Matthew Barnes2013-05-281-31/+2
| | | | | | | | | | | | | | | | | This removes the following definitions from config.h: CTIME_R_THREE_ARGS GETHOSTBYADDR_R_SEVEN_ARGS GETHOSTBYNAME_R_FIVE_ARGS HAVE_ISBLANK HAVE_MKSTEMP HAVE_STATFS HAVE_STATVFS HAVE_SYS_MOUNT_H HAVE_SYS_PARAM_H HAVE_SYS_STATVFS_H These were all either unused or unnecessarily used.
* Make EAttachment column updates thread-safe.Matthew Barnes2013-05-241-8/+125
| | | | | | | | | EAttachment updates its tree model row directly in response to property change notifications, but now change notifications can come from worker threads whereas the tree model row should only be updated from the main thread. To compensate, respond to notifications by adding idle sources to the default context. The idle callback will update the row from the appropriate thread.
* Make EAttachment a little more thread-safe.Matthew Barnes2013-05-247-93/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | EAttachment is now used from worker threads by EMailFormatterAttachment, so add some thread-safe accessor functions to eliminate potential races. Added thread-safe functions: e_attachment_dup_disposition() e_attachment_ref_file() e_attachment_ref_file_info() e_attachment_ref_icon() e_attachment_ref_mime_part() e_attachment_dup_description() e_attachment_dup_thumbnail_path() Renamed functions: e_attachment_get_mime_type() -> e_attachment_dup_mime_type() Removed non-thread-safe functions: e_attachment_get_file() e_attachment_get_file_info() e_attachment_get_icon() e_attachment_get_mime_part() e_attachment_get_description() e_attachment_get_thumbnail_path()
* Attachment-related cleanups.Matthew Barnes2013-05-244-132/+137
|
* Minor e_web_view_install_request_handler() cleanup.Matthew Barnes2013-05-151-7/+4
| | | | Make reference count handling a bit less awkward.
* Bug #699980 - Calendar delete does not remove events from viewMilan Crha2013-05-141-0/+5
|
* Coding style and whitespace cleanup.Matthew Barnes2013-05-081-1/+1
|
* EPhotoCache: Forgot to unlock a mutex.Matthew Barnes2013-04-271-0/+2
| | | | Yikes, that would be bad...
* EPhotoCache: Fix deadlock when cancelling subtasks.Matthew Barnes2013-04-271-16/+32
| | | | | | | This seems to have started with the gravatar module. SoupRequest is apparently quite eager to cancel HTTP requests -- so much so that we need to slow it down within EPhotoCache, so we don't wind up calling g_cancellable_disconnect() during a GCancellable signal emission.
* Bug 698488 - Attachment file chooser should preview attachments' content ↵Fabiano Fidêncio2013-04-261-0/+35
| | | | when possible
* Add e_activity_cancel().Matthew Barnes2013-04-254-6/+30
| | | | Convenience function cancels the activity's GCancellable.
* Document EActivity.Matthew Barnes2013-04-251-3/+183
|
* EPhotoSource fixupMatthew Barnes2013-04-241-2/+2
|
* Reimplement EPhotoCache to use EPhotoSource.Matthew Barnes2013-04-242-280/+658
| | | | | | | | | | | | | | | | | | | | | 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()
* Add EPhotoSource interface.Matthew Barnes2013-04-244-0/+202
| | | | | | | | | 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.
* Add EDataCapture.Matthew Barnes2013-04-244-0/+441
| | | | | | | | | | 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.
* Update libeutil API docs.Matthew Barnes2013-04-241-1/+1
|
* [EMailFormatter] Use GdkRGBA and GtkStyleContext to get theme colorsMilan Crha2013-04-232-4/+4
| | | | | | | | | | It could happen that header text color had been picked white one time, but the other time black as expected (for me usually when I started Evolution in Calendar and moved to Mail view, the header text color was white, while when starting in Mail view it was black). The change to use GtkStyleContext is there only as a cleanup from deprecated GtkStyle, and to make things easier too, because both GtkStyle and the GtkStyleContext had set white color for some reason.