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.
More mail API churn... reversing some previous API decisions.
I've made some key API changes to EMailSession on the account-mgmt
branch which should allow for this, and will hopefully also benefit
the "email-factory" branch.
EMailBackend barely needs to exist anymore, except as the owner of
EMailSession.
For several low-level functions, we replace its EMailBackend parameter
with EMailSession and EAlertSink parameters; the latter so it can still
pass user alerts up the chain.
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.
As of commit 7fa0dd78305677d14839a480fc379ebba3a6d55c, all CamelFolder
and CamelStore signals are emitted from idle callbacks. That means we
don't have to propagate events to the main loop thread anymore, which
eliminates all remaining uses of MailAsyncEvent.
Removed the following menu items under View:
Hide Selected Messages
Hide Read Messages
Show Hidden Messages
These options are confusing and don't fit with the rest of the mailer
design.
Hidden messages were tracked by folder in:
~/.evolution/mail/config/hidestate-<<folder-uri>>
So by simply not loading those files any more we reveal all previously
hidden messages and avoid any risk of lost messages.
Also inverted "Hide Deleted Messages" to "Show Deleted Messages".
Add "copy-target-list" and "paste-target-list" to the ESelectable
interface. These are underutilized for the moment, but will eventually
be used to help integrate drag-and-drop support into ESelectable.
Add cut and paste support to EWebView, along with a new "editable"
property and new clipboard signals "copy-clipboard", "cut-clipboard" and
"paste-clipboard".
In EFocusTracker, listen for "owner-changed" signals from the default
clipboard as another trigger to update actions, particularly the Paste
action. (Unfortunately this doesn't work for EWebView since GtkHtml
implements its own clipboard.)
In EMsgComposer, convert GtkhtmlEditor's clipboard methods to empty
stubs, since EFocusTracker will now trigger EWebView's clipboard
actions. Also, intercept EWebView::paste-clipboard signals and improve
the interaction between the HTML editor and the attachment bar based on
use cases in bug #603715.
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.
Kill ETreeScrolled and convert MessageList to an ETree subclass.
ETreeScrolled is nothing but a GtkScrolledWindow containing an ETree.
It adds nothing of value and actually makes customizing ETree harder.
- Kill the e-util-labels API and read label information into a
single-column GtkListStore. Use GConfBridge to automatically
keep GConf synched with the list store.
- The list store (a singleton instance) is stored in EShellSettings
so it's available everywhere.
- The list store serves as the model for EMailLabelTreeView,
which itself is embedded in EMailLabelManager; a complete
label management UI as seen in the preferences dialog.
- EMailLabelDialog is used to add or edit a label. Avoid using a
color button, instead embed a GtkColorSelection directly in the
dialog so everything is in one window.
Open issues:
- The weird toggle/color/text menu items in the popup menu aren't
there. For now they're just regular toggle items. I'll deal
with it later.
- Filter intergration is broken at the moment.
svn path=/branches/kill-bonobo/; revision=37233
- Tighter integration of GalViewInstance and EShellView.
- EBinding. Stolen from ExoBinding. Lets you bind GObject properties
together to automatically keep their values in sync. This is a godsend.
Added to e-util, but might even deserve a place in libedataserver.
- EShellSettings. This is the concept I blogged about. Already
started ripping apart em-mailer-prefs.c. Others to follow. Any
place where we're monitoring GConf keys is a target.
- Incremental progress on the calender and mailer. Got EMFolderView
somewhat working, but I think I'll be killing off EMFolderBrowser.
svn path=/branches/kill-bonobo/; revision=36795
2008-10-19 Milan Crha <mcrha@redhat.com>
** Fix for bug #438155
* message-list.h: (struct _MessageList): message-list.c: (message_list_init),
(message_list_finalise), (regen_list_done), (regen_list_free), (ml_regen_timeout),
(mail_regen_cancel): Guard access to the 'regen' list with a lock.
svn path=/trunk/; revision=36652
2008-06-26 Milan Crha <mcrha@redhat.com>
** Fix for bug #540160
* message-list.h: (struct _MessageList):
* message-list.c: (message_list_init), (on_cursor_activated_cmd),
(on_selection_changed_cmd): Remember whether we come from none/multi
select to single select and properly update the preview.
(Reverting patch for bug #337160 and doing that with other approach.)
svn path=/trunk/; revision=35684
2008-06-16 Milan Crha <mcrha@redhat.com>
** Fix for bug #467892
* message-list.h: (struct _MessageList), (message_list_ensure_message):
* message-list.c: (message_list_init), (message_list_finalise),
(message_list_ensure_message), (regen_list_exec), (regen_list_done):
Be able to set a message uid to keep in a list after regeneration.
* em-folder-view.c: (em_folder_view_open_selected):
Inherit search criteria and ensure keeping the selected message
in the view even it may not belong to the filter anymore.
svn path=/trunk/; revision=35640
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
2008-05-22 Matthew Barnes <mbarnes@redhat.com>
** Fixes bug #534360
Migrate from deprecated GtkObject symbols to GObject equivalents.
Touches over 150 files in all components; too many to list.
svn path=/trunk/; revision=35526
2007-12-14 Milan Crha <mcrha@redhat.com>
** Fix for bug #211353
* message-list.etspec:
* message-list.h:
* message-list.c: Added new column to show labels.
* filtertypes.xml:
* vfoldertypes.xml:
Code for label filters/search folders has been changed.
* mail-config.glade:
* em-folder-view.c: (emfv_set_label), (emfv_unset_label),
(emfv_popup_label_clear), (emfv_popup_label_set),
(emfv_popup_labels_get_state_for_tag), (emfv_popup):
Labels popup submenu is now shown with checkboxes so one can set
more than one label to the message and unset only one label from
message. There has been added new function, because of this.
* mail-config.h:
* mail-config.c: New "interface" functions to work with labels.
* em-mailer-prefs.h:
* em-mailer-prefs.c: Editing labels in tree.
* em-folder-browser.c:
Labels in show menu reflect changes in preferences.
2007-12-14 Milan Crha <mcrha@redhat.com>
** Part of fix for bug #211353
* filter-label.c: Use global label's setup, not its own copy.
2007-12-14 Milan Crha <mcrha@redhat.com>
** Part of fix for bug #211353
* e-popup.h:
* e-popup.c: (ep_build_tree):
Toggles can be in inconsistent state now, and can also contain
an image, which is a pointer to GtkImage widget.
2007-12-14 Milan Crha <mcrha@redhat.com>
** Part of fix for bug #211353
* e-search-bar.c: (e_search_bar_get_viewitem_id):
Return -1 if no viewmenu is setup yet.
svn path=/trunk/; revision=34715
2007-11-26 Nicholas Miell <nmiell@gmail.com>
** Fix for bug #216485
Edit->Select thread menu fix and improvement.
* mail/em-folder-browser.c: (emfb_edit_select_subthread): new function,
(emfb_enable_map, emfb_verbs) hook it up
* mail/message-list.c: (select_thread): new function based on
thread_select_foreach, (thread_select_foreach): remove the logic
now in select_thread, (message_list_select_thread): use
select_thread, (subthread_select_foreach): new function,
(message_list_select_subthread): new function
* mail/message-list.h: (message_list_select_subthread): add prototype
* ui/evolution-mail-list.xml
Add Select Message Subthread
svn path=/trunk/; revision=34585
2007-11-23 Milan Crha <mcrha@redhat.com>
** Fix for bug #335931
* message-list.c: (struct _regen_list_msg): New member last_row.
* message-list.c: (regen_list_regen): Store last_row for later use.
* message-list.c: (regen_list_regened): Restore row based on last_row
when no uid was selected before.
* message-list.c: (mail_regen_list): Init new last_row member.
* em-folder-view.c: (emfv_select_next_message): New helper function
to select messages in list.
* em-folder-view.c: (emfv_popup_mark_junk), (emfv_popup_mark_nojunk),
(emfv_popup_delete): Using new helper function, so get same behavior.
* message-list.h: (struct _MessageList):
* message-list.c: (on_cursor_activated_cmd): Removed cursor_row member.
svn path=/trunk/; revision=34567