[anjal] Support edit account from Settings.
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjal] Support edit account from Settings.
- Date: Tue, 5 May 2009 06:19:13 -0400 (EDT)
commit 825bfbaffbe3e76e9ca6c05d9784e40059359ea5
Author: Srinivasa Ragavan <sragavan novell com>
Date: Tue May 5 15:47:28 2009 +0530
Support edit account from Settings.
---
src/mail-settings-view.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
src/mail-settings-view.h | 2 +-
src/mail-view.c | 7 +++++++
3 files changed, 52 insertions(+), 1 deletions(-)
diff --git a/src/mail-settings-view.c b/src/mail-settings-view.c
index a8d2015..1e50a47 100644
--- a/src/mail-settings-view.c
+++ b/src/mail-settings-view.c
@@ -27,6 +27,7 @@
#include <glib/gi18n.h>
#include "mail-settings-view.h"
#include "mail-component.h"
+#include <libedataserver/e-account-list.h>
#include "mail-view.h"
#include "e-util/e-icon-factory.h"
@@ -38,6 +39,7 @@ G_DEFINE_TYPE (MailSettingsView, mail_settings_view, GTK_TYPE_VBOX)
enum {
VIEW_CLOSE,
+ SHOW_ACCOUNT,
LAST_SIGNAL
};
@@ -75,12 +77,54 @@ mail_settings_view_class_init (MailSettingsViewClass *klass)
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+ signals[SHOW_ACCOUNT] =
+ g_signal_new ("show-account",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (MailSettingsViewClass , show_account),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
}
+static void
+msv_edit_account(GtkButton *button, MailSettingsView *msv)
+{
+ g_signal_emit (msv, signals[SHOW_ACCOUNT], 0);
+}
+
+#define PACK_BOX(w,s) box = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(box, w, FALSE, FALSE, s); gtk_widget_show(box); gtk_widget_show(w); gtk_box_pack_start(acview, box, FALSE, FALSE, 3);
+
void
mail_settings_view_construct (MailSettingsView *acview)
{
+ GtkWidget *box, *label, *tbox, *tlabel;
+ struct _EAccount *account = mail_config_get_default_account();
+ char *tmp;
+
+ label = gtk_label_new (NULL);
+ gtk_label_set_markup (label, _("<span size=\"large\" weight=\"bold\">Accounts</span>"));
+ PACK_BOX(label,12);
+
+ label = gtk_button_new ();
+ tbox = gtk_hbox_new (FALSE, 0);
+
+ tlabel = gtk_image_new_from_stock ("gtk-edit", GTK_ICON_SIZE_BUTTON);
+ gtk_widget_show(tlabel);
+ gtk_box_pack_start(tbox, tlabel, FALSE, FALSE, 6);
+
+ tmp = g_strdup_printf("%s %s...", _("Edit"), e_account_get_string(account, E_ACCOUNT_ID_ADDRESS));
+ tlabel = gtk_label_new(tmp);
+ g_free(tmp);
+ gtk_widget_show(tlabel);
+ gtk_box_pack_start(tbox, tlabel, FALSE, FALSE, 0);
+ gtk_widget_show(tbox);
+ gtk_container_add(label, tbox);
+ PACK_BOX(label,24);
+ g_signal_connect(label, "clicked", G_CALLBACK(msv_edit_account), acview);
+ gtk_widget_show(acview);
+
}
MailSettingsView *
diff --git a/src/mail-settings-view.h b/src/mail-settings-view.h
index 5043691..569e16f 100644
--- a/src/mail-settings-view.h
+++ b/src/mail-settings-view.h
@@ -49,7 +49,7 @@ typedef struct _MailSettingsViewClass {
GtkVBoxClass parent_class;
void (* view_close) (MailSettingsView *);
-
+ void (* show_account) (MailSettingsView *);
} MailSettingsViewClass;
MailSettingsView *mail_settings_view_new (void);
diff --git a/src/mail-view.c b/src/mail-view.c
index 6b589c5..cf94f02 100644
--- a/src/mail-view.c
+++ b/src/mail-view.c
@@ -311,6 +311,12 @@ mail_view_add_message (MailView *mv)
return mcv;
}
+static void
+mv_show_acc_mcv (MailFolderView *mfv, MailView *mv)
+{
+ mail_view_add_page(mv, MAIL_VIEW_ACCOUNT);
+}
+
static MailViewChild *
mail_view_add_settings (MailView *mv)
{
@@ -322,6 +328,7 @@ mail_view_add_settings (MailView *mv)
mv->priv->children = g_list_append (mv->priv->children, msv);
position = gtk_notebook_append_page (mv, msv, mail_settings_view_get_tab_widget(msv));
g_signal_connect (msv, "view-close", G_CALLBACK(mv_close_mcv), mv);
+ g_signal_connect (msv, "show-account", G_CALLBACK(mv_show_acc_mcv), mv);
gtk_notebook_set_tab_reorderable (mv, msv, TRUE);
gtk_notebook_set_current_page (mv, position);
gtk_notebook_set_tab_label_packing (mv, msv, FALSE, FALSE, 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]