* switch the focus to the renamed folder... fixes NB#63002
authorDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Tue, 10 Jul 2007 23:59:26 +0000 (23:59 +0000)
committerDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Tue, 10 Jul 2007 23:59:26 +0000 (23:59 +0000)
pmo-trunk-r2687

src/modest-ui-actions.c
src/widgets/modest-folder-view.c

index c25a287..96a8b2d 100644 (file)
@@ -2314,6 +2314,9 @@ modest_ui_actions_on_rename_folder (GtkAction *action,
                                                         mail_op);
 
                        modest_header_view_clear (MODEST_HEADER_VIEW (header_view));
                                                         mail_op);
 
                        modest_header_view_clear (MODEST_HEADER_VIEW (header_view));
+                       
+                       modest_folder_view_select_folder (MODEST_FOLDER_VIEW(folder_view),
+                                                         TNY_FOLDER(folder), TRUE);
 
                        modest_mail_operation_rename_folder (mail_op,
                                                             TNY_FOLDER (folder),
 
                        modest_mail_operation_rename_folder (mail_op,
                                                             TNY_FOLDER (folder),
index e43a3fb..da0d5a8 100644 (file)
@@ -2065,12 +2065,17 @@ find_folder_iter (GtkTreeModel *model, GtkTreeIter *iter, GtkTreeIter *folder_it
                GtkTreeIter child;
                TnyFolderType type = TNY_FOLDER_TYPE_UNKNOWN;
                TnyFolder* a_folder;
                GtkTreeIter child;
                TnyFolderType type = TNY_FOLDER_TYPE_UNKNOWN;
                TnyFolder* a_folder;
+               gchar *name = NULL;
                
                gtk_tree_model_get (model, iter, 
                                    TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, &a_folder,
                
                gtk_tree_model_get (model, iter, 
                                    TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, &a_folder,
+                                   TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, &name,
                                    TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, &type, 
                                    -1);                
        
                                    TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, &type, 
                                    -1);                
        
+               g_debug ("===> %s (%p ---- %p)", name, a_folder, folder);
+               g_free (name);
+
                if (folder == a_folder) {
                        g_object_unref (a_folder);
                        *folder_iter = *iter;
                if (folder == a_folder) {
                        g_object_unref (a_folder);
                        *folder_iter = *iter;
@@ -2094,6 +2099,7 @@ on_row_changed_maybe_select_folder (GtkTreeModel *tree_model, GtkTreePath  *path
                                    ModestFolderView *self)
 {
        ModestFolderViewPrivate *priv = NULL;
                                    ModestFolderView *self)
 {
        ModestFolderViewPrivate *priv = NULL;
+       GtkTreeSelection *sel;
 
        if (!MODEST_IS_FOLDER_VIEW(self))
                return;
 
        if (!MODEST_IS_FOLDER_VIEW(self))
                return;
@@ -2101,12 +2107,18 @@ on_row_changed_maybe_select_folder (GtkTreeModel *tree_model, GtkTreePath  *path
        g_return_if_fail (MODEST_IS_FOLDER_VIEW (self));
        priv = MODEST_FOLDER_VIEW_GET_PRIVATE (self);
        
        g_return_if_fail (MODEST_IS_FOLDER_VIEW (self));
        priv = MODEST_FOLDER_VIEW_GET_PRIVATE (self);
        
+       sel  = gtk_tree_view_get_selection (GTK_TREE_VIEW(self));
+       
        if (priv->folder_to_select) {
        if (priv->folder_to_select) {
-               modest_folder_view_select_folder (self, priv->folder_to_select,
-                                                          FALSE);
+               if (!modest_folder_view_select_folder (self, priv->folder_to_select,
+                                                      FALSE)) {
+                       sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (self));
+                       gtk_tree_selection_select_iter (sel, iter);
+                       g_debug ("could not find changed folder");
+               } 
                g_object_unref (priv->folder_to_select);
                priv->folder_to_select = NULL;
                g_object_unref (priv->folder_to_select);
                priv->folder_to_select = NULL;
-       }
+       } 
 }
 
 
 }
 
 
@@ -2121,7 +2133,7 @@ modest_folder_view_select_folder (ModestFolderView *self, TnyFolder *folder,
        
        g_return_val_if_fail (MODEST_IS_FOLDER_VIEW (self), FALSE);     
        g_return_val_if_fail (TNY_IS_FOLDER (folder), FALSE);   
        
        g_return_val_if_fail (MODEST_IS_FOLDER_VIEW (self), FALSE);     
        g_return_val_if_fail (TNY_IS_FOLDER (folder), FALSE);   
-       
+               
        priv = MODEST_FOLDER_VIEW_GET_PRIVATE (self);
 
        if (after_change) {
        priv = MODEST_FOLDER_VIEW_GET_PRIVATE (self);
 
        if (after_change) {