X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-window.c;h=c0e78302185c8e840759b8b3540e10d0025a27f8;hb=f9d5e914ab3837c0f2c28513674cbb400d46b5f4;hp=265fc04fe63ad0106061e39acaacb8c9bc4a4821;hpb=fd3801d4e2aa9fcdf8baa83a4fee2e7da4b7bb1b;p=modest diff --git a/src/widgets/modest-window.c b/src/widgets/modest-window.c index 265fc04..c0e7830 100644 --- a/src/widgets/modest-window.c +++ b/src/widgets/modest-window.c @@ -33,6 +33,8 @@ #include "modest-tny-platform-factory.h" #include "modest-runtime.h" #include "modest-window-mgr.h" +#include /* for strcmp */ +#include /* 'private'/'protected' functions */ static void modest_window_class_init (ModestWindowClass *klass); @@ -129,6 +131,8 @@ modest_window_init (ModestWindow *obj) priv->toolbar = NULL; priv->menubar = NULL; + priv->dimming_state = NULL; + priv->ui_dimming_enabled = TRUE; priv->active_account = NULL; /* Connect signals */ @@ -164,17 +168,32 @@ const gchar* modest_window_get_active_account (ModestWindow *self) { g_return_val_if_fail (self, NULL); - + //g_warning ("%s: %s", __FUNCTION__, MODEST_WINDOW_GET_PRIVATE(self)->active_account); return MODEST_WINDOW_GET_PRIVATE(self)->active_account; } void modest_window_set_active_account (ModestWindow *self, const gchar *active_account) { - ModestWindowPrivate *priv; + ModestWindowPrivate *priv; + g_return_if_fail (self); priv = MODEST_WINDOW_GET_PRIVATE(self); + //g_warning ("%s: %s", __FUNCTION__, active_account); + + /* only 'real' account should be set here; for example the email signature + * depends on the current account, so if you reply to a message in your + * archive, it should take the signature from the real active account, + * not the non-existing one from your mmc-pseudo-account + */ + if (active_account && ((strcmp (active_account, MODEST_LOCAL_FOLDERS_ACCOUNT_ID) == 0) || + (strcmp (active_account, MODEST_MMC_ACCOUNT_ID) == 0))) { + g_warning ("%s: %s is not a valid active account", + __FUNCTION__, active_account); + return; + } + if (active_account == priv->active_account) return; else { @@ -193,7 +212,8 @@ modest_window_check_dimming_rules (ModestWindow *self) g_return_if_fail (MODEST_IS_WINDOW (self)); priv = MODEST_WINDOW_GET_PRIVATE(self); - modest_ui_dimming_manager_process_dimming_rules (priv->ui_dimming_manager); + if (priv->ui_dimming_enabled) + modest_ui_dimming_manager_process_dimming_rules (priv->ui_dimming_manager); } void @@ -205,7 +225,8 @@ modest_window_check_dimming_rules_group (ModestWindow *self, g_return_if_fail (MODEST_IS_WINDOW (self)); priv = MODEST_WINDOW_GET_PRIVATE(self); - modest_ui_dimming_manager_process_dimming_rules_group (priv->ui_dimming_manager, group_name); + if (priv->ui_dimming_enabled) + modest_ui_dimming_manager_process_dimming_rules_group (priv->ui_dimming_manager, group_name); } void @@ -236,6 +257,28 @@ modest_window_get_dimming_state (ModestWindow *window) return priv->dimming_state; } +void +modest_window_disable_dimming (ModestWindow *self) +{ + ModestWindowPrivate *priv; + + g_return_if_fail (MODEST_IS_WINDOW (self)); + priv = MODEST_WINDOW_GET_PRIVATE(self); + + priv->ui_dimming_enabled = FALSE; +} + +void +modest_window_enable_dimming (ModestWindow *self) +{ + ModestWindowPrivate *priv; + + g_return_if_fail (MODEST_IS_WINDOW (self)); + priv = MODEST_WINDOW_GET_PRIVATE(self); + + priv->ui_dimming_enabled = TRUE; +} + GtkAction * modest_window_get_action (ModestWindow *window, const gchar *action_path)