* src/widgets/modest-main-window.h
authorAlberto Garcia <agarcia@igalia.com>
Fri, 24 Aug 2007 11:54:11 +0000 (11:54 +0000)
committerAlberto Garcia <agarcia@igalia.com>
Fri, 24 Aug 2007 11:54:11 +0000 (11:54 +0000)
   * src/widgets/modest-main-window.c
   (modest_main_window_transfer_mode_enabled):
   Checks whether the main window is in transfer mode.
   (set_toolbar_mode):
   Checks dimming rules when changing toolbar mode

* src/modest-ui-dimming-rules.c
   (modest_ui_dimming_rules_on_delete_folder):
   Dim "delete folder" if the main window is in transfer mode
   (_transfer_mode_enabled):
   Added support for the main window

   Fixes NB#64604

pmo-trunk-r3064

src/maemo/modest-main-window.c
src/modest-ui-dimming-rules.c
src/widgets/modest-main-window.h

index 285a937..283cdce 100644 (file)
@@ -2020,6 +2020,9 @@ set_toolbar_mode (ModestMainWindow *self,
        /* Sets current toolbar mode */
        priv->current_toolbar_mode = mode;
 
+        /* Checks the dimming rules */
+        modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (self));
+
        /* Show and hide toolbar items */
        switch (mode) {
        case TOOLBAR_MODE_NORMAL:
@@ -2064,6 +2067,17 @@ set_toolbar_mode (ModestMainWindow *self,
        }
 }
 
+gboolean
+modest_main_window_transfer_mode_enabled (ModestMainWindow *self)
+{
+       ModestMainWindowPrivate *priv;
+
+       g_return_val_if_fail (MODEST_IS_MAIN_WINDOW (self), FALSE);
+       priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+
+       return priv->current_toolbar_mode == TOOLBAR_MODE_TRANSFER;
+}
+
 static void
 cancel_progressbar (GtkToolButton *toolbutton,
                    ModestMainWindow *self)
index 03a432d..b7a7617 100644 (file)
@@ -485,6 +485,11 @@ modest_ui_dimming_rules_on_delete_folder (ModestWindow *win, gpointer user_data)
                if (dimmed)
                        modest_dimming_rule_set_notification (rule, _("mail_in_ui_folder_delete_error"));
        }
+       if (!dimmed) {
+               dimmed = _transfer_mode_enabled (win);
+               if (dimmed)
+                       modest_dimming_rule_set_notification (rule, _CS("ckct_ib_unable_to_delete"));
+       }
 
        return dimmed;
 }
@@ -2086,10 +2091,14 @@ _transfer_mode_enabled (ModestWindow *win)
 {
        gboolean result = FALSE;
 
-       g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (win), FALSE);
-       
-       /* Check dimming */
-       result = modest_msg_view_window_transfer_mode_enabled (MODEST_MSG_VIEW_WINDOW (win));
+        /* Check dimming */
+        if (MODEST_IS_MSG_VIEW_WINDOW(win)) {
+                result = modest_msg_view_window_transfer_mode_enabled (MODEST_MSG_VIEW_WINDOW (win));
+        } else if (MODEST_IS_MAIN_WINDOW(win)) {
+                result = modest_main_window_transfer_mode_enabled (MODEST_MAIN_WINDOW (win));
+        } else {
+                g_warning("_transfer_mode_enabled called with wrong window type");
+        }
 
        return result;
 }
index 710a41d..c9ded93 100644 (file)
@@ -220,6 +220,17 @@ gboolean  modest_main_window_on_msg_view_window_msg_changed (ModestMsgViewWindow
                                                             GtkTreeRowReference *row_reference,
                                                             ModestMainWindow *self);
 
+/**
+ * modest_main_window_transfer_mode_enabled:
+ * @window: a #ModestMainWindow
+ *
+ * Determines if some transfer operation is in progress.
+ *
+ * Returns: TRUE if transfer mode is enabled, FASE otherwise.
+*/
+gboolean
+modest_main_window_transfer_mode_enabled (ModestMainWindow *self);
+
 G_END_DECLS
 
 #endif /* __MODEST_MAIN_WINDOW_H__ */