X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-window.c;h=c0e78302185c8e840759b8b3540e10d0025a27f8;hp=91394bb423f437f642a0335198757a9ad19db019;hb=2b58f5abfb171a82424c14cd9777ea5ee460db61;hpb=362784ce756b3f0e31cd451d9ac5e69b909d4053 diff --git a/src/widgets/modest-window.c b/src/widgets/modest-window.c index 91394bb..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,58 @@ 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 +modest_window_set_dimming_state (ModestWindow *window, + DimmedState *state) +{ + ModestWindowPrivate *priv; + + g_return_if_fail (MODEST_IS_WINDOW (window)); + priv = MODEST_WINDOW_GET_PRIVATE(window); + + /* Free previous */ + if (priv->dimming_state != NULL) + g_slice_free (DimmedState, priv->dimming_state); + + /* Set new state */ + priv->dimming_state = state; +} + +const DimmedState * +modest_window_get_dimming_state (ModestWindow *window) +{ + ModestWindowPrivate *priv; + + g_return_val_if_fail (MODEST_IS_WINDOW (window), NULL); + priv = MODEST_WINDOW_GET_PRIVATE(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 *