* Added MMC icon name
authorSergio Villar Senin <svillar@igalia.com>
Wed, 18 Apr 2007 17:58:27 +0000 (17:58 +0000)
committerSergio Villar Senin <svillar@igalia.com>
Wed, 18 Apr 2007 17:58:27 +0000 (17:58 +0000)
* Added proper window title visualization of current folder
* Added MMC and device icons to the folder view
* Added MMC and device names to the folder view

pmo-trunk-r1591

src/maemo/modest-icon-names.h
src/maemo/modest-maemo-utils.c
src/modest-ui-actions.c
src/widgets/modest-folder-view.c
src/widgets/modest-folder-view.h

index f98205e..eb059b6 100644 (file)
@@ -68,6 +68,7 @@
 #define MODEST_FOLDER_ICON_DRAFTS              "qgn_list_messagin_drafts"
 #define MODEST_FOLDER_ICON_NORMAL              "qgn_list_gene_fldr_cls"
 #define MODEST_FOLDER_ICON_LOCAL_FOLDERS       "qgn_list_shell_mydevice"
+#define MODEST_FOLDER_ICON_MMC                  "qgn_list_gene_mmc"
 
 
 /* toolbar */
index 98e1d68..5b7e477 100644 (file)
@@ -100,8 +100,7 @@ update_device_name_from_msg (DBusMessage *message)
                modest_conf_set_string (modest_runtime_get_conf(),
                                        MODEST_CONF_DEVICE_NAME,
                                        MODEST_LOCAL_FOLDERS_DEFAULT_DISPLAY_NAME,
-                                       NULL);
-                                       
+                                       NULL);                                  
        } else {
                const gchar *device_name;
                if (!dbus_message_iter_init (message, &iter)) {
index cb5cd85..ceb90be 100644 (file)
@@ -877,7 +877,6 @@ modest_ui_actions_on_folder_selection_changed (ModestFolderView *folder_view,
                                               gboolean selected,
                                               ModestMainWindow *main_window)
 {
-       gchar *txt;
        ModestConf *conf;
        GtkWidget *header_view;
        
@@ -896,19 +895,21 @@ modest_ui_actions_on_folder_selection_changed (ModestFolderView *folder_view,
                modest_header_view_set_folder (MODEST_HEADER_VIEW(header_view), NULL);
        } else {  /* the folder was selected */
                if (folder) { /* folder may be NULL */
-                       guint num, unread;
+                       guint unread;
 
-                       num    = tny_folder_get_all_count    (folder);
+                       /* Change main window title */                  
                        unread = tny_folder_get_unread_count (folder);
 
-                       /* Change main window title */                  
-                       gtk_window_set_title (GTK_WINDOW(main_window), 
-                                             tny_folder_get_name (folder));
-                       
-                       txt = g_strdup_printf (_("%d %s, %d unread"),
-                                              num, num==1 ? _("item") : _("items"), unread);           
-                       //gtk_label_set_label (GTK_LABEL(folder_info_label), txt);
-                       g_free (txt);
+                       if (unread == 0) {
+                               gtk_window_set_title (GTK_WINDOW(main_window), 
+                                                     tny_folder_get_name (folder));
+                       } else {
+                               gchar *txt = g_strdup_printf (_("%s (%d)"),
+                                                             tny_folder_get_name (folder),
+                                                             unread);
+                               gtk_window_set_title (GTK_WINDOW(main_window), txt);
+                               g_free (txt);
+                       }
                } else {
                        gtk_window_set_title (GTK_WINDOW(main_window), NULL);
                }
index 7a326f3..9816cb0 100644 (file)
@@ -214,7 +214,7 @@ text_cell_data  (GtkTreeViewColumn *column,  GtkCellRenderer *renderer,
        gchar *fname = NULL;
        gint unread;
        TnyFolderType type;
-       TnyFolder *folder = NULL;
+       GObject *instance = NULL;
        
        g_return_if_fail (column);
        g_return_if_fail (tree_model);
@@ -223,22 +223,22 @@ text_cell_data  (GtkTreeViewColumn *column,  GtkCellRenderer *renderer,
                            TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, &fname,
                            TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN, &unread,
                            TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, &type,
-                           TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, &folder,
+                           TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, &instance,
                            -1);
        rendobj = G_OBJECT(renderer);
  
        if (!fname)
                return;
 
-       if (!folder) {
+       if (!instance) {
                g_free (fname);
                return;
        }
        
        if (type != TNY_FOLDER_TYPE_ROOT) {
-               if (modest_tny_folder_is_local_folder (folder)) {
+               if (modest_tny_folder_is_local_folder (TNY_FOLDER (instance))) {
                        TnyFolderType type;
-                       type = modest_tny_folder_get_local_folder_type (folder);
+                       type = modest_tny_folder_get_local_folder_type (TNY_FOLDER (instance));
                        if (type != TNY_FOLDER_TYPE_UNKNOWN) {
                                g_free (fname);
                                fname = g_strdup(modest_local_folder_info_get_type_display_name (type));
@@ -255,22 +255,27 @@ text_cell_data  (GtkTreeViewColumn *column,  GtkCellRenderer *renderer,
 
        } else {
                ModestFolderViewPrivate *priv;
-               const gchar *account_name;
+               const gchar *account_name, *account_id;
        
                priv =  MODEST_FOLDER_VIEW_GET_PRIVATE (data);
 
+               /* If it's a server account */
+               account_id = tny_account_get_id (TNY_ACCOUNT (instance));
+               if (!strcmp (account_id, MODEST_LOCAL_FOLDERS_ACCOUNT_ID)) {
+                       account_name = priv->local_account_name;
+               } else {
+                       if (!strcmp (account_id, MODEST_MMC_ACCOUNT_ID)) {
+                               /* TODO: get MMC card name */
+                       } else {
+                               account_name = fname;
+                       }
+               }
+
                /* Use bold font style */
-               account_name = priv->local_account_name;
                g_object_set (rendobj,"text", account_name, "weight", 800, NULL);
-/*             if (modest_tny_folder_is_local_folder (folder)) { */
-/*             } else { */
-/*                     if () { */
-/*                     } else { */
-/*                     } */
-/*             } */
        }
        
-       g_object_unref (G_OBJECT (folder));
+       g_object_unref (G_OBJECT (instance));
        g_free (fname);
 }
 
@@ -280,10 +285,11 @@ static void
 icon_cell_data  (GtkTreeViewColumn *column,  GtkCellRenderer *renderer,
                 GtkTreeModel *tree_model,  GtkTreeIter *iter, gpointer data)
 {
-       GObject *rendobj;
+       GObject *rendobj, *instance;
        GdkPixbuf *pixbuf;
        TnyFolderType type;
        gchar *fname = NULL;
+       const gchar *account_id = NULL;
        gint unread;
        
        rendobj = G_OBJECT(renderer);
@@ -291,17 +297,32 @@ icon_cell_data  (GtkTreeViewColumn *column,  GtkCellRenderer *renderer,
                            TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, &type,
                            TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, &fname,
                            TNY_GTK_FOLDER_STORE_TREE_MODEL_UNREAD_COLUMN, &unread, 
+                           TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, &instance,
                            -1);
-       rendobj = G_OBJECT(renderer);
+
+       if (!fname)
+               return;
+
+       if (!instance) {
+               g_free (fname);
+               return;
+       }
        
        if (type == TNY_FOLDER_TYPE_NORMAL || type == TNY_FOLDER_TYPE_UNKNOWN) {
                type = modest_tny_folder_guess_folder_type_from_name (fname);
        }
-       g_free (fname);
 
        switch (type) {
        case TNY_FOLDER_TYPE_ROOT:
-               pixbuf = modest_platform_get_icon (MODEST_FOLDER_ICON_ACCOUNT);
+               account_id = tny_account_get_id (TNY_ACCOUNT (instance));
+               if (!strcmp (account_id, MODEST_LOCAL_FOLDERS_ACCOUNT_ID)) {
+                       pixbuf = modest_platform_get_icon (MODEST_FOLDER_ICON_LOCAL_FOLDERS);
+               } else {
+                       if (!strcmp (account_id, MODEST_MMC_ACCOUNT_ID))
+                               pixbuf = modest_platform_get_icon (MODEST_FOLDER_ICON_MMC);
+                       else
+                               pixbuf = modest_platform_get_icon (MODEST_FOLDER_ICON_ACCOUNT);
+               }
                 break;
        case TNY_FOLDER_TYPE_INBOX:
                 pixbuf = modest_platform_get_icon (MODEST_FOLDER_ICON_INBOX);
@@ -326,6 +347,10 @@ icon_cell_data  (GtkTreeViewColumn *column,  GtkCellRenderer *renderer,
                 pixbuf = modest_platform_get_icon (MODEST_FOLDER_ICON_NORMAL);
                break;
         }
+       g_object_unref (G_OBJECT (instance));
+       g_free (fname);
+
+       /* Set pixbuf */
        g_object_set (rendobj, "pixbuf", pixbuf, NULL);
 }
 
index cd877cc..9650b28 100644 (file)
@@ -118,6 +118,21 @@ TnyFolder*    modest_folder_view_get_selected    (ModestFolderView *self);
 gboolean      modest_folder_view_update_model    (ModestFolderView *self,
                                                  TnyAccountStore *account_store);
 
+/**
+ * modest_folder_view_get_selected_display_name:
+ * @self: a #ModestFolderView
+ * 
+ * returns a the display name of the currently selected
+ * #TnyFolder. Note that it could be different to the name returned by
+ * the #TnyFolder that could be get using
+ * modest_folder_view_get_selected, because it for example could
+ * contain the unread messages between brackets
+ * 
+ * Returns: the display name of the currently selected #TnyFolder or
+ * NULL if none is selected
+ **/
+const gchar* modest_folder_view_get_selected_display_name (ModestFolderView *self);
+
 G_END_DECLS
 
 #endif /* __MODEST_FOLDER_VIEW_H__ */