From b8cdf57676718524a553af4c8c05af078fc13394 Mon Sep 17 00:00:00 2001 From: Javier Fernandez Garcia-Boente Date: Wed, 27 Jun 2007 14:49:37 +0000 Subject: [PATCH] * Connect an insensitive-press signal handler to OK button of new folder dialog. * Add a new dimming rules to check folder depth, only for Context Sensitive Menu of folder view. * Fixes NB#60458, NB#61835 pmo-trunk-r2463 --- src/maemo/modest-main-window-ui-dimming.h | 2 +- src/maemo/modest-platform.c | 15 +++++++++++++++ src/modest-ui-dimming-rules.c | 30 +++++++++++++++++++++++------ src/modest-ui-dimming-rules.h | 1 + 4 files changed, 41 insertions(+), 7 deletions(-) diff --git a/src/maemo/modest-main-window-ui-dimming.h b/src/maemo/modest-main-window-ui-dimming.h index ad662a4..51056a4 100644 --- a/src/maemo/modest-main-window-ui-dimming.h +++ b/src/maemo/modest-main-window-ui-dimming.h @@ -73,7 +73,7 @@ static const ModestDimmingEntry modest_main_window_menu_dimming_entries [] = { { "/HeaderViewCSM/HeaderViewCSMHelp", NULL }, /* Contextual Menus (Folder View) */ - { "/FolderViewCSM/FolderViewCSMNewFolder", G_CALLBACK(modest_ui_dimming_rules_on_new_folder) }, + { "/FolderViewCSM/FolderViewCSMNewFolder", G_CALLBACK(modest_ui_dimming_rules_on_csm_new_folder) }, { "/FolderViewCSM/FolderViewCSMRenameFolder", G_CALLBACK(modest_ui_dimming_rules_on_rename_folder) }, { "/FolderViewCSM/FolderViewCSMPasteMsgs", G_CALLBACK(modest_ui_dimming_rules_on_paste_msgs) }, { "/FolderViewCSM/FolderViewCSMDeleteFolder", G_CALLBACK(modest_ui_dimming_rules_on_delete_folder) }, diff --git a/src/maemo/modest-platform.c b/src/maemo/modest-platform.c index 4482a9a..28cba13 100644 --- a/src/maemo/modest-platform.c +++ b/src/maemo/modest-platform.c @@ -54,6 +54,8 @@ #define URI_ACTION_COPY "copy:" static osso_context_t *osso_context = NULL; + +static void folder_name_insensitive_press (GtkWidget *widget, ModestWindow *window); static void on_modest_conf_update_interval_changed (ModestConf* self, const gchar *key, @@ -742,7 +744,9 @@ modest_platform_run_folder_name_dialog (GtkWindow *parent_window, const gchar *suggested_name, gchar **folder_name) { + GtkWidget *accept_btn = NULL; GtkWidget *dialog, *entry, *label, *hbox; + GList *buttons = NULL; gint result; /* Ask the user for the folder name */ @@ -755,6 +759,11 @@ modest_platform_run_folder_name_dialog (GtkWindow *parent_window, GTK_RESPONSE_REJECT, NULL); + /* Add accept button (with unsensitive handler) */ + buttons = gtk_container_get_children (GTK_CONTAINER (GTK_DIALOG (dialog)->action_area)); + accept_btn = GTK_WIDGET (buttons->next->data); + g_signal_connect (G_OBJECT (accept_btn), "insensitive-press", G_CALLBACK (folder_name_insensitive_press), parent_window); + /* Create label and entry */ label = gtk_label_new (label_text); /* TODO: check that the suggested name does not exist */ @@ -798,6 +807,12 @@ modest_platform_run_folder_name_dialog (GtkWindow *parent_window, return result; } +static void +folder_name_insensitive_press (GtkWidget *widget, ModestWindow *window) +{ + hildon_banner_show_information (NULL, NULL, _("(empty)")); +} + gint modest_platform_run_new_folder_dialog (GtkWindow *parent_window, TnyFolderStore *parent_folder, diff --git a/src/modest-ui-dimming-rules.c b/src/modest-ui-dimming-rules.c index bf20d71..7d6dbf5 100644 --- a/src/modest-ui-dimming-rules.c +++ b/src/modest-ui-dimming-rules.c @@ -86,6 +86,29 @@ modest_ui_dimming_rules_on_new_msg (ModestWindow *win, gpointer user_data) } gboolean +modest_ui_dimming_rules_on_csm_new_folder (ModestWindow *win, gpointer user_data) +{ + ModestDimmingRule *rule = NULL; + gboolean dimmed = FALSE; + + g_return_val_if_fail (MODEST_IS_MAIN_WINDOW(win), FALSE); + g_return_val_if_fail (MODEST_IS_DIMMING_RULE (user_data), FALSE); + rule = MODEST_DIMMING_RULE (user_data); + + /* Check common new folder menu item dimming rules */ + dimmed = modest_ui_dimming_rules_on_new_folder (win, user_data); + + /* Check CSM specific dimming rules */ + if (!dimmed) { + dimmed = _selected_folder_is_snd_level (MODEST_MAIN_WINDOW(win)); + if (dimmed) + modest_dimming_rule_set_notification (rule, _("mail_in_ui_folder_create_error")); + } + + return dimmed; +} + +gboolean modest_ui_dimming_rules_on_new_folder (ModestWindow *win, gpointer user_data) { ModestDimmingRule *rule = NULL; @@ -127,11 +150,6 @@ modest_ui_dimming_rules_on_new_folder (ModestWindow *win, gpointer user_data) /* Apply folder rules */ if (!dimmed) { - dimmed = _selected_folder_is_snd_level (MODEST_MAIN_WINDOW(win)); - if (dimmed) - modest_dimming_rule_set_notification (rule, _("mail_in_ui_folder_create_error")); - } - if (!dimmed) { dimmed = _selected_folder_not_writeable (MODEST_MAIN_WINDOW(win)); if (dimmed) modest_dimming_rule_set_notification (rule, _("mail_in_ui_folder_create_error")); @@ -1209,7 +1227,7 @@ _selected_folder_is_snd_level (ModestMainWindow *win) if (!gtk_tree_selection_get_selected (sel, &model, &iter)) goto frees; path = gtk_tree_model_get_path (model, &iter); - result = gtk_tree_path_get_depth (path) > 1; + result = gtk_tree_path_get_depth (path) > 2; frees: if (folder != NULL) diff --git a/src/modest-ui-dimming-rules.h b/src/modest-ui-dimming-rules.h index 6e29376..d22c65f 100644 --- a/src/modest-ui-dimming-rules.h +++ b/src/modest-ui-dimming-rules.h @@ -39,6 +39,7 @@ G_BEGIN_DECLS /* Menu & toolbar dimming rules */ gboolean modest_ui_dimming_rules_on_new_msg (ModestWindow *win, gpointer user_data); gboolean modest_ui_dimming_rules_on_new_folder (ModestWindow *win, gpointer user_data); +gboolean modest_ui_dimming_rules_on_csm_new_folder (ModestWindow *win, gpointer user_data); gboolean modest_ui_dimming_rules_on_delete_folder (ModestWindow *win, gpointer user_data); gboolean modest_ui_dimming_rules_on_rename_folder (ModestWindow *win, gpointer user_data); gboolean modest_ui_dimming_rules_on_sort (ModestWindow *win, gpointer user_data); -- 1.7.9.5