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

@ -47,15 +47,17 @@
(raise-type-error who "list of 2-string lists" filters))
(if (or (eq? (system-type) 'unix) force-unix?)
(send (new path-dialog%
[put? put?]
[dir? dir?]
[multi? multi?]
[message message]
[parent parent]
[directory directory]
[filename filename]
;; implements its own filters
[filters (if (eq? filters default-filters) #t filters)])
[put? put?]
[dir? dir?]
[multi? multi?]
[message message]
[parent parent]
[directory directory]
[filename filename]
[filters
(cond [(eq? filters default-filters) #t] ; has its own defaults
[dir? #f]
[else filters])])
run)
(let ([s (wx:file-selector
message directory filename extension

View File

@ -66,7 +66,7 @@
;; (list-of (list filter-name filter-glob))
;; can use multiple globs with ";" separators
;; #f => disable, #t => use default
[filters default-filters]
[filters #t]
;; predicates are used to filter paths that are shown -- they are
;; applied on the file/dir name (as a string) (either as an
;; absolute path or relative while current-directory is set);
@ -89,12 +89,15 @@
[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?
(if show-file?
(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
(if dir?