aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2011-02-04 03:09:50 +0800
committerRodrigo Moya <rodrigo@gnome-db.org>2011-06-30 00:41:31 +0800
commitcc292ebbfe30d52b55c8309ef9083da9231e2626 (patch)
treed5d5c3a85b4393cee3611cdae0a7fe230ae5e70f
parent59d358e340ec3fe46dc38706d09ac332b173702b (diff)
downloadgsoc2013-evolution-cc292ebbfe30d52b55c8309ef9083da9231e2626.tar.gz
gsoc2013-evolution-cc292ebbfe30d52b55c8309ef9083da9231e2626.tar.zst
gsoc2013-evolution-cc292ebbfe30d52b55c8309ef9083da9231e2626.zip
Composer: Add Edit -> Preferences
Opens the Preferences window to the Composer Preferences section.
-rw-r--r--composer/e-composer-actions.c75
-rw-r--r--composer/e-composer-private.h1
-rw-r--r--composer/evolution-composer.ui4
-rw-r--r--shell/e-shell-window-actions.c5
-rw-r--r--widgets/misc/e-preferences-window.c14
5 files changed, 71 insertions, 28 deletions
diff --git a/composer/e-composer-actions.c b/composer/e-composer-actions.c
index 1f1cb44a7c..bbd2aacfd0 100644
--- a/composer/e-composer-actions.c
+++ b/composer/e-composer-actions.c
@@ -61,6 +61,19 @@ action_close_cb (GtkAction *action,
}
static void
+action_new_message_cb (GtkAction *action,
+ EMsgComposer *composer)
+{
+ EMsgComposer *new_composer;
+ EShell *shell;
+
+ shell = e_msg_composer_get_shell (composer);
+
+ new_composer = e_msg_composer_new (shell);
+ gtk_widget_show (GTK_WIDGET (new_composer));
+}
+
+static void
action_pgp_encrypt_cb (GtkToggleAction *action,
EMsgComposer *composer)
{
@@ -81,6 +94,34 @@ action_pgp_sign_cb (GtkToggleAction *action,
}
static void
+action_preferences_cb (GtkAction *action,
+ EMsgComposer *composer)
+{
+ EShell *shell;
+ GtkWidget *preferences_window;
+ const gchar *page_name = "composer";
+
+ shell = e_msg_composer_get_shell (composer);
+ preferences_window = e_shell_get_preferences_window (shell);
+ e_preferences_window_setup (E_PREFERENCES_WINDOW (preferences_window));
+
+ gtk_window_set_transient_for (
+ GTK_WINDOW (preferences_window),
+ GTK_WINDOW (composer));
+ gtk_window_set_position (
+ GTK_WINDOW (preferences_window),
+ GTK_WIN_POS_CENTER_ON_PARENT);
+ gtk_window_present (GTK_WINDOW (preferences_window));
+
+ if (e_shell_get_express_mode (shell))
+ e_preferences_window_filter_page (
+ E_PREFERENCES_WINDOW (preferences_window), page_name);
+ else
+ e_preferences_window_show_page (
+ E_PREFERENCES_WINDOW (preferences_window), page_name);
+}
+
+static void
action_print_cb (GtkAction *action,
EMsgComposer *composer)
{
@@ -218,19 +259,6 @@ action_send_cb (GtkAction *action,
}
static void
-action_new_message_cb (GtkAction *action,
- EMsgComposer *composer)
-{
- EMsgComposer *new_composer;
- EShell *shell;
-
- shell = e_msg_composer_get_shell (composer);
-
- new_composer = e_msg_composer_new (shell);
- gtk_widget_show (GTK_WIDGET (new_composer));
-}
-
-static void
action_smime_encrypt_cb (GtkToggleAction *action,
EMsgComposer *composer)
{
@@ -266,6 +294,20 @@ static GtkActionEntry entries[] = {
N_("Close the current file"),
G_CALLBACK (action_close_cb) },
+ { "new-message",
+ "mail-message-new",
+ N_("New _Message"),
+ "<Control>n",
+ N_("Open New Message window"),
+ G_CALLBACK (action_new_message_cb) },
+
+ { "preferences",
+ GTK_STOCK_PREFERENCES,
+ NULL,
+ NULL,
+ N_("Configure Evolution"),
+ G_CALLBACK (action_preferences_cb) },
+
{ "save",
GTK_STOCK_SAVE,
N_("_Save"),
@@ -280,13 +322,6 @@ static GtkActionEntry entries[] = {
N_("Save the current file with a different name"),
G_CALLBACK (action_save_as_cb) },
- { "new-message",
- "mail-message-new",
- N_("New _Message"),
- "<Control>n",
- N_("Open New Message window"),
- G_CALLBACK (action_new_message_cb) },
-
/* Menus */
{ "charset-menu",
diff --git a/composer/e-composer-private.h b/composer/e-composer-private.h
index 5cf503e735..9ed3b11c59 100644
--- a/composer/e-composer-private.h
+++ b/composer/e-composer-private.h
@@ -52,6 +52,7 @@
#include "widgets/misc/e-attachment-paned.h"
#include "widgets/misc/e-attachment-store.h"
#include "widgets/misc/e-picture-gallery.h"
+#include "widgets/misc/e-preferences-window.h"
#include "widgets/misc/e-signature-combo-box.h"
#include "widgets/misc/e-web-view.h"
#include "shell/e-shell.h"
diff --git a/composer/evolution-composer.ui b/composer/evolution-composer.ui
index d1eb10c76c..91fce38a2b 100644
--- a/composer/evolution-composer.ui
+++ b/composer/evolution-composer.ui
@@ -20,6 +20,10 @@
<menuitem action='close'/>
</menu>
</placeholder>
+ <menu action='edit-menu'>
+ <separator/>
+ <menuitem action='preferences'/>
+ </menu>
<placeholder name='pre-insert-menu'>
<menu action='view-menu'>
<menuitem action='view-reply-to'/>
diff --git a/shell/e-shell-window-actions.c b/shell/e-shell-window-actions.c
index 6547ba6d76..928cab79c3 100644
--- a/shell/e-shell-window-actions.c
+++ b/shell/e-shell-window-actions.c
@@ -930,15 +930,14 @@ action_preferences_cb (GtkAction *action,
shell_backend_class = E_SHELL_BACKEND_GET_CLASS (shell_backend);
if (shell_backend_class->preferences_page != NULL) {
- if (e_shell_get_express_mode (shell)) {
+ if (e_shell_get_express_mode (shell))
e_preferences_window_filter_page (
E_PREFERENCES_WINDOW (preferences_window),
shell_backend_class->preferences_page);
- } else {
+ else
e_preferences_window_show_page (
E_PREFERENCES_WINDOW (preferences_window),
shell_backend_class->preferences_page);
- }
}
}
diff --git a/widgets/misc/e-preferences-window.c b/widgets/misc/e-preferences-window.c
index 48b1d3e92b..9b6d7266fc 100644
--- a/widgets/misc/e-preferences-window.c
+++ b/widgets/misc/e-preferences-window.c
@@ -210,7 +210,7 @@ preferences_window_show (GtkWidget *widget)
priv = E_PREFERENCES_WINDOW_GET_PRIVATE (widget);
if (!priv->setup)
- g_warning ("Error - preferences window has not been setup correctly");
+ g_warning ("Preferences window has not been setup correctly");
icon_view = GTK_ICON_VIEW (priv->icon_view);
@@ -308,7 +308,8 @@ e_preferences_window_init (EPreferencesWindow *window)
container = widget;
- widget = gtk_icon_view_new_with_model (GTK_TREE_MODEL (window->priv->filter));
+ widget = gtk_icon_view_new_with_model (
+ GTK_TREE_MODEL (window->priv->filter));
gtk_icon_view_set_columns (GTK_ICON_VIEW (widget), 1);
gtk_icon_view_set_text_column (GTK_ICON_VIEW (widget), COLUMN_TEXT);
gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (widget), COLUMN_PIXBUF);
@@ -379,7 +380,6 @@ gpointer
e_preferences_window_get_shell (EPreferencesWindow *window)
{
g_return_val_if_fail (E_IS_PREFERENCES_WINDOW (window), NULL);
- g_return_val_if_fail (window->priv != NULL, NULL);
return window->priv->shell;
}
@@ -389,7 +389,7 @@ e_preferences_window_add_page (EPreferencesWindow *window,
const gchar *page_name,
const gchar *icon_name,
const gchar *caption,
- EPreferencesWindowCreatePageFn create_fn,
+ EPreferencesWindowCreatePageFn create_fn,
gint sort_order)
{
GtkTreeRowReference *reference;
@@ -434,7 +434,9 @@ e_preferences_window_add_page (EPreferencesWindow *window,
gtk_widget_show (GTK_WIDGET (align));
g_object_set_data (G_OBJECT (align), "create_fn", create_fn);
gtk_notebook_append_page (notebook, align, NULL);
- gtk_container_child_set (GTK_CONTAINER (notebook), align, "tab-fill", FALSE, "tab-expand", FALSE, NULL);
+ gtk_container_child_set (
+ GTK_CONTAINER (notebook), align,
+ "tab-fill", FALSE, "tab-expand", FALSE, NULL);
/* Force GtkIconView to recalculate the text wrap width,
* otherwise we get a really narrow icon list on the left
@@ -507,6 +509,8 @@ e_preferences_window_setup (EPreferencesWindow *window)
GtkNotebook *notebook;
EPreferencesWindowPrivate *priv;
+ g_return_if_fail (E_IS_PREFERENCES_WINDOW (window));
+
priv = E_PREFERENCES_WINDOW_GET_PRIVATE (window);
notebook = GTK_NOTEBOOK (priv->notebook);
num = gtk_notebook_get_n_pages (notebook);