GMutex *lock;
ModestHeaderViewStyle style;
gulong sig1;
+ gboolean is_empty;
};
#define MODEST_HEADER_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
static gboolean
set_empty (ModestHeaderView *self)
{
- GList *columns = NULL;
- ModestHeaderViewPrivate *priv;
- priv = MODEST_HEADER_VIEW_GET_PRIVATE(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 */
+
- columns = g_list_append (columns,GINT_TO_POINTER(0));
- modest_header_view_set_columns (self, columns);
- g_list_free (columns);
+ 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;
}
priv->lock = g_mutex_new ();
priv->sig1 = 0;
+ priv->is_empty = TRUE;
}
static void
return gtk_tree_view_get_columns (GTK_TREE_VIEW(self));
}
+gboolean
+modest_header_view_is_empty (ModestHeaderView *self)
+{
+ g_return_val_if_fail (self, FALSE);
+ return MODEST_HEADER_VIEW_GET_PRIVATE(self)->is_empty;
+}
+
gboolean
modest_header_view_set_style (ModestHeaderView *self,
break;
case MODEST_HEADER_VIEW_STYLE_TWOLINES:
break;
- case MODEST_HEADER_VIEW_STYLE_EMPTY:
- set_empty (self);
- break;
default:
g_return_val_if_reached (FALSE);
}
priv = MODEST_HEADER_VIEW_GET_PRIVATE(self);
priv->folder = folder;
-
- if (!folder) {
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(self), FALSE);
+ if (!folder || tny_folder_get_all_count(folder) == 0) {
set_empty (self);
} else { /* it's a new one or a refresh */
GList *cols, *cursor;
+ priv->is_empty = FALSE;
+
if (priv->headers)
g_object_unref (priv->headers);
typedef enum _ModestHeaderViewStyle {
MODEST_HEADER_VIEW_STYLE_DETAILS, /* many columns, single line, col headers visible */
MODEST_HEADER_VIEW_STYLE_TWOLINES, /* two-line headers, col headers invisible */
- MODEST_HEADER_VIEW_STYLE_EMPTY, /* empty view (for empty folders) */
-
MODEST_HEADER_VIEW_STYLE_NUM
} ModestHeaderViewStyle;
/**
+ * modest_header_view_is_empty:
+ * @self: a valid ModestHeaderView instance
+ *
+ * see if this header view is empty; use this function instead of
+ * using the GtkTreeView parent directly, as 'empty' in this case
+ * may mean that there is one "This is empty"-message, and of course
+ * GtkTreeView then thinks it is *not* empty
+ *
+ * Returns: TRUE if the header view is empty, FALSE otherwise
+ */
+gboolean modest_header_view_is_empty (ModestHeaderView *self);
+
+
+
+/**
* modest_header_view_select_next:
* @self: a #ModestHeaderView
*