Commit Graph

143 Commits

Author SHA1 Message Date
51a35cd8be Express: Composer always defaults to HTML mode
Composer and signature editor always default to HTML in Express mode.
Hide the corresponding composer preference.  This will not affect the
user preference in normal mode.
2010-04-07 12:26:43 +01:00
d9fb300813 Simplify the search UI for express mode.
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
2010-04-07 12:25:13 +01:00
fe177f5a12 Add an extension to configure EWebView.
Make EWebView extensible and register an extension to automatically
bind every EWebView instance to the appropriate EShellSettings.

Conflicts:

	widgets/misc/e-web-view.c
2010-04-07 12:14:43 +01:00
ffe2f1e1ee Add an extension to configure EMFormatHTML.
Make EMFormatHTML extensible and register an extension to automatically
bind every EMFormatHTML instance to the appropriate EShellSettings.
2010-04-07 12:09:29 +01:00
841fa6274b Bug #613354 - Folder->Mark all messages as read does not work 2010-04-01 15:26:10 +02:00
7c214d64f6 Fix build break due to GTK+ deprecations. 2010-03-30 09:56:40 +05:30
31ece25312 Start the mailer's folder sidebar with a reasonable width
We measure a sample string, and then clamp this to one fourth of the
screen's width; we do some voodoo to guess the monitor we are in.

Signed-off-by: Federico Mena Quintero <federico@novell.com>
2010-03-25 15:47:48 -06:00
d7494c8f16 Shell and UI manager cleanups.
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.)
2010-03-13 20:53:17 -05:00
19eea41c74 clean up the 'express' mode hooks for UI Managers and start to
extend them to plugins - use a simple one-off boolean on the UI Manager
instead of exhaustively trying to propagate this information everywhere.
2010-03-13 20:53:16 -05:00
5069df6878 Restructure capplet stuffs and load only on express mode. 2010-03-13 20:49:49 -05:00
8e0c294e15 Switch to anjal style on express mode. 2010-03-13 20:49:49 -05:00
a952896b27 Integrate into new account button. 2010-03-13 20:49:49 -05:00
304777ae4c Add generic 'express mode' conditionals to the UI XML 2010-03-13 20:49:49 -05:00
c0533ef053 Some more directories relocated on windows 2010-03-11 00:22:35 +01:00
e9dc381d3a Bug 587014 - Magic space does not work as expected
Neither ETree::key-press nor ETableItem::key-press signal definitions
specify a GSignalAccumulator that terminates the signal emission when
a handler returns TRUE, and Evolution 2.29 connects multiple handlers
to ETree::key-press.

When the space key is pressed, the first handler implements the magic
space bar behavior and returns TRUE, which should terminate signal
emission but doesn't because there's no accumulator function on the
signal.  So the second handler runs and checks for other keys besides
space.  It returns FALSE since it didn't handle the key press.

End result: emission site gets back FALSE (from the second handler) as
the return value, so it thinks the key press was not handled at all and
invokes the fallback handler -- e_selection_model_toggle_single_row() --
which -unselects- the newly selected row, making it appear the next
unread message was never selected.

Several other ETable-related signals that return "handled" flags also
lack GSignalAccumulator functions.  I've made a note to myself to fix
those as well.
2010-02-17 19:45:28 -05:00
62b4d9af96 Bug 609836 - Add translator comments to ambiguous strings 2010-02-16 11:13:19 -05:00
9b608beea9 Bug 604542 - Skip non-system rules when building quick search menu 2010-02-10 13:40:08 -05:00
22326b6d33 Bug 609404 - Quick search filter should work on current message list view 2010-02-09 12:22:04 -05:00
31e449ebed Implement account-wide search scope in mail.
Also, let EShellSearchbar handle search state persistence.
2010-02-06 13:46:40 -05:00
6dcf4ec127 Bug #606666 - Cannot move cursor with arrows in preview with caret mode 2010-01-25 16:20:19 +01:00
5787b62931 Bug 549558 - "Download Messages for Offline Usage" still sensitive in offline mode 2010-01-21 12:22:06 -05:00
3459b38905 Bug 607608 - Empty Trash does not work unless Trash is selected 2010-01-21 11:28:43 -05:00
39ee1b7890 Give all preview panes a search bar.
Use Shift+Ctrl+F as the accelerator for consistency with the mailer.
2010-01-17 23:54:06 -05:00
cae22334fa Remove dead assignments found by clang. 2010-01-15 21:50:05 -05:00
79741ccd3f Bug 606250 - Remove usage of deprecated GTK+ symbols
Several GtkWidget macros were recently deprecated.
2010-01-07 14:45:43 -05:00
5f1c9ff19d Bug #549988 - "Empty Trash" in Trash popup empties all Trash folders 2010-01-06 13:35:05 +01:00
ac07595af4 Bug #597816 - Read/save search folders with labels properly 2010-01-05 14:40:19 +01:00
1501b8588c Kill e_popup_menu().
The function is trivial and was only used from ETableHeaderItem.
This also eliminates widgets/misc/e-gui-utils.[ch].
2010-01-04 20:22:21 -05:00
e77ee5d5d3 Coding style and whitespace cleanup. 2010-01-03 12:15:01 -06:00
59bd81691d Compiler and linker flag cleanups. 2009-12-27 14:32:39 -05:00
bd31f49bac Coding style and whitespace cleanup. 2009-12-26 00:26:18 -05:00
abc0e4c694 Introduce ESelectable and EFocusTracker.
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.
2009-12-25 15:42:17 -05:00
3f36489c67 Bug #329693 - Add contexts to translated "None" words 2009-12-23 17:11:59 +01:00
60e6ecbb42 Remove some obsolete GConf keys.
/apps/evolution/mail/display/show_preview
/apps/evolution/mail/display/thread_list

These keys are no longer needed since we're storing the settings by
folder now in ~/.evolution/mail/config/state.  To simplify things we use
hard-coded defaults: TRUE for PreviewVisible, FALSE for GroupByThreads.
2009-12-19 00:46:19 -05:00
4cbbdedf52 Refactor the EShell search API.
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.
2009-12-18 22:38:00 -05:00
1059076803 Bug #596967 - Per-folder setting for threading and preview panel 2009-12-18 17:56:11 +01:00
134a7d4bbd Bug #593700 - Restore folder's last selected message as expected 2009-12-17 20:17:04 +01:00
fe15c797a0 Bug #603184 - Various problems with search box in folders 2009-12-17 18:17:21 +01:00
f65f8935bc Kill MailSession's interactive flag.
After analyzing this again I'm confident we really don't need it.

The only state change is from FALSE to TRUE at startup, and that
one-time event happens while the mail shell backend is starting up
(see: e_shell_backend_start()).

If a need arises to query for this in the future I'll extend the
EShellBackend API with an e_shell_backend_started() function, but
for now there's no need.
2009-12-16 13:39:39 -05:00
2a7f68fe45 Move MailFolderCache signal handlers to EMailBackend.
Move the MailFolderCache signal handlers from EMailShellBackend down to
EMailBackend (in libevolution-mail.so) to share with Anjal.
2009-12-16 13:29:17 -05:00
0eb2649bde Introduce EMailBackend into libevolution-mail.
EMailBackend is an abstract subclass of EShellBackend that handles
online and offline modes and application shutdown.  Placing this in
the shared mail library allows Anjal to reuse it.  Evolution's mail
module further extends this class as EMailShellBackend.
2009-12-15 22:27:43 -05:00
6818a05259 Add MailFolderCache::folder-changed signal
Yes, this signal is kind of an ugly monster.  I'm not sure how to improve this
significantly.  But this commit removes the last EMFolderTreeModel and EShell
dependencies from MailFolderCache, which is a big step towards splitting off
the backend.

https://bugzilla.gnome.org/show_bug.cgi?id=604627
2009-12-15 14:16:09 -06:00
0eef4618ca Remove mail-config, vfolder, and filter deps from mail-folder-cache
Instead of pushing the updates to the right places, the folder cache simply
emits the appropriate signals and other objects are responsible for listening
and handling them appropriately.  This allows us to cut down the dependencies of
MailFolderCache significantly, which is a huge step towards allowing us to split
it off for the backend.

Another nice thing about this is that it allows us to trim a lot of 'public' api
from the filter, vfolder, and config classes that were only used by the cache.
Now that stuff can all be internal since they're pulling changes rather than
having the changes pushed.

The last remaining problematic dependency in MailFolderCache is
EmFolderTreeModel.  That is next on the chopping block.

https://bugzilla.gnome.org/show_bug.cgi?id=604627
2009-12-15 14:16:09 -06:00
2aea353ce7 Move mail migration code to libevolution-mail.so.
So Anjal can reuse it.
2009-12-15 11:53:50 -05:00
5ba8caffba Introduce EMailSidebar into libevolution-mail.
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.
2009-12-14 20:11:38 -05:00
65931feb2a Bug #591938 - Update translator's comments 2009-12-09 18:55:15 +01:00
eb60a4e448 Kill ETreeScrolled.
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.
2009-12-08 01:55:28 -05:00
31204c9cc2 Port all error code to use GObject-ified EAlert / EAlertDialog
The changes are mainly including the e-alert-header.h header instead of just
e-alert.h.  This allows us to include e-alert.h in non-UI situations when
necessary.
2009-12-07 12:25:23 -06:00
86770f6b77 Fixing widgets order and adding back mnemonics after glade removal 2009-12-02 13:56:13 +01:00
5e938b590f Expand the EMailReader interface so it's easier to use.
Adds the following methods:

  CamelFolder *   (*get_folder)          (EMailReader *reader);
  const gchar *   (*get_folder_uri)      (EMailReader *reader);
  GPtrArray *     (*get_selected_uids)   (EMailReader *reader);
2009-12-01 15:01:14 -05:00