#endif /*HAVE_CONFIG_H*/
#include <glib/gi18n.h>
+#include <string.h>
#include "modest-ui-priv.h"
#include "modest-ui.h"
#include "modest-ui-actions.h"
#include "modest-tny-platform-factory.h"
#include "modest-account-view-window.h"
#include "modest-main-window.h"
+#include "modest-mail-operation.h"
#include <modest-widget-memory.h>
#include <tny-error.h>
#include <tny-simple-list.h>
static GObjectClass *parent_class = NULL;
/* 'private'/'protected' functions */
-static void modest_ui_class_init (ModestUIClass *klass);
-static void modest_ui_init (ModestUI *obj);
-static void modest_ui_finalize (GObject *obj);
-
-static void register_stock_icons ();
-static void connect_signals (ModestUI *self);
-/* static GtkUIManager *create_ui_manager (); */
-
-static void reply_forward_func (gpointer data, gpointer user_data);
-static void read_msg_func (gpointer data, gpointer user_data);
-static void get_msg_cb (TnyFolder *folder,
- TnyMsg *msg,
- GError **err,
- gpointer user_data);
-
-static void reply_forward (GtkWidget *widget,
- ReplyForwardAction action,
- ModestMainWindow *main_window);
-
-static void _modest_ui_actions_on_password_requested (ModestTnyAccountStore *account_store,
+static void modest_ui_class_init (ModestUIClass *klass);
+static void modest_ui_init (ModestUI *obj);
+static void modest_ui_finalize (GObject *obj);
+
+static void register_stock_icons ();
+static void connect_signals (ModestUI *self);
+
+static void reply_forward_func (gpointer data,
+ gpointer user_data);
+static void read_msg_func (gpointer data,
+ gpointer user_data);
+static void get_msg_cb (TnyFolder *folder,
+ TnyMsg *msg,
+ GError **err,
+ gpointer user_data);
+
+static void reply_forward (GtkWidget *widget,
+ ReplyForwardAction action,
+ ModestMainWindow *main_window);
+
+static gchar* ask_for_folder_name (GtkWindow *parent_window,
+ const gchar *title);
+
+static void _modest_ui_actions_on_password_requested (ModestTnyAccountStore *account_store,
const gchar* account_name,
gchar **password,
gboolean *cancel,
/* ***************************************************************** */
/* M O D E S T U I A C T I O N S */
/* ***************************************************************** */
-void
+void
_modest_ui_actions_on_about (GtkWidget *widget,
ModestMainWindow *main_window)
{
TnyIterator *iter;
GtkTreeModel *model;
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
header_view = modest_widget_factory_get_header_view (widget_factory);
header_list = modest_header_view_get_selected_headers (header_view);
g_object_unref (G_OBJECT(widget_factory));
GtkWidget *account_win;
ModestWidgetFactory *widget_factory;
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
account_win = modest_account_view_window_new (widget_factory);
g_object_unref (G_OBJECT(widget_factory));
ModestWidgetFactory *widget_factory;
TnyAccountStore *account_store;
- widget_factory = modest_main_window_get_widget_factory (main_window);
- account_store = modest_main_window_get_account_store (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
+ account_store = modest_window_get_account_store (MODEST_WINDOW (main_window));
msg_win = modest_edit_msg_window_new (widget_factory,
account_store,
MODEST_EDIT_TYPE_NEW);
TnyAccountStore *account_store;
GetMsgAsyncHelper *helper;
ReplyForwardHelper *rf_helper;
- GtkWindow *msg_win;
+ ModestWindow *msg_win;
ModestEditType edit_type;
msg = TNY_MSG (data);
g_object_unref (G_OBJECT (new_header));
/* Show edit window */
- widget_factory = modest_main_window_get_widget_factory (helper->main_window);
- account_store = modest_main_window_get_account_store (helper->main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (helper->main_window));
+ account_store = modest_window_get_account_store (MODEST_WINDOW (helper->main_window));
msg_win = modest_edit_msg_window_new (widget_factory,
account_store,
MODEST_EDIT_TYPE_NEW);
g_free (key);
/* Get the list of headers */
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
header_view = modest_widget_factory_get_header_view (widget_factory);
header_list = modest_header_view_get_selected_headers (header_view);
g_object_unref (G_OBJECT(widget_factory));
ModestHeaderView *header_view;
ModestWidgetFactory *widget_factory;
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
header_view = modest_widget_factory_get_header_view (widget_factory);
g_object_unref (G_OBJECT(widget_factory));
plat_factory = modest_tny_platform_factory_get_instance ();
conf = modest_tny_platform_factory_get_conf_instance
(MODEST_TNY_PLATFORM_FACTORY(plat_factory));
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
header_view = modest_widget_factory_get_header_view (widget_factory);
g_object_unref (G_OBJECT(widget_factory));
g_object_unref (G_OBJECT (header));
/* Set message on msg view */
- widget_factory = modest_main_window_get_widget_factory (helper->main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (helper->main_window));
msg_view = modest_widget_factory_get_msg_preview (widget_factory);
g_object_unref (G_OBJECT(widget_factory));
modest_msg_view_set_message (msg_view, msg);
ModestHeaderView *header_view;
ModestWidgetFactory *widget_factory;
- widget_factory = modest_main_window_get_widget_factory (helper->main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (helper->main_window));
header_view = modest_widget_factory_get_header_view (widget_factory);
g_object_unref (G_OBJECT (widget_factory));
_modest_ui_actions_on_item_not_found (header_view,
if (!header) {
ModestMsgView *msg_view;
ModestWidgetFactory *widget_factory;
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
msg_view = modest_widget_factory_get_msg_preview (widget_factory);
modest_msg_view_set_message (msg_view, NULL);
return;
ModestHeaderView *header_view;
ModestWidgetFactory *widget_factory;
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
folder_info_label =
GTK_LABEL (modest_widget_factory_get_folder_info_label (widget_factory));
ModestHeaderView *header_view;
ModestWidgetFactory *widget_factory;
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
header_view = modest_widget_factory_get_header_view (widget_factory);
online_toggle = modest_widget_factory_get_online_toggle (widget_factory);
GtkWidget *progress_bar;
ModestWidgetFactory *widget_factory;
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
progress_bar = modest_widget_factory_get_progress_bar (widget_factory);
if (total != 0)
{
ModestWidgetFactory *widget_factory;
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
statusbar_push (widget_factory, 0, link);
g_object_unref (G_OBJECT (widget_factory));
ModestWidgetFactory *widget_factory;
msg = g_strdup_printf (_("Opening %s..."), link);
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
statusbar_push (widget_factory, 0, msg);
g_object_unref (G_OBJECT (widget_factory));
ModestWidgetFactory *widget_factory;
msg = g_strdup_printf (_("Opening attachment %d..."), index);
- widget_factory = modest_main_window_get_widget_factory (main_window);
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
statusbar_push (widget_factory, 0, msg);
g_free (msg);
TnyAccountStore *account_store;
accounts = TNY_LIST(tny_simple_list_new ());
- account_store = modest_edit_msg_window_get_account_store (edit_window);
+ account_store = modest_window_get_account_store (MODEST_WINDOW (edit_window));
tny_account_store_get_accounts (account_store, accounts,
TNY_ACCOUNT_STORE_TRANSPORT_ACCOUNTS);
g_object_unref (G_OBJECT (account_store));
/* save_settings (edit_window) */
gtk_widget_destroy (GTK_WIDGET (edit_window));
}
+
+/*
+ * Shows a dialog with an entry that asks for some text. The returned
+ * value must be freed by the caller. The dialog window title will be
+ * set to @title.
+ */
+static gchar *
+ask_for_folder_name (GtkWindow *parent_window,
+ const gchar *title)
+{
+ GtkWidget *dialog, *entry;
+ gchar *folder_name = NULL;
+
+ /* Ask for folder name */
+ dialog = gtk_dialog_new_with_buttons (_("New Folder Name"),
+ parent_window,
+ GTK_DIALOG_MODAL,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_REJECT,
+ GTK_STOCK_OK,
+ GTK_RESPONSE_ACCEPT,
+ NULL);
+ gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox),
+ gtk_label_new(title),
+ FALSE, FALSE, 0);
+
+ entry = gtk_entry_new_with_max_length (40);
+ gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox),
+ entry,
+ TRUE, FALSE, 0);
+
+ gtk_widget_show_all (GTK_WIDGET(GTK_DIALOG(dialog)->vbox));
+
+ if (gtk_dialog_run (GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
+ folder_name = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry)));
+
+ gtk_widget_destroy (dialog);
+
+ return folder_name;
+}
+
+void
+_modest_ui_actions_on_new_folder (GtkWidget *widget,
+ ModestMainWindow *main_window)
+{
+ TnyFolder *parent_folder;
+ ModestFolderView *folder_view;
+ ModestWidgetFactory *widget_factory;
+
+ widget_factory = modest_window_get_widget_factory (MODEST_WINDOW (main_window));
+ folder_view = modest_widget_factory_get_folder_view (widget_factory);
+ parent_folder = modest_folder_view_get_selected (folder_view);
+
+ if (parent_folder) {
+ gchar *folder_name;
+
+ folder_name = ask_for_folder_name (GTK_WINDOW (main_window),
+ _("Please enter a name for the new folder"));
+
+ if (folder_name != NULL && strlen (folder_name) > 0) {
+ TnyFolder *new_folder;
+ ModestMailOperation *mail_op;
+
+ mail_op = modest_mail_operation_new ();
+ new_folder = modest_mail_operation_create_folder (mail_op,
+ TNY_FOLDER_STORE (parent_folder),
+ (const gchar *) folder_name);
+ if (new_folder) {
+ /* Do anything more? The model
+ is automatically updated */
+ g_object_unref (new_folder);
+ }
+ g_object_unref (mail_op);
+ }
+ g_object_unref (parent_folder);
+ }
+ g_object_unref (G_OBJECT (widget_factory));
+}
+
+void
+_modest_ui_actions_on_rename_folder (GtkWidget *widget,
+ ModestMainWindow *main_window)
+{
+ g_print ("Rename Folder");
+}
+
+void
+_modest_ui_actions_on_delete_folder (GtkWidget *widget,
+ ModestMainWindow *main_window)
+{
+ g_print ("Delete Folder");
+}