* Fix bug on mail-operation, cancel operation was commented.
* Fix bug on mail_operation_queue_remove, it did not take
into account mail op status may be CANCELED.
* Implemented some main and msg view windows dimming rules.
pmo-trunk-r1996
ModestWindow*
modest_main_window_new (void)
{
- ModestMainWindow *self;
- ModestMainWindowPrivate *priv;
- ModestWindowPrivate *parent_priv;
- GtkWidget *folder_win;
- ModestDimmingRulesGroup *rules_group;
- GtkActionGroup *action_group;
+ ModestMainWindow *self = NULL;
+ ModestMainWindowPrivate *priv = NULL;
+ ModestWindowPrivate *parent_priv = NULL;
+ GtkWidget *folder_win = NULL;
+ ModestDimmingRulesGroup *rules_group = NULL;
+ GtkActionGroup *action_group = NULL;
GError *error = NULL;
- TnyFolderStoreQuery *query;
- GdkPixbuf *window_icon;
- ModestConf *conf;
- GtkAction *action;
+ TnyFolderStoreQuery *query = NULL;
+ GdkPixbuf *window_icon = NULL;
+ ModestConf *conf = NULL;
+ GtkAction *action = NULL;
self = MODEST_MAIN_WINDOW(g_object_new(MODEST_TYPE_MAIN_WINDOW, NULL));
priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
--- /dev/null
+#ifndef __MODEST_MSG_VIEW_WINDOW_UI_DIMMING_PRIV_H__
+#define __MODEST_MSG_VIEW_WINDOW_UI_DIMMING_PRIV_H__
+
+#include "modest-dimming-rules-group.h"
+#include "modest-ui-dimming-rules.h"
+
+G_BEGIN_DECLS
+
+
+/* Dimming rules entries */
+static const ModestDimmingEntry modest_msg_view_dimming_entries [] = {
+
+ /* Message Menu */
+ { "/MenuBar/MessageMenu/MessageNewMenu", G_CALLBACK(modest_ui_dimming_rules_on_new_msg) },
+ { "/MenuBar/MessageMenu/MessageReplyMenu", G_CALLBACK(modest_ui_dimming_rules_on_reply_msg) },
+ { "/MenuBar/MessageMenu/MessageReplyAllMenu", G_CALLBACK(modest_ui_dimming_rules_on_reply_msg) },
+ { "/MenuBar/MessageMenu/MessageForwardMenu", G_CALLBACK(modest_ui_dimming_rules_on_reply_msg) },
+ { "/MenuBar/MessageMenu/MessageDeleteMenu", NULL },
+ { "/MenuBar/MessageMenu/MessageDetailsMenu", G_CALLBACK(modest_ui_dimming_rules_on_details_msg) },
+
+ /* Edit Menu */
+ { "/MenuBar/EditMenu", NULL },
+ { "/MenuBar/EditMenu/EditCutMenu", G_CALLBACK(modest_ui_dimming_rules_always_dimmed) },
+ { "/MenuBar/EditMenu/EditCopyMenu", NULL },
+ { "/MenuBar/EditMenu/EditPasteMenu", G_CALLBACK(modest_ui_dimming_rules_always_dimmed) },
+ { "/MenuBar/EditMenu/EditSelectAllMenu", NULL },
+ { "/MenuBar/EditMenu/EditMoveToMenu", G_CALLBACK(modest_ui_dimming_rules_on_move_to) },
+
+ /* View Menu */
+ { "/MenuBar/ViewMenu", NULL },
+ { "/MenuBar/ViewMenu/ZoomMenu", NULL },
+ { "/MenuBar/ViewMenu/ViewToggleFullscreenMenu", NULL },
+ { "/MenuBar/ViewMenu/ViewPreviousMessageMenu", NULL },
+ { "/MenuBar/ViewMenu/ViewNextMessageMenu", NULL },
+
+ /* Attachments Menu */
+ { "/MenuBar/AttachmentsMenu", NULL },
+ { "/MenuBar/AttachmentsMenu/ViewAttachmentMenu", NULL },
+ { "/MenuBar/AttachmentsMenu/SaveAttachmentMenu", NULL },
+ { "/MenuBar/AttachmentsMenu/RemoveAttachmentMenu", NULL },
+
+ /* Tools Menu */
+ { "/MenuBar/ToolsMenu", NULL },
+ { "/MenuBar/ToolsMenu/ToolsContactsMenu", NULL },
+
+ /* Close Menu */
+ { "/MenuBar/CloseMenu", NULL },
+ { "/MenuBar/ToolsMenu/CloseWindowMenu", NULL },
+ { "/MenuBar/ToolsMenu/CloseAllWindowsMenu", NULL },
+
+ /* Toolbar */
+ { "/Toolbar/ToolbarMessageNew", NULL },
+ { "/Toolbar/ToolbarMessageReply", NULL },
+ { "/Toolbar/ToolbarDeleteMessage", NULL },
+ { "/Toolbar/ToolbarMoveTo", NULL },
+ { "/Toolbar/ToolbarFindInMessage", NULL },
+ { "/Toolbar/ToolbarMessageBack", NULL },
+ { "/Toolbar/ToolbarMessageNext", NULL },
+ { "/Toolbar/ToolbarCancel", NULL },
+
+ /* Contextual Menus (Toolbar) */
+ { "/ToolbarReplyCSM/MessageForwardMenu", NULL },
+ { "/ToolbarReplyCSM/MessageReplyAllMenu", NULL },
+ { "/ToolbarReplyCSM/MessageReplyMenu", NULL },
+
+};
+
+G_END_DECLS
+#endif /* __MODEST_MSG_VIEW_WINDOW_UI_PRIV_H__ */
#include <modest-msg-view-window.h>
#include <modest-attachments-view.h>
#include <modest-main-window-ui.h>
+#include "modest-msg-view-window-ui-dimming.h"
#include <modest-widget-memory.h>
#include <modest-runtime.h>
#include <modest-window-priv.h>
#include "modest-defs.h"
#include "modest-hildon-includes.h"
#include <gtkhtml/gtkhtml-search.h>
+#include "modest-ui-dimming-manager.h"
#include <gdk/gdkkeysyms.h>
#define DEFAULT_FOLDER "MyDocs/.documents"
ModestWindow *
modest_msg_view_window_new (TnyMsg *msg, const gchar *account_name)
{
- GObject *obj;
- ModestMsgViewWindowPrivate *priv;
- ModestWindowPrivate *parent_priv;
- GtkActionGroup *action_group;
+ ModestMsgViewWindow *self = NULL;
+ GObject *obj = NULL;
+ ModestMsgViewWindowPrivate *priv = NULL;
+ ModestWindowPrivate *parent_priv = NULL;
+ ModestDimmingRulesGroup *rules_group = NULL;
+ GtkActionGroup *action_group = NULL;
GError *error = NULL;
GdkPixbuf *window_icon = NULL;
- GtkAction *action;
+ GtkAction *action = NULL;
g_return_val_if_fail (msg, NULL);
obj = g_object_new(MODEST_TYPE_MSG_VIEW_WINDOW, NULL);
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE(obj);
parent_priv = MODEST_WINDOW_GET_PRIVATE(obj);
-
+ self = MODEST_MSG_VIEW_WINDOW (obj);
+
parent_priv->ui_manager = gtk_ui_manager_new();
+ parent_priv->ui_dimming_manager = modest_ui_dimming_manager_new();
+
action_group = gtk_action_group_new ("ModestMsgViewWindowActions");
gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
+ rules_group = modest_dimming_rules_group_new ("ModestCommonDimmingRules");
+
/* Add common actions */
gtk_action_group_add_actions (action_group,
modest_action_entries,
}
/* ****** */
+ /* Add common dimming rules */
+ modest_dimming_rules_group_add_rules (rules_group,
+ modest_msg_view_dimming_entries,
+ G_N_ELEMENTS (modest_msg_view_dimming_entries),
+ self);
+
+ /* Insert dimming rules group for this window */
+ modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, rules_group);
+ g_object_unref (rules_group);
+
/* Add accelerators */
gtk_window_add_accel_group (GTK_WINDOW (obj),
gtk_ui_manager_get_accel_group (parent_priv->ui_manager));
status and error handling */
if (modest_mail_operation_get_error (mail_op) != NULL)
modest_mail_operation_execute_error_handler (mail_op);
- else
- g_warning ("%s: possible error in a mail operation "\
- "implementation. The status is not succesful"\
- "but the mail operation does not have any "\
- "error set\n", __FUNCTION__);
+ else {
+ if (status == MODEST_MAIL_OPERATION_STATUS_CANCELED)
+ g_warning ("%s: operation canceled \n", __FUNCTION__);
+ else
+ g_warning ("%s: possible error in a mail operation " \
+ "implementation. The status is not succesful" \
+ "but the mail operation does not have any " \
+ "error set\n", __FUNCTION__);
+ }
}
/* Free object */
priv = MODEST_MAIL_OPERATION_GET_PRIVATE (self);
- /* TODO: Tinymail does not support cancel operation */
-/* tny_account_cancel (); */
+ /* cancel current operation in account */
+ tny_account_cancel (priv->account);
/* Set new status */
priv->status = MODEST_MAIL_OPERATION_STATUS_CANCELED;
static gboolean _selected_folder_not_writeable (ModestMainWindow *win);
static gboolean _selected_folder_is_any_of_type (ModestMainWindow *win, TnyFolderType types[], guint ntypes);
static gboolean _selected_folder_is_root (ModestMainWindow *win);
+static gboolean _msg_download_in_progress (ModestMsgViewWindow *win);
+
+
+gboolean
+modest_ui_dimming_rules_on_new_msg (ModestWindow *win, gpointer user_data)
+{
+ gboolean dimmed = FALSE;
+
+ g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW(win), FALSE);
+
+ /* Check dimmed rule */
+ if (!dimmed)
+ dimmed = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW(win));
+
+ return dimmed;
+}
gboolean
modest_ui_dimming_rules_on_new_folder (ModestWindow *win, gpointer user_data)
gboolean dimmed = FALSE;
TnyFolderType types[3];
- g_return_val_if_fail (MODEST_IS_MAIN_WINDOW(win), FALSE);
-
- types[0] = TNY_FOLDER_TYPE_DRAFTS;
- types[1] = TNY_FOLDER_TYPE_OUTBOX;
- types[2] = TNY_FOLDER_TYPE_ROOT;
+ /* main window dimming rules */
+ if (MODEST_IS_MAIN_WINDOW(win)) {
+
+ types[0] = TNY_FOLDER_TYPE_DRAFTS;
+ types[1] = TNY_FOLDER_TYPE_OUTBOX;
+ types[2] = TNY_FOLDER_TYPE_ROOT;
+
+ /* Check dimmed rule */
+ if (!dimmed)
+ dimmed = _selected_folder_is_any_of_type (MODEST_MAIN_WINDOW(win), types, 3);
+
+ if (!dimmed)
+ dimmed = _invalid_msg_selected (MODEST_MAIN_WINDOW(win), FALSE);
- /* Check dimmed rule */
- if (!dimmed)
- dimmed = _selected_folder_is_any_of_type (MODEST_MAIN_WINDOW(win), types, 3);
+ /* msg view window dimming rules */
+ } else if (MODEST_IS_MSG_VIEW_WINDOW(win)) {
+
+ /* Check dimmed rule */
+ if (!dimmed)
+ dimmed = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW(win));
+ }
- if (!dimmed)
- dimmed = _invalid_msg_selected (MODEST_MAIN_WINDOW(win), FALSE);
-
return dimmed;
}
{
gboolean dimmed = FALSE;
- g_return_val_if_fail (MODEST_IS_MAIN_WINDOW(win), FALSE);
-
- /* Check dimmed rule */
- if (!dimmed)
- dimmed = _invalid_msg_selected (MODEST_MAIN_WINDOW(win), TRUE);
-
+ /* main window dimming rules */
+ if (MODEST_IS_MAIN_WINDOW(win)) {
+
+ /* Check dimmed rule */
+ if (!dimmed)
+ dimmed = _invalid_msg_selected (MODEST_MAIN_WINDOW(win), TRUE);
+
+ /* msg view window dimming rules */
+ } else {
+
+ /* Check dimmed rule */
+ if (!dimmed)
+ dimmed = _msg_download_in_progress (MODEST_MSG_VIEW_WINDOW(win));
+ }
+
return dimmed;
}
return result;
}
+
+static gboolean
+_msg_download_in_progress (ModestMsgViewWindow *win)
+{
+ gboolean result = FALSE;
+
+ g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (win), FALSE);
+
+ return result;
+}
G_BEGIN_DECLS
/* Menu & toolbar dimming rules */
+gboolean modest_ui_dimming_rules_on_new_msg (ModestWindow *win, gpointer user_data);
gboolean modest_ui_dimming_rules_on_new_folder (ModestWindow *win, gpointer user_data);
gboolean modest_ui_dimming_rules_on_rename_folder (ModestWindow *win, gpointer user_data);
gboolean modest_ui_dimming_rules_on_open_msg (ModestWindow *win, gpointer user_data);