/* Check dimmed rule */
if (!dimmed) {
dimmed = _selected_folder_is_root (MODEST_MAIN_WINDOW(win));
- modest_dimming_rule_set_notification (rule, NULL);
+ modest_dimming_rule_set_notification (rule, _CS("ckdg_ib_nothing_to_sort"));
+ }
+
+ if (!dimmed) {
+ dimmed = _selected_folder_is_empty (MODEST_MAIN_WINDOW(win));
+ modest_dimming_rule_set_notification (rule, _CS("ckdg_ib_nothing_to_sort"));
}
return dimmed;
modest_ui_dimming_rules_on_rename_folder (ModestWindow *win, gpointer user_data)
{
ModestDimmingRule *rule = NULL;
- TnyFolderType types[3];
+ TnyFolderType types[4];
gboolean dimmed = FALSE;
g_return_val_if_fail (MODEST_IS_MAIN_WINDOW(win), FALSE);
types[0] = TNY_FOLDER_TYPE_DRAFTS;
types[1] = TNY_FOLDER_TYPE_OUTBOX;
types[2] = TNY_FOLDER_TYPE_SENT;
+ types[3] = TNY_FOLDER_TYPE_ARCHIVE;
/* Check dimmed rule */
if (!dimmed) {
modest_dimming_rule_set_notification (rule, "");
}
if (!dimmed) {
- dimmed = _selected_folder_is_any_of_type (win, types, 3);
+ dimmed = _selected_folder_is_any_of_type (win, types, 4);
if (dimmed)
modest_dimming_rule_set_notification (rule, "");
}
if (!dimmed) {
dimmed = _selected_msg_sent_in_progress (win);
if (dimmed)
- modest_dimming_rule_set_notification (rule, _("ckct_ib_unable_to_delete"));
+ modest_dimming_rule_set_notification (rule, _CS("ckct_ib_unable_to_delete"));
}
}
else if (MODEST_IS_MSG_VIEW_WINDOW (win)) {
if (!dimmed) {
dimmed = !modest_msg_view_window_has_headers_model (MODEST_MSG_VIEW_WINDOW(win));
if (dimmed) {
- modest_dimming_rule_set_notification (rule, _("ckct_ib_unable_to_delete"));
+ modest_dimming_rule_set_notification (rule, _CS("ckct_ib_unable_to_delete"));
}
}
}
g_return_val_if_fail (MODEST_IS_MAIN_WINDOW(win), FALSE);
+ /* All accounts are root items: */
+ GtkWidget *folder_view = modest_main_window_get_child_widget (MODEST_MAIN_WINDOW(win),
+ MODEST_WIDGET_TYPE_FOLDER_VIEW);
+ if (folder_view) {
+ gboolean is_account = FALSE;
+ TnyFolderStore *folder_store =
+ modest_folder_view_get_selected (MODEST_FOLDER_VIEW(folder_view));
+ if (folder_store) {
+ is_account = TNY_IS_ACCOUNT (folder_store);
+ g_object_unref (folder_store);
+ folder_store = NULL;
+ }
+
+ if (is_account)
+ return TRUE;
+ }
+
+ /* Try something more precise: */
types[0] = TNY_FOLDER_TYPE_ROOT;
/* Check folder type */
guint i=0;
gboolean result = FALSE;
- /*Get curent folder */
+ /*Get current folder */
if (MODEST_IS_MAIN_WINDOW(win)) {
/* Get folder view */
g_return_val_if_fail (TNY_IS_FOLDER(folder), FALSE);
/* Get folder type */
- if (modest_tny_folder_is_local_folder (folder))
- folder_type = modest_tny_folder_get_local_folder_type (folder);
- else
- folder_type = modest_tny_folder_guess_folder_type (folder);
-
+ folder_type = modest_tny_folder_guess_folder_type (folder);
+
/* Check foler type */
for (i=0; i < ntypes; i++) {
result = result || folder_type == types[i];
found = FALSE;
while (!tny_iterator_is_done (iter)) {
header = TNY_HEADER (tny_iterator_get_current (iter));
- found = modest_window_mgr_find_registered_header (mgr,header, NULL);
+ if (header) {
+ found = modest_window_mgr_find_registered_header (mgr,header, NULL);
- g_object_unref (header);
+ g_object_unref (header);
+ }
+
tny_iterator_next (iter);
if (found)
TnyList *selected_headers = NULL;
TnyIterator *iter = NULL;
TnyHeader *header = NULL;
- TnyHeaderFlags flags;
+ TnyHeaderFlags flags = 0;
gboolean result = FALSE;
if (MODEST_IS_MAIN_WINDOW (win))
iter = tny_list_create_iterator (selected_headers);
while (!tny_iterator_is_done (iter) && !result) {
header = TNY_HEADER (tny_iterator_get_current (iter));
+ if (header) {
+ flags = tny_header_get_flags (header);
+ if (opposite)
+ result = (flags & mask) == 0;
+ else
+ result = (flags & mask) != 0;
- flags = tny_header_get_flags (header);
- if (opposite)
- result = (flags & mask) == 0;
- else
- result = (flags & mask) != 0;
+ g_object_unref (header);
+ }
- g_object_unref (header);
tny_iterator_next (iter);
}
TnyList *selected_headers = NULL;
TnyIterator *iter = NULL;
TnyHeader *header = NULL;
- TnyHeaderFlags flags;
+ TnyHeaderFlags flags = 0;
gboolean result = FALSE;
g_return_val_if_fail (MODEST_IS_MAIN_WINDOW (win), FALSE);
iter = tny_list_create_iterator (selected_headers);
while (!tny_iterator_is_done (iter) && result) {
header = TNY_HEADER (tny_iterator_get_current (iter));
-
- flags = tny_header_get_flags (header);
- /* TODO: is this the right flag?, it seems that some
- headers that have been previously downloaded do not
- come with it */
- result = (flags & TNY_HEADER_FLAG_CACHED);
+ if (header) {
+ flags = tny_header_get_flags (header);
+ /* TODO: is this the right flag?, it seems that some
+ headers that have been previously downloaded do not
+ come with it */
+ result = (flags & TNY_HEADER_FLAG_CACHED);
+
+ g_object_unref (header);
+ }
- g_object_unref (header);
tny_iterator_next (iter);
}
if (!header_list) return FALSE;
iter = tny_list_create_iterator (header_list);
header = TNY_HEADER (tny_iterator_get_current (iter));
-
- /* Get message id */
- id = g_strdup(tny_header_get_message_id (header));
+ if (header) {
+ /* Get message id */
+ id = g_strdup(tny_header_get_message_id (header));
+ g_object_unref (header);
+ }
} else if (MODEST_IS_MSG_VIEW_WINDOW(win)) {
/* Get message header */
header = modest_msg_view_window_get_header (MODEST_MSG_VIEW_WINDOW(win));
+ if (header) {
+ /* Get message id */
+ id = g_strdup(tny_header_get_message_id (header));
- /* Get message id */
- id = g_strdup(tny_header_get_message_id (header));
+ g_object_unref (header);
+ }
}
/* Check if msg id is being processed inside send queue */
/* Free */
g_free(id);
- g_object_unref (header);
g_object_unref(header_list);
g_object_unref(iter);