{
GtkWidget *header_view = NULL;
GtkWidget *folder_view = NULL;
- TnyList *selected_headers = NULL;
+ gboolean selected_headers = FALSE;
gboolean result = FALSE;
g_return_val_if_fail (MODEST_IS_MAIN_WINDOW(win), FALSE);
MODEST_WIDGET_TYPE_FOLDER_VIEW);
/* Get selected headers */
- selected_headers = modest_header_view_get_selected_headers (MODEST_HEADER_VIEW(header_view));
+ selected_headers = modest_header_view_has_selected_headers (MODEST_HEADER_VIEW(header_view));
/* Check dimmed rule (TODO: check focus on widgets */
if (!result) {
- result = ((selected_headers == NULL) ||
+ result = ((!selected_headers) ||
(gtk_widget_is_focus (folder_view)));
if (result)
modest_dimming_rule_set_notification (rule, _("mcen_ib_no_message_selected"));
}
if (!result && unique) {
- result = tny_list_get_length (selected_headers) > 1;
+ result = modest_header_view_count_selected_headers (MODEST_HEADER_VIEW(header_view)) > 1;
if (result)
modest_dimming_rule_set_notification (rule, _("mcen_ib_select_one_message"));
}
- /* free */
- if (selected_headers != NULL)
- g_object_unref (selected_headers);
-
return result;
}
header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win),
MODEST_WIDGET_TYPE_HEADER_VIEW);
+
+ /* Check no selection */
+ if (!modest_header_view_has_selected_headers (MODEST_HEADER_VIEW(header_view)))
+ return FALSE;
+
/* Get selected headers */
selected_headers = modest_header_view_get_selected_headers (MODEST_HEADER_VIEW(header_view));
if (selected_headers == NULL)
header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win),
MODEST_WIDGET_TYPE_HEADER_VIEW);
+ /* Check no selection */
+ if (!modest_header_view_has_selected_headers (MODEST_HEADER_VIEW(header_view)))
+ return TRUE;
+
/* Get selected headers */
selected_headers = modest_header_view_get_selected_headers (MODEST_HEADER_VIEW(header_view));
if (selected_headers == NULL)
header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win),
MODEST_WIDGET_TYPE_HEADER_VIEW);
+ /* Check no selection */
+ if (!modest_header_view_has_selected_headers (MODEST_HEADER_VIEW(header_view)))
+ return TRUE;
+
/* Get selected headers */
selected_headers = modest_header_view_get_selected_headers (MODEST_HEADER_VIEW(header_view));
if (selected_headers == NULL)
header_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win),
MODEST_WIDGET_TYPE_HEADER_VIEW);
+ /* Check no selection */
+ if (!modest_header_view_has_selected_headers (MODEST_HEADER_VIEW(header_view)))
+ return FALSE;
+
/* Get selected headers */
header_list = modest_header_view_get_selected_headers (MODEST_HEADER_VIEW(header_view));
}
+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)
{
ModestHeaderViewStyle modest_header_view_get_style (ModestHeaderView *self);
/**
+ * modest_header_view_count_selected_headers:
+ * @self: a ModestHeaderView instance
+ *
+ * Check selected headers counter.
+ * Returns: the number of selected headers.
+ */
+guint
+modest_header_view_count_selected_headers (ModestHeaderView *self);
+
+/**
+ * modest_header_view_has_selected_headers:
+ * @self: a ModestHeaderView instance
+ *
+ * Check if any row is selected on headers tree view.
+ * Returns: TRUE if any header is selected, FALSE otherwise.
+ */
+gboolean
+modest_header_view_has_selected_headers (ModestHeaderView *self);
+
+/**
* modest_header_view_get_selected_headers:
* @self: a ModestHeaderView instance
*