aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-folder-tree-model.h
Commit message (Collapse)AuthorAgeFilesLines
* EMFolderTreeModel: Remove COL_STRING_URI.Matthew Barnes2012-04-091-2/+0
| | | | Further chipping away at internal URI usage...
* Introduce libemail-engine and libemail-utils.Matthew Barnes2012-01-191-1/+1
| | | | | | | These libraries are bound for E-D-S so they live at the lowest layer of Evolution for now -- even libeutil can link to them (but please don't). This is the first step toward moving mail handing to a D-Bus service.
* Reorder accounts by drag-and-drop.Matthew Barnes2011-12-111-5/+3
| | | | | | | | | | | | | | | | | | | | | This implements https://bugzilla.gnome.org/show_bug.cgi?id=663527#c3. Account reordering is now done by drag-and-drop instead of up/down buttons. Turned out to be a wee bit more complicated than I initially thought. This scraps EAccountManager and EAccountTreeView and replaces them with new classes centered around EMailAccountStore, which EMailSession owns. EMailAccountStore is the model behind the account list in Preferences. The folder tree model now uses it to sort its own top-level rows using gtk_tree_path_compare(). It also broadcasts account operations through signals so we don't have to rely so heavily on EAccountList signals, since EAccountList is going away soon. Also as part of this work, the e-mail-local.h and e-mail-store.h APIs have been merged into EMailSession and MailFolderCache.
* EMFolderTreeModel: Don't use parameters in "get_default" functions.Matthew Barnes2011-09-261-7/+2
| | | | | | | | Drop EMFolderTreeModel's "session" property now that it has a "backend" property and call em_folder_tree_model_set_backend() where we used to call em_folder_tree_model_set_session(). The session can still be obtained through e_mail_backend_get_session().
* Bug #351025 - Make the order of the mail accounts configurableMilan Crha2011-09-261-2/+9
|
* Miscellaneous cleanups.Matthew Barnes2011-08-311-1/+0
| | | | | | | Reducing diff noise with the account-mgmt branch. Trying to erode our dependency on EAccount as much as possible, or at least isolate its usage, to make things easier for me on the branch.
* Use new CamelService:display-name property.Matthew Barnes2011-08-181-2/+1
| | | | Simplify, simplify...
* Add em_folder_tree_model_list_stores().Matthew Barnes2011-05-291-0/+2
| | | | | | Lists all the CamelStores added to EMFolderTreeModel. Note that CamelStores with a corresponding EAccount are only added if the EAccount is enabled, so it's safe to assume all returned CamelStores are enabled.
* Remove account from EMFolderTreeModelStoreInfo.Matthew Barnes2011-05-281-1/+0
| | | | | The struct already has a CamelStore, and the CamelStore UID is the same as the EAccount UID, so it's easy to lookup the corresponding EAccount.
* Remove display_name from EMFolderTreeModelStoreInfo.Matthew Barnes2011-05-281-2/+0
| | | | | It was only being used to look up an EAccount UID, but we already had the CamelStore, and the CamelStore UID is the same as the EAccount UID.
* Remove EMFolderTreeModel::folder-added signal.Matthew Barnes2011-05-041-4/+0
| | | | No one was listening.
* Change em_folder_tree_model_user_marked_unread() params.Matthew Barnes2011-05-031-1/+1
| | | | Take a CamelFolder instead of a folder URI string.
* Give MailSession a permanent home.Matthew Barnes2010-10-131-0/+7
| | | | | | | | | | | Global variables in shared libraries are a bad idea. EMailBackend now owns the MailSession instance, which is actually now EMailSession. Move the blocking utility functions in mail-tools.c to e-mail-session.c and add asynchronous variants. Same approach as Camel. Replace EMailReader.get_shell_backend() with EMailReader.get_backend(), which returns an EMailBackend. Easier access to the EMailSession.
* Coding style cleanups.Matthew Barnes2010-09-131-1/+1
|
* Coding style and whitespace cleanup.Matthew Barnes2010-08-291-16/+20
|
* Bug 626724 - Folder tree mistakes "mark as unread" as new mailMatthew Barnes2010-08-121-1/+5
|
* Only #include Camel's top-level header.Matthew Barnes2010-04-031-1/+1
|
* MailFolderCache: add signal for updated unread countsJonathon Jongsma2009-12-161-5/+0
| | | | | | | | Emit a signal when we have an updated unread count for a folder rather than pushing the update directly to a particular treemodel. This doesn't yet remove the dependency on EMFolderTreeModel, but it's a first step. https://bugzilla.gnome.org/show_bug.cgi?id=604627
* Bug #339628 - Non-default Draft folders are Draft folders tooMilan Crha2009-10-161-0/+1
|
* Split store and local folder management out from shell backend.Matthew Barnes2009-06-241-5/+3
|
* Thought of a better way to copy folder tree state.Matthew Barnes2009-06-141-1/+6
| | | | | | Revert the expanded tree model column and add a "selection"property to EMFolderTreeModel, which the sidebar sets. If set, all new EMFolderTree instances will automatically mimic its expanded and selected state.
* Clean up EMFolderTreeModel.Matthew Barnes2009-06-141-34/+49
|
* Use key files for tracking widget states.Matthew Barnes2009-06-131-21/+1
| | | | | | | | | | | | | | | | | Each EShellView now maintains a GKeyFile for recording disposable widget state such as tree view path expansion, scroll bar positions, combo box selections, etc. The EShellView records changes to the key file to ~/.evolution/<shell-backend>/config/state, and automatically restores the GKeyFile at startup. Currently only the mailer uses the key file, but it's intended to serve all shell views. It replaces the use of Camel "cmeta" files, as well as "et-expanded-*" and "folder-tree-expand-state.xml" files. Also, the mailer's folder tree model now includes a column for tracking which sidebar folders are expanded. Folder tree widgets appearing in dialog windows can copy the sidebar's expanded state using em_folder_tree_clone_expanded().
* Bug 323037 – Folder emblem to show new mail arrivalMilan Crha2009-06-011-0/+1
|
* Prefer GLib basic types over C types.Matthew Barnes2009-05-271-23/+23
|
* Merge branch 'master' into kill-bonoboMatthew Barnes2009-05-271-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: a11y/widgets/ea-combo-button.c a11y/widgets/ea-combo-button.h addressbook/gui/component/addressbook-component.c addressbook/gui/component/addressbook-component.h addressbook/gui/component/addressbook-view.c addressbook/gui/component/addressbook-view.h addressbook/gui/component/component-factory.c addressbook/gui/widgets/e-addressbook-view.c addressbook/gui/widgets/eab-contact-display.c addressbook/gui/widgets/eab-gui-util.h addressbook/gui/widgets/eab-menu.c addressbook/gui/widgets/eab-menu.h addressbook/gui/widgets/eab-popup-control.c addressbook/gui/widgets/eab-popup-control.h addressbook/gui/widgets/eab-popup.c addressbook/gui/widgets/eab-popup.h calendar/gui/cal-search-bar.c calendar/gui/calendar-commands.c calendar/gui/calendar-component.c calendar/gui/comp-editor-factory.c calendar/gui/comp-editor-factory.h calendar/gui/control-factory.c calendar/gui/dialogs/comp-editor.c calendar/gui/e-cal-component-memo-preview.c calendar/gui/e-cal-component-memo-preview.h calendar/gui/e-calendar-table.c calendar/gui/e-memo-table.c calendar/gui/e-memos.c calendar/gui/e-tasks.c calendar/gui/gnome-cal.c calendar/gui/gnome-cal.h calendar/gui/itip-bonobo-control.c calendar/gui/itip-bonobo-control.h calendar/gui/main.c calendar/gui/memos-component.c calendar/gui/memos-control.c calendar/gui/memos-control.h calendar/gui/migration.c calendar/gui/migration.h calendar/gui/tasks-component.c calendar/gui/tasks-control.c calendar/importers/main.c composer/Makefile.am composer/e-composer-header-table.c composer/e-composer-header.c composer/e-composer-header.h composer/e-composer-name-header.c composer/e-composer-private.c composer/e-composer-text-header.c composer/e-msg-composer.c composer/e-msg-composer.h e-util/e-corba-utils.h e-util/e-logger.c e-util/e-logger.h e-util/e-util-labels.c e-util/e-util-labels.h em-format/em-format.c mail/Makefile.am mail/e-mail-shell-migrate.c mail/em-account-editor.c mail/em-account-editor.h mail/em-composer-prefs.c mail/em-composer-utils.c mail/em-composer-utils.h mail/em-folder-browser.c mail/em-folder-tree-model.c mail/em-folder-tree.c mail/em-folder-tree.h mail/em-folder-utils.c mail/em-folder-utils.h mail/em-folder-view.c mail/em-format-html-display.c mail/em-format-html.c mail/em-mailer-prefs.c mail/em-mailer-prefs.h mail/em-message-browser.c mail/em-message-browser.h mail/em-network-prefs.h mail/em-popup.c mail/em-utils.c mail/importers/Makefile.am mail/mail-component-factory.c mail/mail-component.c mail/mail-config-factory.c mail/mail-config-factory.h mail/mail-config.c mail/mail-dialogs.glade mail/mail-types.h plugins/calendar-weather/calendar-weather.c plugins/mail-account-disable/mail-account-disable.c plugins/select-one-source/select-one-source.c po/POTFILES.in shell/e-component-registry.c shell/e-component-registry.h shell/e-component-view.c shell/e-component-view.h shell/e-corba-config-page.c shell/e-corba-config-page.h shell/e-shell-constants.h shell/e-shell-settings-dialog.c shell/e-shell-settings-dialog.h shell/e-shell-window-commands.c shell/e-shell-window.c shell/e-shell.h shell/e-sidebar.c shell/e-sidebar.h shell/e-user-creatable-items-handler.c shell/e-user-creatable-items-handler.h shell/es-menu.c shell/es-menu.h shell/evolution-component.h shell/evolution-config-control.c shell/evolution-config-control.h shell/evolution-listener.c shell/evolution-listener.h shell/evolution-shell-component-utils.c shell/evolution-shell-component-utils.h shell/importer/evolution-importer-client.c shell/importer/evolution-importer-client.h shell/importer/evolution-importer-listener.c shell/importer/evolution-importer-listener.h shell/importer/evolution-importer.c shell/importer/evolution-importer.h shell/importer/evolution-intelligent-importer.c shell/importer/evolution-intelligent-importer.h shell/importer/intelligent.c shell/main.c shell/test/evolution-test-component.c shell/test/evolution-test-component.h widgets/menus/gal-view-instance.c widgets/menus/gal-view-menus.c widgets/menus/gal-view-menus.h widgets/misc/Makefile.am widgets/misc/e-activity-handler.c widgets/misc/e-activity-handler.h widgets/misc/e-charset-picker.c widgets/misc/e-combo-button.c widgets/misc/e-combo-button.h widgets/misc/e-config-page.h widgets/misc/e-dropdown-button.c widgets/misc/e-dropdown-button.h widgets/misc/e-filter-bar.c widgets/misc/e-info-label.c widgets/misc/e-info-label.h widgets/misc/e-multi-config-dialog.c widgets/misc/e-multi-config-dialog.h widgets/misc/e-search-bar.c widgets/misc/e-search-bar.h widgets/misc/e-task-bar.c widgets/misc/e-task-bar.h widgets/misc/e-task-widget.c widgets/misc/e-task-widget.h widgets/misc/test-dropdown-button.c widgets/misc/test-error.c widgets/misc/test-info-label.c widgets/table/e-table-example-1.c
| * Remove trailing whitespace, again.Matthew Barnes2009-05-271-1/+1
| |
| * Use named icons in the folder tree instead of pixbufs.Matthew Barnes2009-05-251-0/+2
| |
| * Change License from GPL to LGPL. 2nd batch.Sankarasivasubramanian Pasupathilingam2008-09-031-15/+14
| | | | | | | | | | | | More changes to come. svn path=/trunk/; revision=36247
* | Adapt mail to EShellBackend changes.Matthew Barnes2009-05-081-4/+4
| | | | | | | | | | Again, builds but not tested. Lots of compiler warnings to clean up, but I don't have the energy for it. This was pretty grueling.
* | Make the sidebar icon follow the folder icon.Matthew Barnes2009-01-251-0/+2
| | | | | | | | | | | | Fix more runtime warnings. svn path=/branches/kill-bonobo/; revision=37130
* | Get the mail folder tree compiling, though I'm not yet sure why it's notMatthew Barnes2008-10-171-26/+34
| | | | | | | | | | | | showing anything. Probably something stupid. Also enabled the composer. svn path=/branches/kill-bonobo/; revision=36623
* | Merge revisions 36016:36303 from trunk.Matthew Barnes2008-09-111-15/+14
|/ | | | svn path=/branches/kill-bonobo/; revision=36307
* fixed copyright noticesJeffrey Stedfast2008-06-211-1/+1
| | | | svn path=/trunk/; revision=35663
* ** Fix for bug #534039Milan Crha2008-06-201-1/+0
| | | | | | | | | | | | | | | | | | | | 2008-06-20 Milan Crha <mcrha@redhat.com> ** Fix for bug #534039 * em-folder-tree-model.h: (em_folder_tree_model_signal_block): * em-folder-tree-model.c: (em_folder_tree_model_signal_block): Removed obsolete function. * mail-vfolder.c: (vfolder_load_storage): Add storage to the tree model when everything is loaded, thus everything will be shown when enabling the Search Folders on demand. Also ensure the Search Folders to be enabled next start. * mail-vfolder.c: (mail_vfolder_add_uri), (mail_vfolder_delete_uri): Track folders even when Search Folders disabled, to have them known when enabling Search Folders on demand. svn path=/trunk/; revision=35658
* ** Allow evolution to build with G_DISABLE_SINGLE_INCLUDES andMatthew Barnes2008-06-061-2/+1
| | | | | | | | | | 2008-06-06 Matthew Barnes <mbarnes@redhat.com> ** Allow evolution to build with G_DISABLE_SINGLE_INCLUDES and GTK_DISABLE_SINGLE_INCLUDES defined. (#536637) svn path=/trunk/; revision=35606
* ** Fix for bug #511488Srinivasa Ragavan2008-01-281-0/+1
| | | | | | | | | | | | | | | | 2008-01-24 Srinivasa Ragavan <sragavan@novell.com> ** Fix for bug #511488 * em-folder-tree-model.c: (em_folder_tree_model_signal_block): * em-folder-tree-model.h: Function to block folder-created function. * mail-vfolder.c: (vfolder_load_storage): Block the signal handler when loading. svn path=/trunk/; revision=34905
* Send the folder name along with the new mail event.Srinivasa Ragavan2008-01-021-0/+1
| | | | | | | | | | | | | 2008-01-02 Srinivasa Ragavan <sragavan@novell.com> * em-event.c: (eme_target_free): * em-event.h: * em-folder-tree-model.c: (em_folder_tree_model_get_folder_name): * em-folder-tree-model.h: * mail-folder-cache.c: (real_flush_updates): Send the folder name along with the new mail event. svn path=/trunk/; revision=34744
* ** Remove trailing whitespace from source code.Matthew Barnes2007-11-151-9/+9
| | | | | | | | | 2007-11-14 Matthew Barnes <mbarnes@redhat.com> ** Remove trailing whitespace from source code. svn path=/trunk/; revision=34537
* ** Fix for bug #343011 (restore collapse state of selected folder afterMilan Crha2007-11-051-0/+3
| | | | | | | | | | | | | | | | | | | | | 2007-11-05 Milan Crha <mcrha@redhat.com> ** Fix for bug #343011 (restore collapse state of selected folder after start) * em-folder-tree.c: (emft_maybe_expand_row): Do not expand subtree of a node, only make it visible. * em-folder-tree-model.h: (em_folder_tree_model_get_expanded_uri), (em_folder_tree_model_set_expanded_uri): * em-folder-tree-model.c: (em_folder_tree_model_get_expanded_uri), (em_folder_tree_model_set_expanded_uri): Same as ..._get/_set_expanded, but using 'uri', instead of 'key'. * em-folder-tree-model.c: (emftm_uri_to_key): New helper function. * mail-component.c: (impl_createView): Restore collapsed state after selecting last selected folder, if necessary. svn path=/trunk/; revision=34503
* Update FSF address in header comments (#469886). Patch from TobiasMatthew Barnes2007-09-021-1/+1
| | | | | | | | | | 2007-09-02 Matthew Barnes <mbarnes@redhat.com> * Update FSF address in header comments (#469886). Patch from Tobias Mueller. svn path=/trunk/; revision=34151
* Improvements to the new mail hook.Srinivasa Ragavan2007-05-031-0/+1
| | | | svn path=/trunk/; revision=33470
* use libedataserver/e-account-list.h instead of e-util/e-account-list.h.Simon Zheng2006-01-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | 2006-01-06 Simon Zheng <simon.zheng@sun.com> * em-account-editor.c: * em-account-prefs.c: * em-composer-utils.c: * em-folder-tree-model.h: * em-migrate.c: * em-subscribe-editor.c: * em-utils.c: * importers/netscape-importer.c: * mail-config.c: * mail-crypto.c: * mail-ops.h: * mail-send-recv.c: * mail-vfolder.c: use libedataserver/e-account-list.h instead of e-util/e-account-list.h. use libedataserver/e-account.h instead of e-util/e-account.h. svn path=/trunk/; revision=31075
* Fixes bug #58825. Ugh. Really Gross Hack (tm).Jeffrey Stedfast2004-06-111-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-06-10 Jeffrey Stedfast <fejj@novell.com> Fixes bug #58825. Ugh. Really Gross Hack (tm). * em-folder-tree.c (emft_tree_row_expanded): If the store that we are expanding matches the uri that we've been requested to select (e.g. from before the store was added to the tree), then give the uri to the get_folder_info_op. (em_folder_tree_set_selected): If the store for the uri isn't in the tree yet, save the uri for later. * mail-component.c (folder_selected_cb): Set the selected state of the folder-tree and save it. (impl_createControls): Restore the selected state on the folder-tree. * em-folder-tree-model.c (em_folder_tree_model_set_selected): New function to set the selected-uri saved state. (em_folder_tree_model_get_selected): New function to get the selected uri saved state. (em_folder_tree_model_save_state): Renamed. * em-folder-tree.c (emft_update_model_expanded_state): Don't let path be NULL if the node is a store node (path == NULL for any other case is a bug). (emft_maybe_expand_row): Same. svn path=/trunk/; revision=26294
* set the default selection to inbox.Not Zed2004-05-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-05-26 Not Zed <NotZed@Ximian.com> * importers/evolution-mbox-importer.c (create_control_fn): set the default selection to inbox. * importers/evolution-outlook-importer.c (folder_selected) (create_control_fn): copied from mbox importer. fixes a crash & lets you choose the target folder. 2004-05-25 Not Zed <NotZed@Ximian.com> * mail-component.c (mc_add_local_store_done): removed, now redundant. * em-folder-tree.c (em_folder_tree_set_selected): fix for path changes. * em-folder-tree-model.c (em_folder_tree_model_set_unread_count): change to use full name rather than path name. * em-folder-tree-model.h: renamed path_hash to full_hash. * em-folder-tree-model.c (folder_subscribed): dont use g_path_get_dirname here, it is os dependent, we want / always. (full_hash_free): rename from path_hash free. svn path=/trunk/; revision=26090
* Fix for bug #57152.Jeffrey Stedfast2004-05-081-1/+1
| | | | | | | | | | | | | | | | | | | | 2004-05-07 Jeffrey Stedfast <fejj@ximian.com> Fix for bug #57152. * em-folder-tree.c (emft_get_folder_info__got): If we queried for a recursive folder-info listing, then pass fully_loaded as TRUE to set_folder_info(). (emft_get_folder_info__got): If we find that a folder doesn't have children, set the expanded state to FALSE. * em-folder-tree-model.c (em_folder_tree_model_set_folder_info): Now takes a "fully_loaded" argument to hint to set_folder_info whether or not folder-info's without child nodes can possibly have children (eg. if fully_loaded is set and fi->child is NULL, then 'load' will be FALSE no matter what fi->flags contains). svn path=/trunk/; revision=25826
* Fix for bug #55358.Jeffrey Stedfast2004-03-171-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-03-16 Jeffrey Stedfast <fejj@ximian.com> Fix for bug #55358. * em-folder-tree.c (emft_expand_node): Changed to be the callback function for em_folder_tree_model_expand_foreach(). (emft_maybe_expand_row): Renamed from emft_loading_row_cb(). We now handle both "loading-row" an "loaded-row" signals. Also updated for slight change in key generation. (em_folder_tree_new_with_model): Connect to the "loaded-row" signal. (emft_update_model_expanded_state): Updated for slight change in key generation. * em-folder-tree-model.c (em_folder_tree_model_add_store): Emit the "loaded-row" signal for the newly added store. (em_folder_tree_model_set_folder_info): Emit "loaded-row" for the row we've just set the info on (but only after we've added a child node if there is one, so the signal handler can expand the newly added row if appropriate). (em_folder_tree_model_class_init): Setup the "loaded-row" signal. (em_folder_tree_model_finalize): The tree-state is now an xml file and not a binary file, so change the expanded free func. (em_folder_tree_model_load_state): Load the expand-state xml file. If one doesn't exist, setup some defaults. (em_folder_tree_model_get_expanded): Scan the XML tree for the node. (em_folder_tree_model_set_expanded): Same. (em_folder_tree_model_save_expanded): Save the expand-state xml tree to disk. (em_folder_tree_model_expand_foreach): New function to iterate over all xml nodes and call the callback if the expand state is "true". svn path=/trunk/; revision=25094
* pass the raw header in instead of name and value. (efh_format_headers): ifNot Zed2004-03-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2004-03-11 Not Zed <NotZed@Ximian.com> * em-format-html.c (efh_format_header): pass the raw header in instead of name and value. (efh_format_headers): if we have specific headers to show, iterate over all headers and print out all matching ones, so duplicate headers are properly displayed. Related to #55298. * em-folder-selector.c (em_folder_selector_construct): dont set this to be modal. otherwise you can't click on error popups. duh. 2004-03-08 Not Zed <NotZed@Ximian.com> * em-folder-selection-button.c (em_folder_selection_button_clicked): don't let the user select virtual/vtrash folders or non-selectable folders. * mail-component.c (impl_createControls): disable selection of non-select rows. * em-folder-selector.c (em_folder_selector_create_new): exclude folders with noinferiors set. * em-folder-tree.c (folder_tree_new): add folder tree arg, hook onto the selection funciton for the tree selection. (emft_select_func): selection override function. allow certain things to be excluded. (em_folder_tree_set_excluded): api to set what is excluded from the selectability. (emft_tree_row_activated): call emft_select_func check to see if this row is excluded before emitting an activated signal. * em-folder-tree-model.c (em_folder_tree_model_set_folder_info): save folder info->flags in the tree store. * mail-folder-cache.c (create_folders): use tail recursion. (get_folders): tail recurse. * (*): Fixed for api changes in camel. svn path=/trunk/; revision=25020
* Partial fix for bug #53862Jeffrey Stedfast2004-03-111-0/+4
| | | | | | | | | | | | | | | | | 2004-03-10 Jeffrey Stedfast <fejj@ximian.com> Partial fix for bug #53862 * em-folder-selector.c (emfs_response): Connect to the newly added "folder-added" signal and save a created_uri string so that we can be sure to only listen for the creation of the folder the user created in *our* create-folder dilog (and not from some other place). * em-folder-tree-model.c (folder_subscribed): Emit a new "folder-added" signal. svn path=/trunk/; revision=25013
* merged in code from em_folder_tree_model_drag_data_delete.Not Zed2004-02-091-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | 2004-02-09 Not Zed <NotZed@Ximian.com> * em-folder-tree.c (tree_drag_data_delete): merged in code from em_folder_tree_model_drag_data_delete. (tree_drag_data_get): similar. (tree_drag_data_received): similar. (drag_text_uri_list): removed, use em_utils_selection_set_urilist in tree_drag_data_get instead. (em_folder_tree_enable_drag_and_drop): merged in em_folder_tree_model_set_drag_drop_types. (tree_drag_motion): merge in drop_possible, handle qualifiers, and return the right type. (em_folder_tree_model_row_drop_target): rename to emft_drop_target, and make private. Beefed up substantially, handles illogical drops, dropping on to special folders and properly handling vfolder uri's (at least within the same tree instance). * em-folder-tree-model.c: Moved all of the DND stuff to em-folder-tree, where it belongs, made it all static. Should allow for some sharing of code too. svn path=/trunk/; revision=24679
* Now takes a GdkContext arg... will need this later when we want toJeffrey Stedfast2004-02-061-2/+2
| | | | | | | | | | 2004-02-05 Jeffrey Stedfast <fejj@ximian.com> * em-folder-tree-model.c (em_folder_tree_model_row_drop_target): Now takes a GdkContext arg... will need this later when we want to re-enable dnd of vfolders. svn path=/trunk/; revision=24637
* Modified slightly. The model now calls gtk_drag_finish() for us when it isJeffrey Stedfast2004-02-041-3/+4
| | | | | | | | | | | | | | | | 2004-02-03 Jeffrey Stedfast <fejj@ximian.com> * em-folder-tree.c (tree_drag_data_received): Modified slightly. The model now calls gtk_drag_finish() for us when it is done. * em-folder-tree-model.c (em_folder_tree_model_drag_data_received): Make this perform camel operations in another thread so we don't block. (em_folder_tree_model_drag_data_get): Updated args to be consistant with drag_data_received. svn path=/trunk/; revision=24595
* Fixes for bug #53348Jeffrey Stedfast2004-01-311-3/+11
| | | | | | | | | | | | | | | | | | | | | | 2004-01-30 Jeffrey Stedfast <fejj@ximian.com> Fixes for bug #53348 * mail-account-gui.c (mail_account_gui_save): Only add the new store to the mail-component if the mail-component doesn't already know about it (ie. only if we are adding a new account). * em-folder-tree-model.c (em_folder_tree_model_add_store): Hash our store-info based on account here. (em_folder_tree_model_init): Listen for account_changed/account_removed signals. (em_folder_tree_model_finalize): Disconnect above handlers. (account_changed): Tear down the account store node and replace it with the new store (assuming it belongs in the tree after the changes). (account_removed): Remove the account store from the tree. svn path=/trunk/; revision=24551
* Removed the drag & drop interfaces, apparently these aren't good enoughJeffrey Stedfast2004-01-241-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | 2004-01-23 Jeffrey Stedfast <fejj@ximian.com> * em-folder-tree-model.c (em_folder_tree_model_get_type): Removed the drag & drop interfaces, apparently these aren't good enough for what we need. Gotta implement this all the Hard Way (tm). (em_folder_tree_model_drag_data_received): Helper function called by the drag_data_received signal callback in em-folder-tree.c (em_folder_tree_model_row_drop_possible): Same idea. (em_folder_tree_model_row_drop_target): Again. (em_folder_tree_model_row_draggable): You get the idea... (em_folder_tree_model_drag_data_get): And again. (em_folder_tree_model_drag_data_delete): Same. (em_folder_tree_model_set_drag_drop_types): Setup the drag & drop types on the widget (since the target drag & drop types are now internal to the model code rathr than the tree code). * em-folder-tree.c (em_folder_tree_enable_drag_and_drop): Rewritten. Connect to all the drag & drop signals and implemnent them. svn path=/trunk/; revision=24393
* Update the unread count in the model if the folder got new mail.Jeffrey Stedfast2003-12-111-0/+2
| | | | | | | | | | | | | | | | | | | 2003-12-10 Jeffrey Stedfast <fejj@ximian.com> * mail-folder-cache.c (real_flush_updates): Update the unread count in the model if the folder got new mail. * em-folder-selection.c (em_select_folder): Updated. * em-folder-selection-button.c (em_folder_selection_button_clicked): Updated. * em-folder-tree-model.c (em_folder_tree_model_set_unread_count): New function to update the unread count for a folder. * mail-component.c (mail_component_peek_tree_model): Don't ref the model. Also renamed s/get/peek/ svn path=/trunk/; revision=23910
* Moved here. (drop_folder): Moved here. (import_message_rfc822): MovedJeffrey Stedfast2003-12-031-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-12-02 Jeffrey Stedfast <fejj@ximian.com> * em-folder-tree-model.c (drop_uid_list): Moved here. (drop_folder): Moved here. (import_message_rfc822): Moved here. (drop_message_rfc822): Moved here. (drop_text_uri_list): Moved here. (model_drag_data_received): Moved the logic from em-folder-tree.c into here. (model_row_drop_possible): Same. (model_row_draggable): Same. (drag_text_uri_list): Moved here. (model_drag_data_get): Moved logic here. (model_drag_data_delete): Moved logic here. * em-folder-tree.c (drag_data_get_cb): Pass the full_name to camel_store_get_folder() rather than the path. (drag_data_received_cb): Same. (drop_uid_list): Removed. (drop_folder): Removed. (import_message_rfc822): Removed. (drop_message_rfc822): Removed. (drop_text_uri_list): Removed. (drag_data_received_cb): Removed. (row_drop_possible_cb): Removed. (row_draggable_cb): Removed. (drag_text_uri_list): Removed. (drag_data_get_cb): Removed. (drag_data_delete_cb): Removed. (em_folder_tree_enable_drag_and_drop): Don't connect to any of the drag & drop signals, they don't exist anymore. * mail-component.c (impl_createControls): Enable drag-and-drop. * em-folder-tree.c (em_folder_tree_new_with_model): Connect to the loading row signal. (loading_row_cb): Expand the path if needed. (em_folder_tree_destroy): Disconnect from the loading-row signal. (em_folder_tree_enable_drag_and_drop): New function to enable drag-and-drop. (em_folder_tree_new): Remove drag-and-drop setup code. * em-folder-tree-model.c (em_folder_tree_model_class_init): Define the loading-row signal. (em_folder_tree_model_set_folder_info): emit the loading-row signal. svn path=/trunk/; revision=23590
* Connect to the loading row signal. (loading_row_cb): Expand the path ifJeffrey Stedfast2003-12-031-0/+4
| | | | | | | | | | | | | | | 2003-12-02 Jeffrey Stedfast <fejj@ximian.com> * em-folder-tree.c (em_folder_tree_new_with_model): Connect to the loading row signal. (loading_row_cb): Expand the path if needed. (em_folder_tree_destroy): Disconnect from the loading-row signal. * em-folder-tree-model.c (em_folder_tree_model_class_init): Define the loading-row signal. (em_folder_tree_model_set_folder_info): emit the loading-row signal. svn path=/trunk/; revision=23589
* Fixed to pass the evolution dir into em_folder_tree_model_new().Jeffrey Stedfast2003-12-031-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | 2003-12-02 Jeffrey Stedfast <fejj@ximian.com> * em-folder-tree.c (em_folder_tree_new): Fixed to pass the evolution dir into em_folder_tree_model_new(). (model_save_state): Removed. (em_folder_tree_save_state): Moved all the saving logic into em_folder_tree_model_save_expanded(). * em-folder-tree-model.c (em_folder_tree_model_new): Load the expanded state off disk. (em_folder_tree_model_save_expanded): New function to save expanded state. (em_folder_tree_model_get_expanded): new function to get if a node should be expanded. (em_folder_tree_model_set_expanded): new function to set the expanded state of a node. * mail-component.c (mail_component_init): Pass the evo dir to em_folder_tree_model_new() which now requires it. svn path=/trunk/; revision=23585
* Updated to call em_folder_tree_model_set_folder_info().Jeffrey Stedfast2003-12-021-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-12-01 Jeffrey Stedfast <fejj@ximian.com> * em-folder-tree.c (em_folder_tree_get_folder_info__got): Updated to call em_folder_tree_model_set_folder_info(). (folder_subscribed_cb): Removed. (folder_unsubscribed_cb): Removed. (folder_created_cb): Removed. (folder_deleted_cb): Removed. (folder_renamed_cb): Removed. * em-folder-tree-model.c (em_folder_tree_store_set_folder_info): New function to replace tree_store_set_folder_info() which had been in em-folder-tree.c (em_folder_tree_model_remove_uri): Made private. (em_folder_tree_model_remove_store_info): Made private. (em_folder_tree_model_remove_folders): New function to replace remove_folders() from em-folder-tree.c (em_folder_tree_model_new): No longer takes any args. * em-folder-tree.c (em_folder_tree_new): Updated. * mail-component.c (add_store): Add the store to the model rather than the treeview. (impl_createControls): create a new treeview based on the already-instantiated model. (mail_component_init): Create a new tree model. (mail_component_remove_store): Remove the store from the model directly. (mail_component_get_tree_model): Updated. * em-folder-tree.c (folder_unsubscribed_cb): Call em_folder_tree_model_remove_folders() rather than the deprecated internal remove_folders() function. (folder_renamed_cb): Same. (em_folder_tree_remove_store): Removed. (em_folder_tree_add_store): Removed. (remove_folders): Removed. svn path=/trunk/; revision=23545
* New function to save tree expanded state.Jeffrey Stedfast2003-11-251-0/+1
| | | | | | | | | | | | | | | 2003-11-24 Jeffrey Stedfast <fejj@ximian.com> * em-folder-tree.c (em_folder_tree_save_state): New function to save tree expanded state. (em_folder_tree_queue_save_state): New function to queue saving of the expanded state. (em_folder_tree_construct): Connect to the row-collapsed signal. (tree_row_collapsed): Queue a save-state. (tree_row_expanded): Queue a save state. (em_folder_tree_get_folder_info__got): Queue a save-state. svn path=/trunk/; revision=23485
* Only set OK to sensitive if the selected node is not a store node.Jeffrey Stedfast2003-11-151-0/+22
| | | | | | | | | | | | | | 2003-11-14 Jeffrey Stedfast <fejj@ximian.com> * em-folder-selection.c (folder_selected_cb): Only set OK to sensitive if the selected node is not a store node. * em-folder-tree-model.c: Moved the store_hash and uri_hash from EMFolderTreePrivate into here instead. * em-folder-tree.c: Updated for above changes. svn path=/trunk/; revision=23355
* New folder-tree widget that replaces the shell's folder-tree widget.Jeffrey Stedfast2003-11-141-0/+81
2003-11-13 Jeffrey Stedfast <fejj@ximian.com> * em-folder-tree.[c,h]: New folder-tree widget that replaces the shell's folder-tree widget. * em-folder-tree-model.[c,h]: New source files subclassing GtkTreeStore for handling the mess that is drag&drop. * em-folder-selection-button.c: Ported to use EMFolderTree. * em-folder-selection.c: Ported to use EMFolderTree. * em-folder-selector.c: Ported to use EMFolderTree. * mail-component.c: Ported to use EMFolderTree. * mail-offline-handler.c (storage_go_online): Updated to not pass a storage argument. * mail-folder-cache.c: Removed storage stuff. * mail-send-recv.c (receive_update_got_store): Don't do EStorage* stuff anymore. svn path=/trunk/; revision=23331