Changeset 26
- Timestamp:
- 11/01/07 15:01:03
- Files:
-
- trunk/ChangeLog (modified) (1 diff)
- trunk/src/Makefile.am (modified) (1 diff)
- trunk/src/tmut-menu-view.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ChangeLog
r25 r26 4 4 * Implementation of copy&move and delete of folders 5 5 * Further refactoring 6 * Implemented moving folders around 6 7 7 8 2007-10-31 Philip Van Hoof <pvanhoof@gnome.org> trunk/src/Makefile.am
r12 r26 10 10 tmut-folder-view.c \ 11 11 tmut-folder-view.h \ 12 tmut-folder-selector.c \ 13 tmut-folder-selector.h \ 12 14 tmut-msg-view.c \ 13 15 tmut-msg-view.h \ trunk/src/tmut-menu-view.c
r25 r26 20 20 #include "tmut-menu-view.h" 21 21 #include "tmut-folder-view.h" 22 #include "tmut-folder-selector.h" 22 23 #include "tmut-shell-window.h" 23 24 #include "tmut-shell-child.h" … … 33 34 { 34 35 GtkTreeView *folders_treeview; 35 GtkButton *newmsg_button;36 36 GtkComboBox *accounts_combo; 37 37 TMutShellWindow *shell; 38 TnyAccountStore *account_store; 38 39 }; 39 40 … … 59 60 TMutMenuView *self = TMUT_MENU_VIEW (user_data); 60 61 TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (self); 61 gchar *msg = err->message;62 gchar *msg = ""; 62 63 63 64 if (canceled) 64 65 msg = "User canceled the operation"; 66 else if (err) 67 msg = err->message; 68 65 69 if (err || canceled) 66 70 { … … 82 86 } 83 87 88 typedef struct { 89 TnyFolder *from; 90 TMutMenuView *self; 91 gboolean del_originals; 92 } OnMoveSelectedInfo; 93 94 static void 95 on_folder_selected_for_move (GtkWidget *widget, gpointer user_data) 96 { 97 OnMoveSelectedInfo *info = (OnMoveSelectedInfo *) user_data; 98 TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (info->self); 99 TnyFolderStore *into = tmut_folder_selector_get_current (TMUT_FOLDER_SELECTOR (widget)); 100 101 if (into) 102 { 103 if (into != (TnyFolderStore *) info->from) 104 tny_folder_copy_async (info->from, into, 105 tny_folder_get_name (info->from), 106 info->del_originals, on_copy_done, 107 status_update, 108 g_object_ref (info->self)); 109 110 g_object_unref (into); 111 } 112 113 tmut_shell_window_back (priv->shell); 114 115 return; 116 } 117 118 static void 119 on_folder_selected_for_move_destroy (GtkWidget *widget, gpointer user_data) 120 { 121 OnMoveSelectedInfo *info = (OnMoveSelectedInfo *) user_data; 122 123 g_object_unref (info->from); 124 g_object_unref (info->self); 125 g_slice_free (OnMoveSelectedInfo, info); 126 127 return; 128 } 129 84 130 void 85 131 tmut_menu_view_on_folder_move_activated (GObject *sender, TMutMenuView *self) … … 100 146 { 101 147 TnyFolder *folder; 102 TMutFolderView *view; 148 TMutFolderSelector *view; 149 OnMoveSelectedInfo *info; 103 150 104 151 gtk_tree_model_get (model, &iter, … … 109 156 gboolean del_originals = TRUE; 110 157 111 /* Select destination folder */ 112 113 if (into) 114 tny_folder_copy_async (folder, into, 115 tny_folder_get_name (folder), 116 del_originals, on_copy_done, status_update, 117 g_object_ref (self)); 158 info = g_slice_new0 (OnMoveSelectedInfo); 159 info->self = TMUT_MENU_VIEW (g_object_ref (self)); 160 info->from = TNY_FOLDER (g_object_ref (folder)); 161 162 /* TODO: make this choosable */ 163 info->del_originals = TRUE; 164 165 view = tmut_folder_selector_new (); 166 tny_account_store_view_set_account_store (TNY_ACCOUNT_STORE_VIEW (view), priv->account_store); 167 168 g_signal_connect (G_OBJECT (view), "folder-selected", 169 G_CALLBACK (on_folder_selected_for_move), info); 170 g_signal_connect (G_OBJECT (view), "destroy", 171 G_CALLBACK (on_folder_selected_for_move_destroy), info); 172 gtk_widget_show (GTK_WIDGET (view)); 173 174 tmut_shell_window_set_child ( 175 tmut_shell_child_get_window (TMUT_SHELL_CHILD (self)), 176 TMUT_SHELL_CHILD (view), "Select destination"); 118 177 119 178 g_object_unref (folder); … … 369 428 gtk_combo_box_set_active (priv->accounts_combo, 0); 370 429 430 if (priv->account_store) 431 g_object_unref (priv->account_store); 432 priv->account_store = TNY_ACCOUNT_STORE (g_object_ref (account_store)); 433 371 434 return; 372 435 } … … 421 484 GtkTreeViewColumn *column; 422 485 GtkTreeSelection *select; 423 GtkWidget *widget, *sw; 424 486 GtkWidget *sw; 487 488 priv->account_store = NULL; 425 489 priv->accounts_combo = GTK_COMBO_BOX (gtk_combo_box_new ()); 426 490 gtk_widget_show (GTK_WIDGET (priv->accounts_combo)); … … 469 533 TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (object); 470 534 535 if (priv->account_store) 536 g_object_unref (priv->account_store); 537 471 538 (*parent_class->finalize) (object); 472 539
