GtkTreePath *path,
GtkTreeViewColumn *column,
ModestAccountsWindow *accounts_window);
+static void on_progress_list_changed (ModestWindowMgr *mgr,
+ ModestAccountsWindow *self);
static void setup_menu (ModestAccountsWindow *self);
+static gboolean _modest_accounts_window_map_event (GtkWidget *widget,
+ GdkEvent *event,
+ gpointer userdata);
+static void update_progress_hint (ModestAccountsWindow *self);
typedef struct _ModestAccountsWindowPrivate ModestAccountsWindowPrivate;
/* signals */
GSList *sighandlers;
+ gboolean progress_hint;
};
#define MODEST_ACCOUNTS_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
MODEST_TYPE_ACCOUNTS_WINDOW, \
priv->sighandlers = NULL;
priv->account_view = NULL;
+ priv->progress_hint = FALSE;
modest_window_mgr_register_help_id (modest_runtime_get_window_mgr(),
GTK_WINDOW(obj),
G_OBJECT (priv->account_view), "row-activated",
G_CALLBACK (on_account_activated), self);
+ priv->sighandlers = modest_signal_mgr_connect (priv->sighandlers,
+ G_OBJECT (modest_runtime_get_window_mgr ()),
+ "progress-list-changed",
+ G_CALLBACK (on_progress_list_changed), self);
+
+
/* window */
/* we don't register this in sighandlers, as it should be run after disconnecting all signals,
* so that the UI is not visible for non-menu D-Bus activation.
*/
+ g_signal_connect (G_OBJECT (self), "map-event",
+ G_CALLBACK (_modest_accounts_window_map_event),
+ G_OBJECT (self));
+ update_progress_hint (self);
+
+
return MODEST_WINDOW(self);
}
}
+static gboolean
+_modest_accounts_window_map_event (GtkWidget *widget,
+ GdkEvent *event,
+ gpointer userdata)
+{
+ ModestAccountsWindow *self = (ModestAccountsWindow *) userdata;
+ ModestAccountsWindowPrivate *priv = MODEST_ACCOUNTS_WINDOW_GET_PRIVATE (self);
+
+ if (priv->progress_hint) {
+ hildon_gtk_window_set_progress_indicator (GTK_WINDOW (self), TRUE);
+ }
+
+ return FALSE;
+}
+
+static void
+update_progress_hint (ModestAccountsWindow *self)
+{
+ ModestAccountsWindowPrivate *priv = MODEST_ACCOUNTS_WINDOW_GET_PRIVATE (self);
+
+ priv->progress_hint = modest_window_mgr_has_progress_operation (modest_runtime_get_window_mgr ());
+
+ if (GTK_WIDGET_VISIBLE (self)) {
+ hildon_gtk_window_set_progress_indicator (GTK_WINDOW (self), priv->progress_hint?1:0);
+ }
+}
+
+static void
+on_progress_list_changed (ModestWindowMgr *mgr,
+ ModestAccountsWindow *self)
+{
+ update_progress_hint (self);
+}