Commit Graph

143 Commits

Author SHA1 Message Date
Matthew Barnes 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
Matthew Barnes 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
Matthew Barnes 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
Matthew Barnes 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
Milan Crha 841fa6274b Bug #613354 - Folder->Mark all messages as read does not work 2010-04-01 15:26:10 +02:00
Matthew Barnes 7c214d64f6 Fix build break due to GTK+ deprecations. 2010-03-30 09:56:40 +05:30
Federico Mena Quintero 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
Matthew Barnes 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
Michael Meeks 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
Srinivasa Ragavan 5069df6878 Restructure capplet stuffs and load only on express mode. 2010-03-13 20:49:49 -05:00
Srinivasa Ragavan 8e0c294e15 Switch to anjal style on express mode. 2010-03-13 20:49:49 -05:00
Srinivasa Ragavan a952896b27 Integrate into new account button. 2010-03-13 20:49:49 -05:00
Michael Meeks 304777ae4c Add generic 'express mode' conditionals to the UI XML 2010-03-13 20:49:49 -05:00
Fridrich Strba c0533ef053 Some more directories relocated on windows 2010-03-11 00:22:35 +01:00
Matthew Barnes 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
Matthew Barnes 62b4d9af96 Bug 609836 - Add translator comments to ambiguous strings 2010-02-16 11:13:19 -05:00
Matthew Barnes 9b608beea9 Bug 604542 - Skip non-system rules when building quick search menu 2010-02-10 13:40:08 -05:00
Matthew Barnes 22326b6d33 Bug 609404 - Quick search filter should work on current message list view 2010-02-09 12:22:04 -05:00
Matthew Barnes 31e449ebed Implement account-wide search scope in mail.
Also, let EShellSearchbar handle search state persistence.
2010-02-06 13:46:40 -05:00
Milan Crha 6dcf4ec127 Bug #606666 - Cannot move cursor with arrows in preview with caret mode 2010-01-25 16:20:19 +01:00
Viswanath Sivakumar 5787b62931 Bug 549558 - "Download Messages for Offline Usage" still sensitive in offline mode 2010-01-21 12:22:06 -05:00
Matthew Barnes 3459b38905 Bug 607608 - Empty Trash does not work unless Trash is selected 2010-01-21 11:28:43 -05:00
Matthew Barnes 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
Matthew Barnes cae22334fa Remove dead assignments found by clang. 2010-01-15 21:50:05 -05:00
Matthew Barnes 79741ccd3f Bug 606250 - Remove usage of deprecated GTK+ symbols
Several GtkWidget macros were recently deprecated.
2010-01-07 14:45:43 -05:00
Milan Crha 5f1c9ff19d Bug #549988 - "Empty Trash" in Trash popup empties all Trash folders 2010-01-06 13:35:05 +01:00
Milan Crha ac07595af4 Bug #597816 - Read/save search folders with labels properly 2010-01-05 14:40:19 +01:00
Matthew Barnes 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
Matthew Barnes e77ee5d5d3 Coding style and whitespace cleanup. 2010-01-03 12:15:01 -06:00
Matthew Barnes 59bd81691d Compiler and linker flag cleanups. 2009-12-27 14:32:39 -05:00
Matthew Barnes bd31f49bac Coding style and whitespace cleanup. 2009-12-26 00:26:18 -05:00
Matthew Barnes 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
Milan Crha 3f36489c67 Bug #329693 - Add contexts to translated "None" words 2009-12-23 17:11:59 +01:00
Matthew Barnes 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
Matthew Barnes 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
Milan Crha 1059076803 Bug #596967 - Per-folder setting for threading and preview panel 2009-12-18 17:56:11 +01:00
Milan Crha 134a7d4bbd Bug #593700 - Restore folder's last selected message as expected 2009-12-17 20:17:04 +01:00
Milan Crha fe15c797a0 Bug #603184 - Various problems with search box in folders 2009-12-17 18:17:21 +01:00
Matthew Barnes 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
Matthew Barnes 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
Matthew Barnes 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
Jonathon Jongsma 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
Jonathon Jongsma 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
Matthew Barnes 2aea353ce7 Move mail migration code to libevolution-mail.so.
So Anjal can reuse it.
2009-12-15 11:53:50 -05:00
Matthew Barnes 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
Milan Crha 65931feb2a Bug #591938 - Update translator's comments 2009-12-09 18:55:15 +01:00
Matthew Barnes 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
Jonathon Jongsma 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
Milan Crha 86770f6b77 Fixing widgets order and adding back mnemonics after glade removal 2009-12-02 13:56:13 +01:00
Matthew Barnes 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