#include "modest-ui-dimming-rules.h"
#include "modest-dimming-rule.h"
#include "modest-tny-folder.h"
+#include "modest-text-utils.h"
#include <widgets/modest-attachments-view.h>
#include <modest-runtime.h>
#include <tny-simple-list.h>
if (TNY_IS_ACCOUNT (parent_folder)) {
/* If it's the local account then do not dim */
- if (modest_tny_account_is_virtual_local_folders (
- TNY_ACCOUNT (parent_folder)))
- return FALSE;
- else {
+ if (modest_tny_account_is_virtual_local_folders (TNY_ACCOUNT (parent_folder))) {
+ dimmed = FALSE;
+ } else {
const gchar *proto_str = tny_account_get_proto (TNY_ACCOUNT (parent_folder));
/* If it's POP then dim */
dimmed = (modest_protocol_info_get_transport_store_protocol (proto_str) ==
if (!dimmed)
dimmed = _selected_folder_is_any_of_type (win, types, 3);
}
+ g_object_unref (parent_folder);
return dimmed;
}
if (!dimmed) {
dimmed = _selected_folder_is_empty (MODEST_MAIN_WINDOW(win));
if (dimmed)
- modest_dimming_rule_set_notification (rule, _("mcen_ib_nothing_to_del"));
+ modest_dimming_rule_set_notification (rule, _("ckct_ib_nothing_to_delete"));
}
if (!dimmed) {
dimmed = _invalid_msg_selected (MODEST_MAIN_WINDOW(win), FALSE, user_data);
return dimmed;
}
+gboolean
+modest_ui_dimming_rules_on_add_to_contacts (ModestWindow *win, gpointer user_data)
+{
+ ModestDimmingRule *rule = NULL;
+ gboolean dimmed = FALSE;
+
+ g_return_val_if_fail (MODEST_IS_DIMMING_RULE (user_data), FALSE);
+ rule = MODEST_DIMMING_RULE (user_data);
+
+ /* Check dimmed rule */
+ if (!dimmed) {
+ GtkClipboard *clipboard = gtk_clipboard_get (GDK_SELECTION_PRIMARY);
+ gchar *selection = NULL;
+ selection = gtk_clipboard_wait_for_text (clipboard);
+
+ dimmed = !((selection != NULL) && (modest_text_utils_validate_recipient (selection)));
+ }
+
+ return dimmed;
+}
+
/* *********************** static utility functions ******************** */
static gboolean
/* Get selected folder as parent of new folder to create */
parent_folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
- if (!(parent_folder && TNY_IS_FOLDER(parent_folder)))
+ if (!(parent_folder && TNY_IS_FOLDER(parent_folder))) {
+ if (parent_folder)
+ g_object_unref (parent_folder);
return TRUE;
+ }
/* Check dimmed rule */
rules = modest_tny_folder_get_rules (TNY_FOLDER (parent_folder));
if (TNY_IS_ACCOUNT (parent_folder)) {
/* If it's the local account then do not dim */
- if (modest_tny_account_is_virtual_local_folders (
- TNY_ACCOUNT (parent_folder)))
- return FALSE;
- else {
+ if (modest_tny_account_is_virtual_local_folders (TNY_ACCOUNT (parent_folder))) {
+ result = FALSE;
+ } else {
/* If it's the MMC root folder then dim it */
if (!strcmp (tny_account_get_id (TNY_ACCOUNT (parent_folder)), MODEST_MMC_ACCOUNT_ID)) {
result = TRUE;
}
}
}
+ g_object_unref (parent_folder);
return result;
}
/* Get selected folder as parent of new folder to create */
folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
- if (!(folder && TNY_IS_FOLDER(folder)))
+ if (!(folder && TNY_IS_FOLDER(folder))) {
+ if (folder)
+ g_object_unref (folder);
return TRUE;
+ }
/* Check folder type */
result = tny_folder_get_all_count (TNY_FOLDER (folder)) == 0;
/* Get selected folder as parent of new folder to create */
folder = modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
- if (!(folder && TNY_IS_FOLDER(folder)))
+ if (!(folder && TNY_IS_FOLDER(folder))) {
+ if (folder)
+ g_object_unref (folder);
return TRUE;
+ }
/* Check folder type */
result = _folder_is_any_of_type (TNY_FOLDER(folder), types, ntypes);
result = n_selected != 1;
else
- result = n_selected == 1;
+ result = n_selected < 1;
/* Set notifications */
if (!result && rule != NULL) {
{
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 == NULL) || */
-/* (GTK_WIDGET_HAS_FOCUS (folder_view))); */
+ 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));