fix when filters is null, forbid filters when getting a directory

svn: r3138

original commit: d9d8bbd7dbfbfd1ff120231795fd56b0a9a9c805
This commit is contained in:
Eli Barzilay 2006-05-30 21:59:46 +00:00
parent 553fa0add6
commit 22eb0a7ca0
2 changed files with 17 additions and 12 deletions

View File

@ -54,8 +54,10 @@
[parent parent] [parent parent]
[directory directory] [directory directory]
[filename filename] [filename filename]
;; implements its own filters [filters
[filters (if (eq? filters default-filters) #t filters)]) (cond [(eq? filters default-filters) #t] ; has its own defaults
[dir? #f]
[else filters])])
run) run)
(let ([s (wx:file-selector (let ([s (wx:file-selector
message directory filename extension message directory filename extension

View File

@ -66,7 +66,7 @@
;; (list-of (list filter-name filter-glob)) ;; (list-of (list filter-name filter-glob))
;; can use multiple globs with ";" separators ;; can use multiple globs with ";" separators
;; #f => disable, #t => use default ;; #f => disable, #t => use default
[filters default-filters] [filters #t]
;; predicates are used to filter paths that are shown -- they are ;; predicates are used to filter paths that are shown -- they are
;; applied on the file/dir name (as a string) (either as an ;; applied on the file/dir name (as a string) (either as an
;; absolute path or relative while current-directory is set); ;; absolute path or relative while current-directory is set);
@ -89,12 +89,15 @@
[guard #f] [guard #f]
) )
(when (eq? filters #t) (set! filters default-filters)) (cond [(eq? filters #t) (set! filters default-filters)]
[(null? filters) (set! filters #f)])
(when dir? (when dir?
(if show-file? (if show-file?
(error 'path-dialog% "cannot use `show-file?' with `dir?'") (error 'path-dialog% "cannot use `show-file?' with `dir?'")
(set! show-file? (lambda (_) #f)))) (set! show-file? (lambda (_) #f)))
(when filters (error 'path-dialog% "cannot use `filters' with `dir?'")))
(printf "filters = ~s\n" filters)
(define label (define label
(if dir? (if dir?