Changeset 41
- Timestamp:
- 11/05/07 12:00:01
- Files:
-
- trunk/ChangeLog (modified) (1 diff)
- trunk/src/tmut-menu-view.c (modified) (10 diffs)
- trunk/src/tmut-menu-view.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ChangeLog
r40 r41 5 5 tmut_msg_creator_set_forward_msg 6 6 * Implemented From-combobox in TMutMsgCreator 7 * Copy, Move and Rename folder implementations 7 8 8 9 2007-11-02 Philip Van Hoof <pvanhoof@gnome.org> trunk/src/tmut-menu-view.c
r40 r41 89 89 return; 90 90 } 91 typedef enum { 92 DO_COPY, 93 DO_MOVE 94 } MoveCopyOption; 91 95 92 96 typedef struct { … … 132 136 } 133 137 138 134 139 void 135 tmut_menu_view_on_folder_move_activated (GObject *sender, TMutMenuView *self)140 folder_mover_helper (GObject *sender, TMutMenuView *self, MoveCopyOption option) 136 141 { 137 142 TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (self); … … 163 168 info->from = TNY_FOLDER (g_object_ref (folder)); 164 169 165 /* TODO: make this choosable */166 info->del_originals = TRUE;170 if (option == DO_MOVE) 171 info->del_originals = TRUE; 167 172 168 173 view = tmut_folder_selector_new (); 169 174 tny_account_store_view_set_account_store (TNY_ACCOUNT_STORE_VIEW (view), priv->account_store); 170 171 175 g_signal_connect (G_OBJECT (view), "folder-selected", 172 176 G_CALLBACK (on_folder_selected_for_move), info); … … 174 178 G_CALLBACK (on_folder_selected_for_move_destroy), info); 175 179 gtk_widget_show (GTK_WIDGET (view)); 176 177 180 tmut_shell_window_set_child ( 178 181 tmut_shell_child_get_window (TMUT_SHELL_CHILD (self)), … … 186 189 return; 187 190 } 191 192 193 void 194 tmut_menu_view_on_folder_copy_activated (GObject *sender, TMutMenuView *self) 195 { 196 folder_mover_helper (sender, self, DO_COPY); 197 return; 198 } 199 200 void 201 tmut_menu_view_on_folder_move_activated (GObject *sender, TMutMenuView *self) 202 { 203 folder_mover_helper (sender, self, DO_MOVE); 204 return; 205 } 206 207 208 void 209 tmut_menu_view_on_folder_rename_activated (GObject *sender, TMutMenuView *self) 210 { 211 TMutMenuViewPriv *priv = TMUT_MENU_VIEW_GET_PRIVATE (self); 212 GtkTreeSelection *selection = gtk_tree_view_get_selection (priv->folders_treeview); 213 GtkTreeModel *model; 214 GtkTreeIter iter; 215 216 if (gtk_tree_selection_get_selected (selection, &model, &iter)) 217 { 218 gint type; 219 gtk_tree_model_get (model, &iter, 220 TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, 221 &type, -1); 222 223 if (type != TNY_FOLDER_TYPE_ROOT) 224 { 225 TnyFolder *folder; 226 227 gtk_tree_model_get (model, &iter, 228 TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, 229 &folder, -1); 230 231 if (folder) 232 { 233 GtkWidget *dialog, *entry; 234 gint result; 235 236 dialog = gtk_dialog_new_with_buttons (_("Rename folder"), 237 GTK_WINDOW (priv->shell), 238 GTK_DIALOG_MODAL, 239 GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, 240 GTK_STOCK_CANCEL,GTK_RESPONSE_REJECT, 241 NULL); 242 243 entry = gtk_entry_new (); 244 gtk_entry_set_text (GTK_ENTRY (entry), tny_folder_get_name (folder)); 245 gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), entry); 246 gtk_widget_show (entry); 247 248 if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) 249 { 250 const gchar *newname = gtk_entry_get_text (GTK_ENTRY (entry)); 251 252 tny_folder_copy_async (folder, tny_folder_get_folder_store (folder), 253 newname, TRUE, on_copy_done, 254 status_update, g_object_ref (self)); 255 } 256 257 if (dialog) 258 gtk_widget_destroy (dialog); 259 260 g_object_unref (folder); 261 } 262 } 263 } 264 265 return;} 188 266 189 267 void … … 348 426 GtkMenu *menu; 349 427 GtkWidget *fcreate_menuitem, *fmove_menuitem, *fdel_menuitem, 350 *nmsg_menuitem ;428 *nmsg_menuitem, *fcopy_menuitem, *frename_menuitem; 351 429 GtkButton *menu_button; 352 430 … … 354 432 menu = GTK_MENU (gtk_menu_new ()); 355 433 fcreate_menuitem = gtk_menu_item_new_with_label (_("Create new folder")); 356 fmove_menuitem = gtk_menu_item_new_with_label (_("Copy or move a folder")); 434 fmove_menuitem = gtk_menu_item_new_with_label (_("Move a folder")); 435 fcopy_menuitem = gtk_menu_item_new_with_label (_("Copy a folder")); 436 frename_menuitem = gtk_menu_item_new_with_label (_("Rename a folder")); 357 437 fdel_menuitem = gtk_menu_item_new_with_label (_("Delete a folder")); 358 438 nmsg_menuitem = gtk_menu_item_new_with_label (_("New message")); … … 360 440 gtk_widget_show (fcreate_menuitem); 361 441 gtk_widget_show (fmove_menuitem); 442 gtk_widget_show (fcopy_menuitem); 443 gtk_widget_show (frename_menuitem); 362 444 gtk_widget_show (fdel_menuitem); 363 445 gtk_widget_show (GTK_WIDGET (menu)); … … 365 447 gtk_menu_prepend (menu, nmsg_menuitem); 366 448 gtk_menu_prepend (menu, fcreate_menuitem); 449 gtk_menu_prepend (menu, fcopy_menuitem); 367 450 gtk_menu_prepend (menu, fmove_menuitem); 451 gtk_menu_prepend (menu, frename_menuitem); 368 452 gtk_menu_prepend (menu, fdel_menuitem); 369 453 gtk_menu_attach_to_widget (menu, GTK_WIDGET (menu_button), NULL); … … 378 462 g_signal_connect (G_OBJECT (fmove_menuitem), "activate", 379 463 G_CALLBACK (tmut_menu_view_on_folder_move_activated), self); 464 g_signal_connect (G_OBJECT (fcopy_menuitem), "activate", 465 G_CALLBACK (tmut_menu_view_on_folder_copy_activated), self); 466 g_signal_connect (G_OBJECT (frename_menuitem), "activate", 467 G_CALLBACK (tmut_menu_view_on_folder_rename_activated), self); 380 468 g_signal_connect (G_OBJECT (fdel_menuitem), "activate", 381 469 G_CALLBACK (tmut_menu_view_on_folder_delete_activated), self); trunk/src/tmut-menu-view.h
r21 r41 66 66 67 67 /* Preimplemented handlers for your action performers */ 68 void tmut_menu_view_on_folder_rename_activated (GObject *sender, TMutMenuView *self); 68 69 void tmut_menu_view_on_folder_move_activated (GObject *sender, TMutMenuView *self); 70 void tmut_menu_view_on_folder_copy_activated (GObject *sender, TMutMenuView *self); 69 71 void tmut_menu_view_on_folder_create_activated (GObject *sender, TMutMenuView *self); 70 72 void tmut_menu_view_on_folder_delete_activated (GObject *sender, TMutMenuView *self);
