Enlightenment CVS committal

Author  : chaos
Project : e17
Module  : proto

Dir     : e17/proto/entropy/src/dialogs


Modified Files:
        etk_interaction_dialog.c 


Log Message:
* Delete dialog behaviour rationalisation

===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/dialogs/etk_interaction_dialog.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- etk_interaction_dialog.c    4 Aug 2007 13:46:25 -0000       1.11
+++ etk_interaction_dialog.c    5 Aug 2007 12:25:22 -0000       1.12
@@ -1,5 +1,6 @@
 #include "entropy.h"
 #include "entropy_gui.h"
+#include "etk_user_interaction_dialog.h"
 #include <limits.h>
 #include <dlfcn.h>
 #include <Etk.h>
@@ -23,26 +24,46 @@
        Etk_Widget* window = NULL;
        int result = (int)user_data;
        entropy_generic_file* file;
+       Ecore_List* files;
        entropy_gui_component_instance* instance;
        
        window = etk_object_data_get(ETK_OBJECT(w), "window");
-       file= etk_object_data_get(ETK_OBJECT(window), "file");
+       files= etk_object_data_get(ETK_OBJECT(window), "files");
        instance = etk_object_data_get(ETK_OBJECT(window), "instance");
 
        etk_signal_disconnect("pressed", ETK_OBJECT(w), 
ETK_CALLBACK(etk_entropy_delete_dialog_cb));
 
        switch (result) {
-               case ENTROPY_USER_INTERACTION_RESPONSE_YES:
-               case ENTROPY_USER_INTERACTION_RESPONSE_YES_TO_ALL: {
-                       entropy_plugin_filesystem_file_remove(file, instance);
+               case ENTROPY_USER_INTERACTION_RESPONSE_YES: {
+                       ecore_list_first_goto(files);
+                       while ((file = ecore_list_first_remove(files))) {
+                               entropy_plugin_filesystem_file_remove(file, 
instance);
+                       }
                }
                break;
+
+               case ENTROPY_USER_INTERACTION_RESPONSE_NO: {
+               }
+               break;
+               
                default: break;
        }
+
+       ecore_list_destroy(files);
        etk_object_destroy(ETK_OBJECT(window));
 }
 
-void entropy_etk_delete_dialog_new(entropy_generic_file* file, 
entropy_gui_component_instance* instance) 
+void entropy_etk_delete_dialog_single_new(entropy_gui_component_instance* 
instance, entropy_generic_file* file)
+{
+       Ecore_List* files;
+
+       files = ecore_list_new();
+       ecore_list_append(files,file);
+
+       entropy_etk_delete_dialog_new(instance,files);
+}
+
+void entropy_etk_delete_dialog_new(entropy_gui_component_instance* instance, 
Ecore_List* files) 
 {
        char buf[PATH_MAX];
        Etk_Widget* window = etk_window_new();
@@ -51,51 +72,43 @@
        Etk_Widget* button;
        Etk_Widget* label;
 
-       snprintf(buf, PATH_MAX, "Are you sure you want to delete '%s/%s'? ", 
file->path,file->filename);
+       if (ecore_list_count(files) == 1) {
+               ecore_list_first_goto(files);
+               entropy_generic_file* file = 
((entropy_generic_file*)ecore_list_current(files));
+               snprintf(buf, PATH_MAX, "Are you sure you want to delete 
'%s/%s'? ", file->path, 
+                       file->filename);
+       } else {
+               snprintf(buf, PATH_MAX, "Are you sure you want to delete these 
%d files'? ", ecore_list_count(files));
+       }
 
-               etk_window_title_set(ETK_WINDOW(window), buf);
+       etk_window_title_set(ETK_WINDOW(window), buf);
                
-               etk_container_add(ETK_CONTAINER(window), vbox);
+       etk_container_add(ETK_CONTAINER(window), vbox);
 
-               label = etk_label_new(buf);
-               etk_box_append(ETK_BOX(vbox), label, ETK_BOX_START, 
ETK_BOX_EXPAND_FILL, 5);
-               etk_box_append(ETK_BOX(vbox), hbox, ETK_BOX_START, 
ETK_BOX_EXPAND_FILL, 5);
-
-               button = etk_button_new_with_label("Yes");
-               etk_container_add(ETK_CONTAINER(hbox), button);
-               etk_signal_connect("pressed", ETK_OBJECT(button), 
ETK_CALLBACK(etk_entropy_delete_dialog_cb), 
-                               (int*)ENTROPY_USER_INTERACTION_RESPONSE_YES );
-               etk_object_data_set(ETK_OBJECT(button), "window", window);
-               etk_widget_show(button);
-
-               button = etk_button_new_with_label("Yes to all");
-               etk_container_add(ETK_CONTAINER(hbox), button);
-               etk_signal_connect("pressed", ETK_OBJECT(button), 
ETK_CALLBACK(etk_entropy_delete_dialog_cb), 
-                               
(int*)ENTROPY_USER_INTERACTION_RESPONSE_YES_TO_ALL );
-               etk_object_data_set(ETK_OBJECT(button), "window", window);
-               etk_widget_show(button);
-
-               button = etk_button_new();
-               etk_button_label_set(ETK_BUTTON(button), "No");
-               etk_container_add(ETK_CONTAINER(hbox), button);
+       label = etk_label_new(buf);
+       etk_box_append(ETK_BOX(vbox), label, ETK_BOX_START, 
ETK_BOX_EXPAND_FILL, 5);
+       etk_box_append(ETK_BOX(vbox), hbox, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 
5);
+
+       button = etk_button_new_with_label("Yes");
+       etk_container_add(ETK_CONTAINER(hbox), button);
+       etk_signal_connect("pressed", ETK_OBJECT(button), 
ETK_CALLBACK(etk_entropy_delete_dialog_cb), 
+                       (int*)ENTROPY_USER_INTERACTION_RESPONSE_YES );
+       etk_object_data_set(ETK_OBJECT(button), "window", window);
+       etk_widget_show(button);
+
+       button = etk_button_new();
+       etk_button_label_set(ETK_BUTTON(button), "No");
+       etk_container_add(ETK_CONTAINER(hbox), button);
                
-               etk_signal_connect("pressed", ETK_OBJECT(button), 
ETK_CALLBACK(etk_entropy_delete_dialog_cb), 
-                               (int*)ENTROPY_USER_INTERACTION_RESPONSE_NO );
-               etk_object_data_set(ETK_OBJECT(button), "window", window);
-               etk_widget_show(button);
-
-               button = etk_button_new_with_label("No to all");
-               etk_container_add(ETK_CONTAINER(hbox), button);         
-               etk_signal_connect("pressed", ETK_OBJECT(button), 
ETK_CALLBACK(etk_entropy_delete_dialog_cb), 
-                               
(int*)ENTROPY_USER_INTERACTION_RESPONSE_NO_TO_ALL );
-               etk_object_data_set(ETK_OBJECT(button), "window", window);
-               etk_widget_show(button);
-
+       etk_signal_connect("pressed", ETK_OBJECT(button), 
ETK_CALLBACK(etk_entropy_delete_dialog_cb), 
+                       (int*)ENTROPY_USER_INTERACTION_RESPONSE_NO );
+       etk_object_data_set(ETK_OBJECT(button), "window", window);
+       etk_widget_show(button);
 
-               etk_object_data_set(ETK_OBJECT(window), "file", file);
-               etk_object_data_set(ETK_OBJECT(window), "instance", instance);
+       etk_object_data_set(ETK_OBJECT(window), "files", files);
+       etk_object_data_set(ETK_OBJECT(window), "instance", instance);
 
-               etk_widget_show_all(window);
+       etk_widget_show_all(window);
 }
 
 void entropy_etk_user_interaction_dialog_new(entropy_file_operation* interact) 



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to