#include <glib/gi18n.h>
#include <string.h>
#include <modest-runtime.h>
+#include <modest-tny-folder.h>
#include <modest-tny-msg.h>
#include <modest-tny-account.h>
#include <modest-address-book.h>
if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
gtk_widget_destroy (GTK_WIDGET(win));
- }
+ }
}
void
modest_ui_actions_on_quit (GtkAction *action, ModestWindow *win)
{
- /* FIXME: save size of main window */
-/* save_sizes (main_window); */
-/* gtk_widget_destroy (GTK_WIDGET (win)); */
gtk_main_quit ();
}
}
from_str = modest_account_mgr_get_from_string (modest_runtime_get_account_mgr(), account_name);
+ if (!from_str) {
+ g_printerr ("modest: failed get from string for '%s'\n", account_name);
+ goto cleanup;
+ }
- msg = modest_tny_msg_new ("", from_str, "", "", "", "", NULL);
+ msg = modest_tny_msg_new ("", from_str, "", "", "", "", NULL);
if (!msg) {
g_printerr ("modest: failed to create new msg\n");
goto cleanup;
mail_op = modest_mail_operation_new ();
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
modest_mail_operation_update_account (mail_op, TNY_STORE_ACCOUNT(tny_account));
+
g_object_unref (G_OBJECT(tny_account));
g_object_unref (G_OBJECT (mail_op));
modest_ui_actions_on_send_receive (GtkAction *action, ModestWindow *win)
{
gchar *account_name;
+
+ g_message ("online? %s",
+ tny_device_is_online(modest_runtime_get_device()) ? "yes":"no");
+
account_name =
g_strdup(modest_window_get_active_account(MODEST_WINDOW(win)));
if (!account_name)
}
void
-modest_ui_actions_on_header_selected (ModestHeaderView *folder_view,
+modest_ui_actions_on_header_selected (ModestHeaderView *header_view,
TnyHeader *header,
ModestMainWindow *main_window)
{
- GtkWidget *msg_preview;
TnyFolder *folder;
GetMsgAsyncHelper *helper;
TnyList *list;
g_return_if_fail (MODEST_IS_MAIN_WINDOW(main_window));
-
- msg_preview = modest_main_window_get_child_widget(main_window,
- MODEST_WIDGET_TYPE_MSG_PREVIEW);
- if (!msg_preview)
- return;
-
+
/* when there's no header, clear the msgview */
if (!header) {
- modest_msg_view_set_message (MODEST_MSG_VIEW(msg_preview), NULL);
+ GtkWidget *msg_preview;
+
+ /* Clear msg preview if exists */
+ msg_preview = modest_main_window_get_child_widget(main_window,
+ MODEST_WIDGET_TYPE_MSG_PREVIEW);
+
+ if (msg_preview)
+ modest_msg_view_set_message (MODEST_MSG_VIEW(msg_preview), NULL);
return;
}
- folder = tny_header_get_folder (TNY_HEADER(header));
+ /* Update Main window title */
+ if (GTK_WIDGET_HAS_FOCUS (header_view)) {
+ const gchar *subject = tny_header_get_subject (header);
+ if (subject && strcmp (subject, ""))
+ gtk_window_set_title (GTK_WINDOW (main_window), subject);
+ else
+ gtk_window_set_title (GTK_WINDOW (main_window), _("mail_va_no_subject"));
+ }
/* Create list */
list = tny_simple_list_new ();
helper->iter = tny_list_create_iterator (list);
helper->func = read_msg_func;
+ folder = tny_header_get_folder (TNY_HEADER(header));
+
tny_folder_get_msg_async (TNY_FOLDER(folder),
header, get_msg_cb,
helper);
modest_ui_actions_on_header_activated (ModestHeaderView *folder_view, TnyHeader *header,
ModestMainWindow *main_window)
{
- ModestWindow *win;
+ ModestWindow *win = NULL;
TnyFolder *folder = NULL;
TnyMsg *msg = NULL;
ModestWindowMgr *mgr;
folder = tny_header_get_folder (header);
if (!folder) {
g_printerr ("modest: cannot get folder for header\n");
- goto cleanup;
+ return;
}
/* FIXME: make async?; check error */
gtk_window_set_transient_for (GTK_WINDOW (win),
GTK_WINDOW (main_window));
-
- g_free (account);
}
gtk_widget_show_all (GTK_WIDGET(win));
+
+ g_object_unref (G_OBJECT (msg));
cleanup:
- if (folder)
- g_object_unref (G_OBJECT (folder));
- if (msg)
- g_object_unref (G_OBJECT (msg));
+ g_object_unref (G_OBJECT (folder));
}
void
gboolean selected,
ModestMainWindow *main_window)
{
- gchar *txt;
ModestConf *conf;
GtkWidget *header_view;
conf = modest_runtime_get_conf ();
- if (!selected) { /* the folder was unselected; save it's settings */
- modest_widget_memory_save (conf, G_OBJECT (header_view), "header-view");
- gtk_window_set_title (GTK_WINDOW(main_window), "Modest");
- modest_header_view_set_folder (MODEST_HEADER_VIEW(header_view), NULL);
- } else { /* the folder was selected */
- if (folder) { /* folder may be NULL */
- guint num, unread;
- gchar *title;
-
- num = tny_folder_get_all_count (folder);
- unread = tny_folder_get_unread_count (folder);
-
- title = g_strdup_printf ("Modest: %s",
- tny_folder_get_name (folder));
-
- gtk_window_set_title (GTK_WINDOW(main_window), title);
- g_free (title);
-
- txt = g_strdup_printf (_("%d %s, %d unread"),
- num, num==1 ? _("item") : _("items"), unread);
- //gtk_label_set_label (GTK_LABEL(folder_info_label), txt);
- g_free (txt);
+ if (TNY_IS_FOLDER (folder)) {
+ if (!selected) { /* the folder was unselected; save it's settings */
+ modest_widget_memory_save (conf, G_OBJECT (header_view), "header-view");
+ modest_header_view_set_folder (MODEST_HEADER_VIEW(header_view), NULL);
+ } else {
+ modest_header_view_set_folder (MODEST_HEADER_VIEW(header_view), folder);
+ modest_widget_memory_restore (conf, G_OBJECT(header_view),
+ "header-view");
}
- modest_header_view_set_folder (MODEST_HEADER_VIEW(header_view), folder);
- modest_widget_memory_restore (conf, G_OBJECT(header_view),
- "header-view");
}
}
data->subject,
data->plain_body,
data->html_body,
- data->attachments);
+ data->attachments,
+ data->priority_flags);
/* Frees */
g_free (from);
g_free (account_name);
void
modest_ui_actions_on_new_folder (GtkAction *action, ModestMainWindow *main_window)
{
- TnyFolder *parent_folder;
+ TnyFolderStore *parent_folder;
GtkWidget *folder_view;
g_return_if_fail (MODEST_IS_MAIN_WINDOW(main_window));
mail_op);
new_folder = modest_mail_operation_create_folder (mail_op,
- TNY_FOLDER_STORE (parent_folder),
+ parent_folder,
(const gchar *) folder_name);
if (new_folder)
g_object_unref (new_folder);
modest_ui_actions_on_rename_folder (GtkAction *action,
ModestMainWindow *main_window)
{
- TnyFolder *folder;
+ TnyFolderStore *folder;
GtkWidget *folder_view;
g_return_if_fail (MODEST_IS_MAIN_WINDOW(main_window));
folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
- if (folder) {
+ if (folder && TNY_IS_FOLDER (folder)) {
gchar *folder_name;
folder_name = ask_for_folder_name (GTK_WINDOW (main_window),
_("Please enter a new name for the folder"));
mail_op);
modest_mail_operation_rename_folder (mail_op,
- folder,
+ TNY_FOLDER (folder),
(const gchar *) folder_name);
g_object_unref (mail_op);
static void
delete_folder (ModestMainWindow *main_window, gboolean move_to_trash)
{
- TnyFolder *folder;
+ TnyFolderStore *folder;
ModestMailOperation *mail_op;
GtkWidget *folder_view;
mail_op = modest_mail_operation_new ();
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
mail_op);
- modest_mail_operation_remove_folder (mail_op, folder, move_to_trash);
+ modest_mail_operation_remove_folder (mail_op, TNY_FOLDER (folder), move_to_trash);
g_object_unref (G_OBJECT (mail_op));
g_object_unref (G_OBJECT (folder));
}
void
+modest_ui_actions_on_undo (GtkAction *action,
+ ModestWindow *window)
+{
+ if (MODEST_IS_MSG_EDIT_WINDOW (window)) {
+ modest_msg_edit_window_undo (MODEST_MSG_EDIT_WINDOW (window));
+ } else {
+ g_return_if_reached ();
+ }
+}
+
+void
modest_ui_actions_on_paste (GtkAction *action,
ModestWindow *window)
{
}
}
+void modest_ui_actions_msg_edit_on_change_priority (GtkRadioAction *action,
+ GtkRadioAction *selected,
+ ModestWindow *window)
+{
+ TnyHeaderFlags flags;
+ g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window));
+
+ flags = gtk_radio_action_get_current_value (selected);
+ modest_msg_edit_window_set_priority_flags (MODEST_MSG_EDIT_WINDOW (window), flags);
+}
+
+void modest_ui_actions_msg_edit_on_change_file_format (GtkRadioAction *action,
+ GtkRadioAction *selected,
+ ModestWindow *window)
+{
+ gint file_format;
+
+ g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (window));
+
+ file_format = gtk_radio_action_get_current_value (selected);
+ modest_msg_edit_window_set_file_format (MODEST_MSG_EDIT_WINDOW (window), file_format);
+}
+
+
void
modest_ui_actions_on_zoom_plus (GtkAction *action,
ModestWindow *window)
mgr = modest_runtime_get_window_mgr ();
active = (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (toggle)))?1:0;
- fullscreen = (modest_window_mgr_get_fullscreen_mode (mgr))?1:0;
+ fullscreen = modest_window_mgr_get_fullscreen_mode (mgr);
if (active != fullscreen) {
modest_window_mgr_set_fullscreen_mode (mgr, active);
}
void
-modest_ui_actions_toggle_main_view (GtkAction *action,
- ModestMainWindow *main_window)
+modest_ui_actions_toggle_folders_view (GtkAction *action,
+ ModestMainWindow *main_window)
{
ModestConf *conf;
conf = modest_runtime_get_conf ();
-/* modest_widget_memory_save (conf, G_OBJECT(header_view), "header-view"); */
-
if (modest_main_window_get_style (main_window) == MODEST_MAIN_WINDOW_STYLE_SPLIT)
modest_main_window_set_style (main_window, MODEST_MAIN_WINDOW_STYLE_SIMPLE);
else
modest_main_window_set_style (main_window, MODEST_MAIN_WINDOW_STYLE_SPLIT);
+}
-/* modest_widget_memory_restore (conf, G_OBJECT(header_view), */
-/* "header-view"); */
+void
+modest_ui_actions_on_toggle_toolbar (GtkToggleAction *toggle,
+ ModestWindow *window)
+{
+ gboolean active, fullscreen = FALSE;
+ ModestWindowMgr *mgr;
+
+ active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (toggle));
+
+ /* Check if we want to toggle the toolbar vuew in fullscreen
+ or normal mode */
+ if (!strcmp (gtk_action_get_name (GTK_ACTION (toggle)),
+ "ViewShowToolbarFullScreen")) {
+ fullscreen = TRUE;
+ }
+
+ /* Toggle toolbar */
+ mgr = modest_runtime_get_window_mgr ();
+ modest_window_mgr_show_toolbars (mgr, active, fullscreen);
+}
+
+void
+modest_ui_actions_msg_edit_on_select_font (GtkAction *action,
+ ModestMsgEditWindow *window)
+{
+ modest_msg_edit_window_select_font (window);
+}
+
+void
+modest_ui_actions_on_folder_display_name_changed (ModestFolderView *folder_view,
+ const gchar *display_name,
+ GtkWindow *window)
+{
+ /* Do not change the application name if the widget has not
+ the focus. This callback could be called even if the folder
+ view has not the focus, because the handled signal could be
+ emitted when the folder view is redrawn */
+ if (GTK_WIDGET_HAS_FOCUS (folder_view)) {
+ if (display_name)
+ gtk_window_set_title (window, display_name);
+ else
+ gtk_window_set_title (window, " ");
+ }
}