X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-header-view.c;h=776d15ee95e2c6fdad1323553693c703a43868be;hp=a4b35106a46bd0de5618a9d5fd6599ad316338dc;hb=839a44d74460225883a7f8e9f718c5cae4928ed9;hpb=886e3dc74b551f9d9f0b3e8f2c12f864d0265a77 diff --git a/src/widgets/modest-header-view.c b/src/widgets/modest-header-view.c index a4b3510..776d15e 100644 --- a/src/widgets/modest-header-view.c +++ b/src/widgets/modest-header-view.c @@ -525,8 +525,6 @@ modest_header_view_dispose (GObject *obj) G_OBJECT_CLASS(parent_class)->dispose (obj); } - - static void modest_header_view_finalize (GObject *obj) { @@ -590,6 +588,37 @@ modest_header_view_new (TnyFolder *folder, ModestHeaderViewStyle style) } +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) { @@ -969,7 +998,6 @@ modest_header_view_set_folder (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); } @@ -1099,6 +1127,16 @@ _modest_header_view_change_selection (GtkTreeSelection *selection, 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, @@ -1136,10 +1174,7 @@ cmp_rows (GtkTreeModel *tree_model, GtkTreeIter *iter1, GtkTreeIter *iter2, /* 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;