#include <modest-marshal.h>
#include <modest-text-utils.h>
#include <modest-icon-names.h>
-#include <modest-icon-factory.h>
static void modest_header_view_class_init (ModestHeaderViewClass *klass);
static void modest_header_view_init (ModestHeaderView *obj);
static gint cmp_rows (GtkTreeModel *tree_model, GtkTreeIter *iter1, GtkTreeIter *iter2,
gpointer user_data);
-#define MODEST_HEADER_VIEW_PTR "modest-header-view"
-
-enum {
- HEADER_SELECTED_SIGNAL,
- ITEM_NOT_FOUND_SIGNAL,
- STATUS_UPDATE_SIGNAL,
- LAST_SIGNAL
-};
-
typedef struct _ModestHeaderViewPrivate ModestHeaderViewPrivate;
struct _ModestHeaderViewPrivate {
TnyList *headers;
GMutex *lock;
ModestHeaderViewStyle style;
- gulong sig1;
- gboolean is_empty;
};
#define MODEST_HEADER_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
MODEST_TYPE_HEADER_VIEW, \
ModestHeaderViewPrivate))
+
+
+#define MODEST_HEADER_VIEW_PTR "modest-header-view"
+
+enum {
+ HEADER_SELECTED_SIGNAL,
+ ITEM_NOT_FOUND_SIGNAL,
+ STATUS_UPDATE_SIGNAL,
+ LAST_SIGNAL
+};
+
/* globals */
static GObjectClass *parent_class = NULL;
-static gboolean
-set_empty (ModestHeaderView *self)
-{
- GtkListStore *store;
- GtkTreeIter iter;
-
- gtk_tree_view_set_model (GTK_TREE_VIEW(self), NULL);
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(self),
- FALSE);
- remove_all_columns (self);
-
- return TRUE; /* FIXME */
-
-
- store = gtk_list_store_new(1,G_TYPE_STRING);
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, _("No items in this folder"), -1);
-
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW(self),
- 0, "", gtk_cell_renderer_text_new (),
- "text", 0,
- "weight", 800, /* bold */
- NULL);
- gtk_tree_view_set_model (GTK_TREE_VIEW(self), GTK_TREE_MODEL(store));
- g_object_unref (G_OBJECT(store));
- MODEST_HEADER_VIEW_GET_PRIVATE(self)->is_empty = TRUE;
-
- return TRUE;
-}
-
-
-
gboolean
modest_header_view_set_columns (ModestHeaderView *self, const GList *columns)
{
/* FIXME: check whether these renderers need to be freed */
renderer_msgtype = gtk_cell_renderer_pixbuf_new ();
renderer_attach = gtk_cell_renderer_pixbuf_new ();
- renderer_header = gtk_cell_renderer_text_new ();
+ renderer_header = gtk_cell_renderer_text_new ();
remove_all_columns (self);
modest_header_view_init (ModestHeaderView *obj)
{
ModestHeaderViewPrivate *priv;
+
priv = MODEST_HEADER_VIEW_GET_PRIVATE(obj);
priv->lock = g_mutex_new ();
- priv->sig1 = 0;
- priv->is_empty = TRUE;
+
}
static void
g_object_unref (G_OBJECT(priv->headers));
sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
-
- if (sel && priv->sig1 != 0) {
- g_signal_handler_disconnect (G_OBJECT(sel), priv->sig1);
- priv->sig1 = 0;
- }
-
+
if (priv->lock) {
g_mutex_free (priv->lock);
priv->lock = NULL;
gtk_tree_view_columns_autosize (GTK_TREE_VIEW(obj));
gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW(obj),TRUE);
-
+ gtk_tree_view_set_enable_search (GTK_TREE_VIEW(obj), TRUE);
+
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW(obj),
TRUE); /* alternating row colors */
sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
- priv->sig1 = g_signal_connect (sel, "changed",
- G_CALLBACK(on_selection_changed), self);
+ g_signal_connect (sel, "changed",
+ G_CALLBACK(on_selection_changed), self);
return GTK_WIDGET(self);
}
modest_header_view_is_empty (ModestHeaderView *self)
{
g_return_val_if_fail (self, FALSE);
- return MODEST_HEADER_VIEW_GET_PRIVATE(self)->is_empty;
+ return FALSE; /* FIXME */
}
priv = MODEST_HEADER_VIEW_GET_PRIVATE(self);
priv->folder = folder;
- if (!folder || tny_folder_get_all_count(folder) == 0) {
- set_empty (self);
- } else { /* it's a new one or a refresh */
+
+ if (folder) { /* it's a new one or a refresh */
GList *cols, *cursor;
-
- priv->is_empty = FALSE;
if (priv->headers)
g_object_unref (priv->headers);
self = MODEST_HEADER_VIEW(user_data);
priv = MODEST_HEADER_VIEW_GET_PRIVATE(self);
+ /* FIXME: this is a hack ==> tinymail gives us this when
+ * it has nothing better to do */
+ if (num == 1 && total == 100)
+ return;
+
g_signal_emit (G_OBJECT(self), signals[STATUS_UPDATE_SIGNAL],
0, msg, num, total);
}
priv = MODEST_HEADER_VIEW_GET_PRIVATE(self);
priv->folder = folder;
-
+
if (folder)
tny_folder_refresh_async (folder,
on_refresh_folder,
on_refresh_folder_status_update,
self);
+
/* no message selected */
g_signal_emit (G_OBJECT(self), signals[HEADER_SELECTED_SIGNAL], 0,
NULL);