#include <tny-gtk-folder-store-tree-model.h>
#include <tny-gtk-header-list-model.h>
#include <tny-folder.h>
-#include <tny-folder-monitor.h>
#include <tny-account-store.h>
#include <tny-account.h>
#include <tny-folder.h>
static gboolean update_model (ModestFolderView *self,
ModestTnyAccountStore *account_store);
-static gboolean update_model_empty (ModestFolderView *self);
-
static void on_selection_changed (GtkTreeSelection *sel, gpointer data);
static void on_account_update (TnyAccountStore *account_store,
gulong account_update_signal;
gulong changed_signal;
gulong accounts_reloaded_signal;
- GMutex *lock;
GtkTreeSelection *cur_selection;
TnyFolderStoreQuery *query;
guint timer_expander;
-
- TnyFolderMonitor *monitor;
};
#define MODEST_FOLDER_VIEW_GET_PRIVATE(o) \
(G_TYPE_INSTANCE_GET_PRIVATE((o), \
fname = g_strdup(modest_local_folder_info_get_type_display_name (type));
}
}
- } else if (folder && type == TNY_FOLDER_TYPE_ROOT) {
- g_warning ("fname: %s", fname);
- /* FIXME: todo */
- }
+ }/* else if (folder && type == TNY_FOLDER_TYPE_ROOT) { */
+/* g_warning ("fname: %s", fname); */
+/* /\* FIXME: todo *\/ */
+/* } */
if (unread > 0) {
gchar *folder_title = g_strdup_printf ("%s (%d)", fname, unread);
priv->cur_folder = NULL;
priv->cur_row = NULL;
priv->query = NULL;
- priv->monitor = NULL;
-
- priv->lock = g_mutex_new ();
column = gtk_tree_view_column_new ();
gtk_tree_view_append_column (GTK_TREE_VIEW(obj),column);
priv->account_store = NULL;
}
- if (priv->lock) {
- g_mutex_free (priv->lock);
- priv->lock = NULL;
- }
-
if (priv->query) {
g_object_unref (G_OBJECT (priv->query));
priv->query = NULL;
return GTK_WIDGET(self);
}
-
-static gboolean
-update_model_empty (ModestFolderView *self)
-{
- ModestFolderViewPrivate *priv;
-
- g_return_val_if_fail (self, FALSE);
- priv = MODEST_FOLDER_VIEW_GET_PRIVATE(self);
-
- g_mutex_lock (priv->lock);
- {
- if (priv->monitor) {
- tny_folder_monitor_stop (priv->monitor);
- g_object_unref(G_OBJECT(priv->monitor));
- priv->monitor = NULL;
- }
- }
- g_mutex_unlock (priv->lock);
-
- g_signal_emit (G_OBJECT(self), signals[FOLDER_SELECTION_CHANGED_SIGNAL], 0,
- NULL, TRUE);
- return TRUE;
-}
-
-
/* this feels dirty; any other way to expand all the root items? */
static void
expand_root_items (ModestFolderView *self)
priv = MODEST_FOLDER_VIEW_GET_PRIVATE(self);
/* Notify that there is no folder selected */
- update_model_empty (self);
+ g_signal_emit (G_OBJECT(self),
+ signals[FOLDER_SELECTION_CHANGED_SIGNAL], 0,
+ NULL, TRUE);
/* FIXME: the local accounts are not shown when the query
selects only the subscribed folders. */
#include <glib/gi18n.h>
#include <tny-list.h>
#include <tny-simple-list.h>
+#include <tny-folder-monitor.h>
#include <string.h>
#include <modest-header-view.h>
TnyFolder *folder;
TnyList *headers;
ModestHeaderViewStyle style;
+
+ TnyFolderMonitor *monitor;
+ GMutex *monitor_lock;
};
#define MODEST_HEADER_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
priv->folder = NULL;
priv->headers = NULL;
+ priv->monitor = NULL;
+ priv->monitor_lock = g_mutex_new ();
+
+
setup_drag_and_drop (GTK_TREE_VIEW (obj));
}
g_object_unref (G_OBJECT(priv->headers));
priv->headers = NULL;
}
-
+
+ g_mutex_lock (priv->monitor_lock);
+ if (priv->monitor) {
+ tny_folder_monitor_stop (priv->monitor);
+ g_object_unref (G_OBJECT (priv->monitor));
+ }
+ g_mutex_unlock (priv->monitor_lock);
+ g_mutex_free (priv->monitor_lock);
+
if (priv->folder) {
g_object_unref (G_OBJECT (priv->folder));
priv->folder = NULL;
}
g_list_free (cols);
+ /* Add a folder observer */
+ g_mutex_lock (priv->monitor_lock);
+
+/* if (priv->monitor) { */
+/* tny_folder_monitor_stop (priv->monitor); */
+/* g_object_unref (G_OBJECT (priv->monitor)); */
+/* } */
+/* priv->monitor = TNY_FOLDER_MONITOR (tny_folder_monitor_new (folder)); */
+/* tny_folder_monitor_add_list (priv->monitor, TNY_LIST (priv->headers)); */
+/* tny_folder_monitor_start (priv->monitor); */
+
+ g_mutex_unlock (priv->monitor_lock);
+
/* Set new model */
gtk_tree_view_set_model (GTK_TREE_VIEW (self), sortable);
g_object_unref (G_OBJECT (sortable));
NULL);
} else {
gtk_tree_view_set_model (GTK_TREE_VIEW (self), NULL);
-/* gtk_widget_show (GTK_WIDGET (self)); */
}
}
/* Delete the source row */
gtk_tree_model_get_iter (model, &iter, source_row);
- gtk_tree_model_get (model, &iter,
- TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN, &header,
+ gtk_tree_model_get (model, &iter,
+ TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN, &header,
-1);
tny_list_remove (TNY_LIST (model), G_OBJECT (header));
g_object_unref (G_OBJECT (header));