Enlightenment CVS committal Author : lordchaos Project : e17 Module : proto
Dir : e17/proto/entropy/src/dialogs Modified Files: ewl_rename_dialog.c Log Message: * Work on rename =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/entropy/src/dialogs/ewl_rename_dialog.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- ewl_rename_dialog.c 16 Jan 2006 11:22:31 -0000 1.1 +++ ewl_rename_dialog.c 18 Jan 2006 06:27:31 -0000 1.2 @@ -2,12 +2,40 @@ #include "entropy.h" #include "entropy_gui.h" #include <limits.h> +#include <dlfcn.h> + +Ewl_Widget* rename_text_widget; + +void ewl_rename_dialog_rename_cb(Ewl_Widget* w, void* ev_data, void* user_data) +{ + Ewl_Widget* window = ewl_widget_data_get(w, "window"); + entropy_file_gui_component* comp = user_data; + void (*rename_func)(entropy_generic_file* source, entropy_generic_file* dest); + entropy_plugin* plugin; + char* new_name = ewl_text_text_get(EWL_TEXT(rename_text_widget)); + entropy_generic_file* dest = entropy_generic_file_clone(comp->file); + + strncpy(dest->filename, new_name, strlen(new_name)+1); + + printf("Renaming '%s/%s' to '%s/%s'...\n", comp->file->path, comp->file->filename, dest->path, dest->filename); + + plugin = entropy_plugins_type_get_first( ENTROPY_PLUGIN_BACKEND_FILE ,ENTROPY_PLUGIN_SUB_TYPE_ALL); + rename_func = dlsym(plugin->dl_ref, "entropy_filesystem_file_rename"); + (*rename_func)(comp->file, dest); + + + entropy_generic_file_destroy(dest); + entropy_file_gui_component_destroy(comp); + ewl_widget_destroy(window); +} + void ewl_rename_dialog_cancel_cb(Ewl_Widget* w, void* ev_data, void* user_data) { Ewl_Widget* window = ewl_widget_data_get(w, "window"); entropy_file_gui_component* comp = user_data; + entropy_core_file_cache_remove_reference(comp->file->md5); entropy_file_gui_component_destroy(comp); ewl_widget_destroy(window); } @@ -18,25 +46,28 @@ if (component_file && component_file->file) { char buf[PATH_MAX]; Ewl_Widget* window = ewl_window_new(); - Ewl_Widget* textbox = ewl_entry_new(); Ewl_Widget* vbox= ewl_vbox_new(); Ewl_Widget* hbox = ewl_hbox_new(); Ewl_Widget* button; + rename_text_widget =ewl_entry_new(); + snprintf(buf, PATH_MAX, "Rename '%s'", component_file->file->filename); ewl_object_minimum_w_set(EWL_OBJECT(window), 300); ewl_window_title_set(EWL_WINDOW(window), buf); - ewl_text_text_set(EWL_TEXT(textbox), component_file->file->filename); + ewl_text_text_set(EWL_TEXT(rename_text_widget), component_file->file->filename); ewl_container_child_append(EWL_CONTAINER(window), vbox); - ewl_container_child_append(EWL_CONTAINER(vbox), textbox); + ewl_container_child_append(EWL_CONTAINER(vbox), rename_text_widget); ewl_container_child_append(EWL_CONTAINER(vbox), hbox); button = ewl_button_new(); ewl_button_label_set(EWL_BUTTON(button), "Rename"); ewl_container_child_append(EWL_CONTAINER(hbox), button); + ewl_widget_data_set(button, "window", window); + ewl_callback_append(button, EWL_CALLBACK_CLICKED, ewl_rename_dialog_rename_cb, component_file); ewl_widget_show(button); button = ewl_button_new(); @@ -47,7 +78,7 @@ ewl_widget_show(button); ewl_widget_show(window); - ewl_widget_show(textbox); + ewl_widget_show(rename_text_widget); ewl_widget_show(vbox); ewl_widget_show(hbox); } ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs