X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-folder-view.c;h=75866d2be1d22284c3a2756f9432e24fd0806d26;hb=0ca412c0351f777d1fb3e3ff12317a3068b01642;hp=462ad44b1431dcd5b5272243a66231de2648ad88;hpb=5370e43cc7fde694309d3582c65d74465e67b692;p=modest diff --git a/src/widgets/modest-folder-view.c b/src/widgets/modest-folder-view.c index 462ad44..75866d2 100644 --- a/src/widgets/modest-folder-view.c +++ b/src/widgets/modest-folder-view.c @@ -122,10 +122,6 @@ static gboolean filter_row (GtkTreeModel *model, GtkTreeIter *iter, gpointer data); -static gboolean on_key_pressed (GtkWidget *self, - GdkEventKey *event, - gpointer user_data); - static void on_configuration_key_changed (ModestConf* conf, const gchar *key, ModestConfEvent event, @@ -581,6 +577,52 @@ format_compact_style (gchar **item_name, } static void +replace_special_folder_prefix (gchar **item_name) +{ + const gchar *separator; + gchar *prefix; + + if (item_name == NULL || *item_name == NULL || **item_name == '\0') + return; + separator = g_strstr_len (*item_name, -1, MODEST_FOLDER_PATH_SEPARATOR); + if (separator == NULL) + return; + + prefix = g_strndup (*item_name, separator - *item_name); + g_strstrip (prefix); + + if (prefix && *prefix != '\0') { + TnyFolderType folder_type; + gchar *new_name; + gchar *downcase; + + downcase = g_utf8_strdown (prefix, -1); + g_free (prefix); + prefix = downcase; + + if (strcmp (downcase, "inbox") == 0) { + folder_type = TNY_FOLDER_TYPE_INBOX; + new_name = g_strconcat (_("mcen_me_folder_inbox"), separator, NULL); + g_free (*item_name); + *item_name = new_name; + } else { + folder_type = modest_local_folder_info_get_type (prefix); + switch (folder_type) { + case TNY_FOLDER_TYPE_INBOX: + case TNY_FOLDER_TYPE_ARCHIVE: + new_name = g_strconcat (modest_local_folder_info_get_type_display_name (folder_type), separator, NULL); + g_free (*item_name); + *item_name = new_name; + break; + default: + break; + } + } + } + g_free (prefix); +} + +static void text_cell_data (GtkTreeViewColumn *column, GtkCellRenderer *renderer, GtkTreeModel *tree_model, @@ -704,6 +746,8 @@ text_cell_data (GtkTreeViewColumn *column, format_compact_style (&item_name, instance, priv->mailbox, item_weight == 800, multiaccount, &use_markup); + } else { + replace_special_folder_prefix (&item_name); } if (item_name && item_weight) { @@ -820,8 +864,8 @@ messages_cell_data (GtkTreeViewColumn *column, if ((priv->cell_style == MODEST_FOLDER_VIEW_CELL_STYLE_COMPACT) && (number > 0)) { item_name = - g_strdup_printf (ngettext ((drafts) ? "mcen_ti_message" : N_("mcen_va_new_message"), - (drafts) ? "mcen_ti_messages" : N_("mcen_va_new_messages"), + g_strdup_printf (ngettext ((drafts) ? "mcen_ti_message" : "mcen_va_new_message", + (drafts) ? "mcen_ti_messages" : "mcen_va_new_messages", number), number); } } @@ -1215,6 +1259,7 @@ add_columns (GtkWidget *treeview) gtk_tree_view_column_set_fixed_width (column, TRUE); gtk_tree_view_set_headers_clickable (GTK_TREE_VIEW(treeview), FALSE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW(treeview), FALSE); + gtk_tree_view_set_rules_hint ((GtkTreeView *) treeview, TRUE); /* Add column */ gtk_tree_view_append_column (GTK_TREE_VIEW(treeview),column); @@ -1258,11 +1303,6 @@ modest_folder_view_init (ModestFolderView *obj) /* Build treeview */ add_columns (GTK_WIDGET (obj)); - /* Connect signals */ - g_signal_connect (G_OBJECT (obj), - "key-press-event", - G_CALLBACK (on_key_pressed), NULL); - priv->display_name_changed_signal = g_signal_connect (modest_runtime_get_account_mgr (), "display_name_changed", @@ -2070,31 +2110,31 @@ filter_row (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) /* apply special filters */ if (retval && (priv->filter & MODEST_FOLDER_VIEW_FILTER_HIDE_ACCOUNTS)) { if (TNY_IS_ACCOUNT (instance)) - return FALSE; + retval = FALSE; } if (retval && (priv->filter & MODEST_FOLDER_VIEW_FILTER_HIDE_FOLDERS)) { if (TNY_IS_FOLDER (instance)) - return FALSE; + retval = FALSE; } if (retval && (priv->filter & MODEST_FOLDER_VIEW_FILTER_HIDE_LOCAL_FOLDERS)) { if (TNY_IS_ACCOUNT (instance)) { if (modest_tny_account_is_virtual_local_folders (TNY_ACCOUNT (instance))) - return FALSE; + retval = FALSE; } else if (TNY_IS_FOLDER (instance)) { if (modest_tny_folder_is_local_folder (TNY_FOLDER (instance))) - return FALSE; + retval = FALSE; } } if (retval && (priv->filter & MODEST_FOLDER_VIEW_FILTER_HIDE_MCC_FOLDERS)) { if (TNY_IS_ACCOUNT (instance)) { if (modest_tny_account_is_memory_card_account (TNY_ACCOUNT (instance))) - return FALSE; + retval = FALSE; } else if (TNY_IS_FOLDER (instance)) { if (modest_tny_folder_is_memory_card_folder (TNY_FOLDER (instance))) - return FALSE; + retval = FALSE; } } @@ -2102,12 +2142,12 @@ filter_row (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) /* A mailbox is a fake folder with an @ in the middle of the name */ if (!TNY_IS_FOLDER (instance) || !(tny_folder_get_caps (TNY_FOLDER (instance)) & TNY_FOLDER_CAPS_NOSELECT)) { - return FALSE; + retval = FALSE; } else { const gchar *folder_name; folder_name = tny_folder_get_name (TNY_FOLDER (instance)); if (!folder_name || strchr (folder_name, '@') == NULL) - return FALSE; + retval = FALSE; } } @@ -2743,42 +2783,6 @@ cmp_rows (GtkTreeModel *tree_model, GtkTreeIter *iter1, GtkTreeIter *iter2, /* - * This function manages the navigation through the folders using the - * keyboard or the hardware keys in the device - */ -static gboolean -on_key_pressed (GtkWidget *self, - GdkEventKey *event, - gpointer user_data) -{ - GtkTreeSelection *selection; - GtkTreeIter iter; - GtkTreeModel *model; - gboolean retval = FALSE; - - /* Up and Down are automatically managed by the treeview */ - if (event->keyval == GDK_Return) { - /* Expand/Collapse the selected row */ - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self)); - if (gtk_tree_selection_get_selected (selection, &model, &iter)) { - GtkTreePath *path; - - path = gtk_tree_model_get_path (model, &iter); - - if (gtk_tree_view_row_expanded (GTK_TREE_VIEW (self), path)) - gtk_tree_view_collapse_row (GTK_TREE_VIEW (self), path); - else - gtk_tree_view_expand_row (GTK_TREE_VIEW (self), path, FALSE); - gtk_tree_path_free (path); - } - /* No further processing */ - retval = TRUE; - } - - return retval; -} - -/* * We listen to the changes in the local folder account name key, * because we want to show the right name in the view. The local * folder account name corresponds to the device name in the Maemo @@ -3221,7 +3225,7 @@ update_style (ModestFolderView *self) attr_list = pango_attr_list_new (); if (!gtk_style_lookup_color (gtk_widget_get_style (GTK_WIDGET (self)), "SecondaryTextColor", &style_color)) { - gdk_color_parse ("grey", &style_color); + gdk_color_parse (MODEST_SECONDARY_COLOR, &style_color); } attr = pango_attr_foreground_new (style_color.red, style_color.green, style_color.blue); pango_attr_list_insert (attr_list, attr); @@ -3385,7 +3389,9 @@ modest_folder_view_get_activity (ModestFolderView *self) g_return_val_if_fail (MODEST_IS_FOLDER_VIEW (self), FALSE); priv = MODEST_FOLDER_VIEW_GET_PRIVATE (self); - g_return_val_if_fail (get_inner_models (self, NULL, NULL, &inner_model), FALSE); + + if (!get_inner_models (self, NULL, NULL, &inner_model)) + return FALSE; if (TNY_IS_GTK_FOLDER_LIST_STORE (inner_model)) { return tny_gtk_folder_list_store_get_activity (TNY_GTK_FOLDER_LIST_STORE (inner_model));