#include <glib/gi18n.h>
#include <gtk/gtktreeviewcolumn.h>
#include <tny-account-store-view.h>
+#include <tny-simple-list.h>
+#include <tny-error.h>
#include <widgets/modest-main-window.h>
#include <widgets/modest-window-priv.h>
#include <widgets/modest-msg-edit-window.h>
#include <widgets/modest-account-view-window.h>
+#include "widgets/modest-progress-bar.h"
#include <modest-runtime.h>
#include "modest-widget-memory.h"
static void modest_main_window_init (ModestMainWindow *obj);
static void modest_main_window_finalize (GObject *obj);
-static void restore_sizes (ModestMainWindow *self);
-static void save_sizes (ModestMainWindow *self);
+static void restore_settings (ModestMainWindow *self);
static gboolean on_header_view_button_press_event (ModestHeaderView *header_view,
GdkEventButton *event,
static void connect_signals (ModestMainWindow *self);
+static void on_queue_changed (ModestMailOperationQueue *queue,
+ ModestMailOperation *mail_op,
+ ModestMailOperationQueueNotification type,
+ ModestMainWindow *self);
+
+static void on_header_selected (ModestHeaderView *header_view,
+ TnyHeader *header,
+ ModestMainWindow *main_window);
+
+static void save_state (ModestWindow *window);
/* list my signals */
enum {
typedef struct _ModestMainWindowPrivate ModestMainWindowPrivate;
struct _ModestMainWindowPrivate {
- GtkWidget *folder_paned;
- GtkWidget *msg_paned;
- GtkWidget *main_paned;
+ GtkWidget *folder_paned;
+ GtkWidget *msg_paned;
+ GtkWidget *main_paned;
- GtkWidget *online_toggle;
- GtkWidget *folder_info_label;
+ GtkWidget *online_toggle;
+ GtkWidget *folder_info_label;
ModestHeaderView *header_view;
ModestFolderView *folder_view;
GtkWidget *status_bar;
GtkWidget *progress_bar;
+ GSList *progress_widgets;
+ GtkWidget *main_bar;
};
MODEST_TYPE_MAIN_WINDOW, \
ModestMainWindowPrivate))
-typedef struct _GetMsgAsyncHelper {
- ModestMainWindowPrivate *main_window_private;
- guint action;
- ModestMailOperationReplyType reply_type;
- ModestMailOperationForwardType forward_type;
- gchar *from;
- TnyIterator *iter;
-} GetMsgAsyncHelper;
-
/* globals */
static GtkWindowClass *parent_class = NULL;
parent_class = g_type_class_peek_parent (klass);
gobject_class->finalize = modest_main_window_finalize;
+ ((ModestWindowClass *)(klass))->save_state_func = save_state;
+
g_type_class_add_private (gobject_class, sizeof(ModestMainWindowPrivate));
}
+static GtkWidget *
+create_main_bar (GtkWidget *progress_bar)
+{
+ GtkWidget *status_bar, *main_bar;
+
+ main_bar = gtk_hbox_new (FALSE, 6);
+
+ /* Status bar */
+ status_bar = gtk_statusbar_new ();
+ gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (status_bar), FALSE);
+
+ /* Progress bar */
+ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), 1.0);
+ gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR (progress_bar),
+ PANGO_ELLIPSIZE_END);
+
+ /* Pack */
+ gtk_box_pack_start (GTK_BOX (main_bar), status_bar, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (main_bar), progress_bar, FALSE, FALSE, 0);
+
+ return main_bar;
+}
+
static void
modest_main_window_init (ModestMainWindow *obj)
{
TnyFolderStoreQuery *query;
GtkWidget *icon;
gboolean online;
+ GtkWidget *progress_bar;
priv = MODEST_MAIN_WINDOW_GET_PRIVATE(obj);
priv->folder_paned = NULL;
priv->msg_paned = NULL;
priv->main_paned = NULL;
+ priv->progress_widgets = NULL;
account_store = TNY_ACCOUNT_STORE (modest_runtime_get_account_store ());
- /* online/offline combo */
+ /* online/offline toggle */
priv->online_toggle = gtk_toggle_button_new ();
online = tny_device_is_online (modest_runtime_get_device());
icon = gtk_image_new_from_icon_name (online ? GTK_STOCK_CONNECT : GTK_STOCK_DISCONNECT,
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(priv->online_toggle), online);
gtk_button_set_image (GTK_BUTTON(priv->online_toggle),icon);
- /* label with number of items, unread items for
- the current folder */
- priv->folder_info_label = gtk_label_new (NULL);
-
- /* status bar */
- priv->status_bar = gtk_statusbar_new ();
- gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR(priv->status_bar),
- FALSE);
+ /* Paned */
+ priv->folder_paned = gtk_vpaned_new ();
+ priv->main_paned = gtk_hpaned_new ();
+ priv->msg_paned = gtk_vpaned_new ();
- /* progress bar */
- priv->progress_bar = gtk_progress_bar_new ();
- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(priv->progress_bar), 1.0);
- gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR(priv->progress_bar),
- PANGO_ELLIPSIZE_END);
+ /* Main bar */
+ priv->folder_info_label = gtk_label_new (NULL);
+ progress_bar = modest_progress_bar_new ();
+ priv->main_bar = create_main_bar (progress_bar);
+ priv->progress_widgets = g_slist_prepend (priv->progress_widgets,
+ progress_bar);
/* msg preview */
- priv->msg_preview = MODEST_MSG_VIEW(modest_msg_view_new (NULL));
+ priv->msg_preview = MODEST_MSG_VIEW(tny_platform_factory_new_msg_view
+ (modest_tny_platform_factory_get_instance ()));
if (!priv->msg_preview)
g_printerr ("modest: cannot instantiate msgpreiew\n");
GtkWidget*
modest_main_window_get_child_widget (ModestMainWindow *self,
- ModestWidgetType widget_type)
+ ModestMainWindowWidgetType widget_type)
{
ModestMainWindowPrivate *priv;
GtkWidget *widget;
g_return_val_if_fail (self, NULL);
- g_return_val_if_fail (widget_type >= 0 && widget_type < MODEST_WIDGET_TYPE_NUM,
+ g_return_val_if_fail (widget_type >= 0 && widget_type < MODEST_MAIN_WINDOW_WIDGET_TYPE_NUM,
NULL);
priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
switch (widget_type) {
- case MODEST_WIDGET_TYPE_HEADER_VIEW:
+ case MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW:
widget = (GtkWidget*)priv->header_view; break;
- case MODEST_WIDGET_TYPE_FOLDER_VIEW:
+ case MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW:
widget = (GtkWidget*)priv->folder_view; break;
- case MODEST_WIDGET_TYPE_MSG_PREVIEW:
+ case MODEST_MAIN_WINDOW_WIDGET_TYPE_MSG_PREVIEW:
widget = (GtkWidget*)priv->msg_preview; break;
- case MODEST_WIDGET_TYPE_STATUS_BAR:
- widget = (GtkWidget*)priv->status_bar; break;
- case MODEST_WIDGET_TYPE_PROGRESS_BAR:
- widget = (GtkWidget*)priv->progress_bar; break;
default:
g_return_val_if_reached (NULL);
return NULL;
static void
-restore_sizes (ModestMainWindow *self)
+restore_settings (ModestMainWindow *self)
{
ModestConf *conf;
ModestMainWindowPrivate *priv;
conf = modest_runtime_get_conf ();
modest_widget_memory_restore (conf, G_OBJECT(priv->folder_paned),
- "modest-folder-paned");
+ MODEST_CONF_FOLDER_PANED_KEY);
modest_widget_memory_restore (conf, G_OBJECT(priv->msg_paned),
- "modest-msg-paned");
+ MODEST_CONF_MSG_PANED_KEY);
modest_widget_memory_restore (conf, G_OBJECT(priv->main_paned),
- "modest-main-paned");
- modest_widget_memory_restore (conf, G_OBJECT(priv->header_view),"header-view");
- modest_widget_memory_restore (conf,G_OBJECT(self), "modest-main-window");
-}
-
-
-static void
-save_sizes (ModestMainWindow *self)
-{
- ModestWindowPrivate *parent_priv;
- ModestMainWindowPrivate *priv;
- ModestConf *conf;
-
- priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
- parent_priv = MODEST_WINDOW_GET_PRIVATE(self);
-
- conf = modest_runtime_get_conf ();
-
- modest_widget_memory_save (conf,G_OBJECT(self), "modest-main-window");
- modest_widget_memory_save (conf, G_OBJECT(priv->folder_paned),
- "modest-folder-paned");
- modest_widget_memory_save (conf, G_OBJECT(priv->msg_paned),
- "modest-msg-paned");
- modest_widget_memory_save (conf, G_OBJECT(priv->main_paned),
- "modest-main-paned");
- modest_widget_memory_save (conf, G_OBJECT(priv->header_view), "header-view");
-}
-
-
-static void
-on_connection_changed (TnyDevice *device, gboolean online, ModestMainWindow *self)
-{
- GtkWidget *icon;
- const gchar *icon_name;
- ModestMainWindowPrivate *priv;
-
- g_return_if_fail (device);
- g_return_if_fail (self);
-
- priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
-
- icon_name = online ? GTK_STOCK_CONNECT : GTK_STOCK_DISCONNECT;
- icon = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_BUTTON);
-
- /* Block handlers in order to avoid unnecessary calls */
- //g_signal_handler_block (G_OBJECT (priv->online_toggle), priv->toggle_button_signal);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(priv->online_toggle), online);
- //g_signal_handler_unblock (G_OBJECT (online_toggle), priv->toggle_button_signal);
-
- gtk_button_set_image (GTK_BUTTON(priv->online_toggle), icon);
- //statusbar_push (widget_factory, 0, online ? _("Modest went online") : _("Modest went offline"));
-
- /* If Modest has became online and the header view has a
- header selected then show it */
- /* FIXME: there is a race condition if some account needs to
- ask the user for a password */
-
-/* if (online) { */
-/* GtkTreeSelection *selected; */
-
-/* selected = gtk_tree_view_get_selection (GTK_TREE_VIEW (header_view)); */
-/* _modest_header_view_change_selection (selected, header_view); */
-/* } */
+ MODEST_CONF_MAIN_PANED_KEY);
+ modest_widget_memory_restore (conf, G_OBJECT(priv->header_view),
+ MODEST_CONF_HEADER_VIEW_KEY);
+ modest_widget_memory_restore (conf, G_OBJECT(self),
+ MODEST_CONF_MAIN_WINDOW_KEY);
}
void
device = modest_runtime_get_device ();
online = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->online_toggle));
- if (online)
+ if (online) {
+ /* TODO: Just attempt to go online, instead of forcing the online status: */
tny_device_force_online (device);
+ }
else
tny_device_force_offline (device);
}
-static gboolean
-on_delete_event (GtkWidget *widget, GdkEvent *event, ModestMainWindow *self)
-{
- save_sizes (self);
- return FALSE;
-}
-
static void
-on_destroy (GtkWidget *widget, GdkEvent *event, ModestMainWindow *self)
+modest_main_window_on_show (GtkWidget *widget, gpointer user_data)
{
- gtk_main_quit();
-}
+ ModestMainWindow *self = MODEST_MAIN_WINDOW (widget);
+ /* Connect signals */
+ connect_signals (self);
+ /* Restore window & widget settings */
+ restore_settings (self);
+}
static void
connect_signals (ModestMainWindow *self)
account_store = modest_runtime_get_account_store ();
/* folder view */
- g_signal_connect (G_OBJECT(priv->folder_view), "folder_selection_changed",
- G_CALLBACK(modest_ui_actions_on_folder_selection_changed), self);
g_signal_connect (G_OBJECT(priv->folder_view), "button-press-event",
G_CALLBACK (on_folder_view_button_press_event),self);
-/* g_signal_connect (priv->folder_view, "popup-menu", */
-/* G_CALLBACK (on_folder_view_button_press_event),self); */
+ g_signal_connect (G_OBJECT(priv->folder_view), "folder_selection_changed",
+ G_CALLBACK(modest_ui_actions_on_folder_selection_changed), self);
+ g_signal_connect (G_OBJECT(priv->folder_view), "folder-display-name-changed",
+ G_CALLBACK(modest_ui_actions_on_folder_display_name_changed), self);
/* header view */
- g_signal_connect (G_OBJECT(priv->header_view), "status_update",
- G_CALLBACK(modest_ui_actions_on_header_status_update), self);
g_signal_connect (G_OBJECT(priv->header_view), "header_selected",
G_CALLBACK(modest_ui_actions_on_header_selected), self);
+ g_signal_connect (G_OBJECT(priv->header_view), "header_selected",
+ G_CALLBACK(on_header_selected), self);
g_signal_connect (G_OBJECT(priv->header_view), "header_activated",
G_CALLBACK(modest_ui_actions_on_header_activated), self);
g_signal_connect (G_OBJECT(priv->header_view), "item_not_found",
G_CALLBACK(modest_ui_actions_on_msg_recpt_activated), self);
/* Account store */
+ /* Emmitted by our TnyAccountStore::get_password_func() implementation,
+ * This is not a normal part of tinymail: */
g_signal_connect (G_OBJECT (modest_runtime_get_account_store()), "password_requested",
G_CALLBACK (modest_ui_actions_on_password_requested), self);
/* Device */
- g_signal_connect (G_OBJECT(modest_runtime_get_device()), "connection_changed",
- G_CALLBACK(on_connection_changed), self);
g_signal_connect (G_OBJECT(priv->online_toggle), "toggled",
G_CALLBACK(on_online_toggle_toggled), self);
-
- /* window */
- g_signal_connect (G_OBJECT(self), "destroy", G_CALLBACK(on_destroy), NULL);
- g_signal_connect (G_OBJECT(self), "delete-event", G_CALLBACK(on_delete_event), self);
+
+ /* Mail Operation Queue */
+ g_signal_connect (G_OBJECT (modest_runtime_get_mail_operation_queue ()),
+ "queue-changed",
+ G_CALLBACK (on_queue_changed),
+ self);
}
priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
parent_priv = MODEST_WINDOW_GET_PRIVATE(self);
+
- /* ***************** */
parent_priv->ui_manager = gtk_ui_manager_new();
+ parent_priv->ui_dimming_manager = modest_ui_dimming_manager_new ();
action_group = gtk_action_group_new ("ModestMainWindowActions");
/* Add common actions */
g_error_free (error);
error = NULL;
}
- /* *************** */
/* Add accelerators */
gtk_window_add_accel_group (GTK_WINDOW (obj),
parent_priv->toolbar = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar");
parent_priv->menubar = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/MenuBar");
- gtk_toolbar_set_tooltips (GTK_TOOLBAR (parent_priv->toolbar), TRUE);
+ gtk_toolbar_set_tooltips (GTK_TOOLBAR (parent_priv->toolbar), TRUE);
folder_win = wrapped_in_scrolled_window (GTK_WIDGET(priv->folder_view), FALSE);
- header_win = wrapped_in_scrolled_window (GTK_WIDGET(priv->header_view), FALSE);
+ header_win = wrapped_in_scrolled_window (GTK_WIDGET(priv->header_view), FALSE);
- /* paned */
- priv->folder_paned = gtk_vpaned_new ();
- priv->msg_paned = gtk_vpaned_new ();
- priv->main_paned = gtk_hpaned_new ();
+ /* Paned */
preview_scroll = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (preview_scroll),
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (preview_scroll),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_paned_add1 (GTK_PANED(priv->main_paned), folder_win);
gtk_paned_add2 (GTK_PANED(priv->main_paned), priv->msg_paned);
gtk_paned_add1 (GTK_PANED(priv->msg_paned), header_win);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (preview_scroll),
- GTK_WIDGET(priv->msg_preview));
+ gtk_container_add (GTK_CONTAINER (preview_scroll),
+ GTK_WIDGET(priv->msg_preview));
gtk_paned_add2 (GTK_PANED(priv->msg_paned), preview_scroll);
- /* status bar / progress */
+ /* Main Bar */
status_hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX(status_hbox), priv->folder_info_label, FALSE,FALSE, 6);
- gtk_box_pack_start (GTK_BOX(status_hbox), priv->status_bar, TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX(status_hbox), priv->progress_bar,FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX(status_hbox), priv->main_bar, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX(status_hbox), priv->online_toggle,FALSE, FALSE, 0);
/* putting it all together... */
gtk_box_pack_start (GTK_BOX(main_vbox), parent_priv->toolbar, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX(main_vbox), priv->main_paned, TRUE, TRUE,0);
gtk_box_pack_start (GTK_BOX(main_vbox), status_hbox, FALSE, FALSE, 0);
-
gtk_container_add (GTK_CONTAINER(obj), main_vbox);
- restore_sizes (MODEST_MAIN_WINDOW(obj));
gtk_window_set_title (GTK_WINDOW(obj), _("Modest"));
gtk_window_set_icon_from_file (GTK_WINDOW(obj), MODEST_APP_ICON, NULL);
gtk_widget_show_all (main_vbox);
- /* Connect signals */
- connect_signals (MODEST_MAIN_WINDOW(obj));
+ /* Do some tasks on show */
+ g_signal_connect (G_OBJECT(self), "show", G_CALLBACK (modest_main_window_on_show), NULL);
/* Set account store */
tny_account_store_view_set_account_store (TNY_ACCOUNT_STORE_VIEW (priv->folder_view),
TNY_ACCOUNT_STORE (modest_runtime_get_account_store ()));
+ gtk_window_set_default_size (GTK_WINDOW (obj), 800, 600);
+
return (ModestWindow *) obj;
}
ModestWindowPrivate *parent_priv;
parent_priv = MODEST_WINDOW_GET_PRIVATE (self);
- menu = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/HeaderViewContextMenu");
+ menu = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/HeaderViewCSM");
return show_context_popup_menu (self,
GTK_TREE_VIEW (header_view),
ModestWindowPrivate *parent_priv;
parent_priv = MODEST_WINDOW_GET_PRIVATE (self);
- menu = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/FolderViewContextMenu");
+ menu = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/FolderViewCSM");
return show_context_popup_menu (self,
GTK_TREE_VIEW (folder_view),
}
return TRUE;
}
+
+static void
+on_queue_changed (ModestMailOperationQueue *queue,
+ ModestMailOperation *mail_op,
+ ModestMailOperationQueueNotification type,
+ ModestMainWindow *self)
+{
+ GSList *tmp;
+ ModestMainWindowPrivate *priv;
+
+ priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+
+ tmp = priv->progress_widgets;
+
+ switch (type) {
+ case MODEST_MAIL_OPERATION_QUEUE_OPERATION_ADDED:
+ while (tmp) {
+ modest_progress_object_add_operation (MODEST_PROGRESS_OBJECT (tmp->data),
+ mail_op);
+ tmp = g_slist_next (tmp);
+ }
+ break;
+ case MODEST_MAIL_OPERATION_QUEUE_OPERATION_REMOVED:
+ while (tmp) {
+ modest_progress_object_remove_operation (MODEST_PROGRESS_OBJECT (tmp->data),
+ mail_op);
+ tmp = g_slist_next (tmp);
+ }
+ break;
+ }
+}
+
+void
+modest_main_window_set_style (ModestMainWindow *self,
+ ModestMainWindowStyle style)
+{
+ /* TODO */
+}
+
+
+ModestMainWindowStyle
+modest_main_window_get_style (ModestMainWindow *self)
+{
+ /* TODO */
+ return MODEST_MAIN_WINDOW_STYLE_SPLIT;
+}
+
+void
+modest_main_window_set_contents_style (ModestMainWindow *self,
+ ModestMainWindowContentsStyle style)
+{
+ /* TODO */
+}
+
+ModestMainWindowContentsStyle
+modest_main_window_get_contents_style (ModestMainWindow *self)
+{
+ /* TODO */
+ return MODEST_MAIN_WINDOW_CONTENTS_STYLE_HEADERS;
+}
+
+
+static void
+get_msg_callback (TnyFolder *folder,
+ gboolean cancelled,
+ TnyMsg *msg,
+ GError **err,
+ gpointer user_data)
+{
+ if (!err ||!(*err)) {
+ ModestMsgView *msg_preview;
+
+ msg_preview = MODEST_MSG_VIEW (user_data);
+ tny_msg_view_set_msg (TNY_MSG_VIEW (msg_preview), msg);
+ }
+
+ /* Frees */
+ g_object_unref (folder);
+}
+
+static void
+on_header_selected (ModestHeaderView *header_view,
+ TnyHeader *header,
+ ModestMainWindow *main_window)
+{
+ TnyFolder *folder;
+ ModestMainWindowPrivate *priv;
+
+ priv = MODEST_MAIN_WINDOW_GET_PRIVATE (main_window);
+
+ if (!header)
+ return;
+
+ folder = tny_header_get_folder (header);
+
+ /* FIXME: do not use this directly. Use a mail operation
+ instead in order to get progress info */
+ tny_folder_get_msg_async (folder,
+ header,
+ (TnyGetMsgCallback) get_msg_callback,
+ NULL,
+ priv->msg_preview);
+}
+
+void
+modest_main_window_notify_send_receive_initied (ModestMainWindow *self)
+{
+ g_message("NOT IMPLEMENTED %s", __FUNCTION__);
+}
+void
+modest_main_window_notify_send_receive_completed (ModestMainWindow *self)
+{
+ g_message("NOT IMPLEMENTED %s", __FUNCTION__);
+}
+
+gboolean
+modest_main_window_transfer_mode_enabled (ModestMainWindow *self)
+{
+ g_message("NOT IMPLEMENTED %s", __FUNCTION__);
+ return FALSE;
+}
+
+gboolean
+modest_main_window_on_msg_view_window_msg_changed (ModestMsgViewWindow *view_window,
+ GtkTreeModel *model,
+ GtkTreeRowReference *row_reference,
+ ModestMainWindow *self)
+{
+ g_message("NOT IMPLEMENTED %s", __FUNCTION__);
+ return FALSE;
+}
+
+gboolean
+modest_main_window_screen_is_on (ModestMainWindow *self)
+{
+ g_message("NOT IMPLEMENTED %s", __FUNCTION__);
+ return TRUE;
+}
+
+static void
+save_state (ModestWindow *window)
+{
+ ModestConf *conf;
+ ModestMainWindow* self = MODEST_MAIN_WINDOW(window);
+ ModestMainWindowPrivate *priv;
+
+ priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+ conf = modest_runtime_get_conf ();
+
+ modest_widget_memory_save (conf, G_OBJECT(self),
+ MODEST_CONF_MAIN_WINDOW_KEY);
+ modest_widget_memory_save (conf, G_OBJECT(priv->main_paned),
+ MODEST_CONF_MAIN_PANED_KEY);
+ modest_widget_memory_save (conf, G_OBJECT(priv->folder_view),
+ MODEST_CONF_FOLDER_VIEW_KEY);
+}