Revision: 21936
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21936
Author:   elubie
Date:     2009-07-26 21:23:07 +0200 (Sun, 26 Jul 2009)

Log Message:
-----------
2.5 file browser
* fix some notifiers, so directory is correctly shown

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/space_file/file_ops.c
    branches/blender2.5/blender/source/blender/editors/space_file/space_file.c
    branches/blender2.5/blender/source/blender/windowmanager/WM_types.h

Modified: 
branches/blender2.5/blender/source/blender/editors/space_file/file_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_file/file_ops.c    
2009-07-26 18:56:27 UTC (rev 21935)
+++ branches/blender2.5/blender/source/blender/editors/space_file/file_ops.c    
2009-07-26 19:23:07 UTC (rev 21936)
@@ -105,12 +105,18 @@
        }
 }
 
-static void file_select(SpaceFile* sfile, ARegion* ar, const rcti* rect, short 
val)
+typedef enum FileSelect { FILE_SELECT_DIR = 1, 
+  FILE_SELECT_FILE = 2 } FileSelect;
+
+
+static FileSelect file_select(SpaceFile* sfile, ARegion* ar, const rcti* rect, 
short val)
 {
        int first_file = -1;
        int last_file = -1;
        int act_file;
        short selecting = (val == LEFTMOUSE);
+       FileSelect retval = FILE_SELECT_FILE;
+
        FileSelectParams *params = ED_fileselect_get_params(sfile);
        // FileLayout *layout = ED_fileselect_get_layout(sfile, ar);
 
@@ -147,25 +153,18 @@
                                BLI_add_slash(params->dir);
                                params->file[0] = '\0';
                                file_change_dir(sfile);
+                               retval = FILE_SELECT_DIR;
                        }
                }
                else if (file)
                {
                        if (file->relname) {
                                BLI_strncpy(params->file, file->relname, 
FILE_MAXFILE);
-                               /* XXX
-                               if(event==MIDDLEMOUSE && 
filelist_gettype(sfile->files)) 
-                                       imasel_execute(sfile);
-                               */
                        }
                        
                }       
-               /* XXX
-               if(BIF_filelist_gettype(sfile->files)==FILE_MAIN) {
-                       active_imasel_object(sfile);
-               }
-               */
        }
+       return retval;
 }
 
 
@@ -185,8 +184,11 @@
 
        BLI_isect_rcti(&(ar->v2d.mask), &rect, &rect);
        
-       file_select(sfile, ar, &rect, val );
-       WM_event_add_notifier(C, NC_WINDOW, NULL);
+       if (FILE_SELECT_DIR == file_select(sfile, ar, &rect, val )) {
+               WM_event_add_notifier(C, NC_FILE|ND_FILELIST, NULL);
+       } else {
+               WM_event_add_notifier(C, NC_FILE|ND_PARAMS, NULL);
+       }
        return OPERATOR_FINISHED;
 }
 
@@ -226,8 +228,11 @@
 
                /* single select, deselect all selected first */
                file_deselect_all(sfile);
-               file_select(sfile, ar, &rect, val );
-               WM_event_add_notifier(C, NC_FILE|ND_PARAMS, NULL);
+               if (FILE_SELECT_DIR == file_select(sfile, ar, &rect, val )) {
+                       WM_event_add_notifier(C, NC_FILE|ND_FILELIST, NULL);
+               } else {
+                       WM_event_add_notifier(C, NC_FILE|ND_PARAMS, NULL);
+               }
        }
        return OPERATOR_FINISHED;
 }
@@ -306,7 +311,7 @@
                file_change_dir(sfile);                         
                params->file[0] = '\0';
 
-               WM_event_add_notifier(C, NC_FILE|ND_PARAMS, NULL);
+               WM_event_add_notifier(C, NC_FILE|ND_FILELIST, NULL);
        }
        
        return OPERATOR_FINISHED;

Modified: 
branches/blender2.5/blender/source/blender/editors/space_file/space_file.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_file/space_file.c  
2009-07-26 18:56:27 UTC (rev 21935)
+++ branches/blender2.5/blender/source/blender/editors/space_file/space_file.c  
2009-07-26 19:23:07 UTC (rev 21936)
@@ -469,10 +469,19 @@
        UI_view2d_view_restore(C);
 }
 
-//static void file_main_area_listener(ARegion *ar, wmNotifier *wmn)
-//{
+static void file_ui_area_listener(ARegion *ar, wmNotifier *wmn)
+{
        /* context changes */
-//}
+       switch(wmn->category) {
+               case NC_FILE:
+                       switch (wmn->data) {
+                               case ND_FILELIST:
+                                       ED_region_tag_redraw(ar);
+                                       break;
+                       }
+                       break;
+       }
+}
 
 /* only called once, from space/spacetypes.c */
 void ED_spacetype_file(void)
@@ -515,6 +524,7 @@
        art->regionid = RGN_TYPE_UI;
        art->minsizey= 60;
        art->keymapflag= ED_KEYMAP_UI;
+       art->listener= file_ui_area_listener;
        art->init= file_ui_area_init;
        art->draw= file_ui_area_draw;
        BLI_addhead(&st->regiontypes, art);

Modified: branches/blender2.5/blender/source/blender/windowmanager/WM_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/WM_types.h 
2009-07-26 18:56:27 UTC (rev 21935)
+++ branches/blender2.5/blender/source/blender/windowmanager/WM_types.h 
2009-07-26 19:23:07 UTC (rev 21936)
@@ -190,7 +190,6 @@
        /* NC_FILE Filebrowser */
 #define ND_PARAMS                      (60<<16)
 #define ND_FILELIST                    (61<<16)
-#define ND_FILEDISPLAY         (62<<16)
 
        /* NC_ANIMATION Animato */
 #define ND_KEYFRAME_SELECT     (70<<16)


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to