G_OBJECT_CLASS(parent_class)->dispose (obj);
}
-
-
static void
modest_header_view_finalize (GObject *obj)
{
}
+guint
+modest_header_view_count_selected_headers (ModestHeaderView *self)
+{
+ GtkTreeSelection *sel;
+ guint selected_rows;
+
+ g_return_val_if_fail (self, 0);
+
+ /* Get selection object and check selected rows count */
+ sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
+ selected_rows = gtk_tree_selection_count_selected_rows (sel);
+
+ return selected_rows;
+}
+
+gboolean
+modest_header_view_has_selected_headers (ModestHeaderView *self)
+{
+ GtkTreeSelection *sel;
+ gboolean empty;
+
+ g_return_val_if_fail (self, FALSE);
+
+ /* Get selection object and check selected rows count */
+ sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
+ empty = gtk_tree_selection_count_selected_rows (sel) == 0;
+
+ return !empty;
+}
+
+
TnyList *
modest_header_view_get_selected_headers (ModestHeaderView *self)
{
g_mutex_lock (priv->observers_lock);
tny_folder_remove_observer (priv->folder, TNY_FOLDER_OBSERVER (self));
g_object_unref (priv->folder);
-/* g_print ("---------- REMAINING %d\n", ((GObject*)priv->folder)->ref_count); */
priv->folder = NULL;
g_mutex_unlock (priv->observers_lock);
}
on_selection_changed (selection, user_data);
}
+static gint compare_priorities (TnyHeaderFlags p1, TnyHeaderFlags p2)
+{
+ p1 = p1 & TNY_HEADER_FLAG_PRIORITY;
+ p2 = p2 & TNY_HEADER_FLAG_PRIORITY;
+ if (p1 == 0)
+ p1 = TNY_HEADER_FLAG_LOW_PRIORITY + 1;
+ if (p2 == 0)
+ p2 = TNY_HEADER_FLAG_LOW_PRIORITY + 1;
+ return p1 - p2;
+}
static gint
cmp_rows (GtkTreeModel *tree_model, GtkTreeIter *iter1, GtkTreeIter *iter2,
g_return_val_if_fail (GTK_IS_TREE_VIEW_COLUMN(user_data), 0);
/* col_id = gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (tree_model)); */
col_id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data), MODEST_HEADER_VIEW_FLAG_SORT));
+
-/* if (!(++counter % 100)) { */
-/* GObject *header_view = g_object_get_data(G_OBJECT(user_data), */
-/* MODEST_HEADER_VIEW_PTR); */
-/* g_signal_emit (header_view, */
-/* signals[STATUS_UPDATE_SIGNAL], */
-/* 0, _("Sorting..."), 0, 0); */
-/* } */
switch (col_id) {
case TNY_HEADER_FLAG_ATTACHMENTS:
/* This is for making priority values respect the intuitive sort relationship
* as HIGH is 11, LOW is 01, and we put NORMAL AS 10 (2) */
- if (val1 == 0) val1 = 2;
- if (val2 == 0) val2 = 2;
-
- cmp = (val1 & TNY_HEADER_FLAG_PRIORITY) - (val2 & TNY_HEADER_FLAG_PRIORITY);
+ cmp = compare_priorities (val1, val2);
return cmp ? cmp : t1 - t2;