add preferences:default-set?
This commit is contained in:
parent
4d0b1fe4dd
commit
3cfe5c0c57
|
@ -56,7 +56,7 @@ the state transitions / contracts are:
|
||||||
|
|
||||||
;; these four functions determine the state of a preference
|
;; these four functions determine the state of a preference
|
||||||
(define (pref-un/marshall-set? pref) (hash-has-key? marshall-unmarshall pref))
|
(define (pref-un/marshall-set? pref) (hash-has-key? marshall-unmarshall pref))
|
||||||
(define (pref-default-set? pref) (hash-has-key? defaults pref))
|
(define (preferences:default-set? pref) (hash-has-key? defaults pref))
|
||||||
(define (pref-can-init? pref)
|
(define (pref-can-init? pref)
|
||||||
(and (not snapshot-grabbed?)
|
(and (not snapshot-grabbed?)
|
||||||
(not (hash-has-key? preferences pref))))
|
(not (hash-has-key? preferences pref))))
|
||||||
|
@ -88,7 +88,7 @@ the state transitions / contracts are:
|
||||||
v]
|
v]
|
||||||
;; first time reading this, check the file & unmarshall value, if
|
;; first time reading this, check the file & unmarshall value, if
|
||||||
;; it's not there, use the default
|
;; it's not there, use the default
|
||||||
[(pref-default-set? p)
|
[(preferences:default-set? p)
|
||||||
(let* (;; try to read the preference from the preferences file
|
(let* (;; try to read the preference from the preferences file
|
||||||
[v (read-pref-from-file p)]
|
[v (read-pref-from-file p)]
|
||||||
[v (if (eq? v none)
|
[v (if (eq? v none)
|
||||||
|
@ -99,7 +99,7 @@ the state transitions / contracts are:
|
||||||
;; set the value for future reference and return it
|
;; set the value for future reference and return it
|
||||||
(hash-set! preferences p v)
|
(hash-set! preferences p v)
|
||||||
v)]
|
v)]
|
||||||
[(not (pref-default-set? p))
|
[(not (preferences:default-set? p))
|
||||||
(raise-unknown-preference-error
|
(raise-unknown-preference-error
|
||||||
'preferences:get
|
'preferences:get
|
||||||
"tried to get a preference but no default set for ~e"
|
"tried to get a preference but no default set for ~e"
|
||||||
|
@ -137,7 +137,7 @@ the state transitions / contracts are:
|
||||||
(for-each
|
(for-each
|
||||||
(λ (p value)
|
(λ (p value)
|
||||||
(cond
|
(cond
|
||||||
[(pref-default-set? p)
|
[(preferences:default-set? p)
|
||||||
(define default (hash-ref defaults p))
|
(define default (hash-ref defaults p))
|
||||||
(define checker? (default-checker default))
|
(define checker? (default-checker default))
|
||||||
(unless (checker? value)
|
(unless (checker? value)
|
||||||
|
@ -150,7 +150,7 @@ the state transitions / contracts are:
|
||||||
p value checker?))
|
p value checker?))
|
||||||
(check-callbacks p value)
|
(check-callbacks p value)
|
||||||
(hash-set! preferences p value)]
|
(hash-set! preferences p value)]
|
||||||
[(not (pref-default-set? p))
|
[(not (preferences:default-set? p))
|
||||||
(raise-unknown-preference-error
|
(raise-unknown-preference-error
|
||||||
'preferences:set
|
'preferences:set
|
||||||
(string-append
|
(string-append
|
||||||
|
@ -249,11 +249,11 @@ the state transitions / contracts are:
|
||||||
|
|
||||||
(define (preferences:set-un/marshall p marshall unmarshall)
|
(define (preferences:set-un/marshall p marshall unmarshall)
|
||||||
(cond
|
(cond
|
||||||
[(and (pref-default-set? p)
|
[(and (preferences:default-set? p)
|
||||||
(not (pref-un/marshall-set? p))
|
(not (pref-un/marshall-set? p))
|
||||||
(pref-can-init? p))
|
(pref-can-init? p))
|
||||||
(hash-set! marshall-unmarshall p (make-un/marshall marshall unmarshall))]
|
(hash-set! marshall-unmarshall p (make-un/marshall marshall unmarshall))]
|
||||||
[(not (pref-default-set? p))
|
[(not (preferences:default-set? p))
|
||||||
(error 'preferences:set-un/marshall
|
(error 'preferences:set-un/marshall
|
||||||
"must call set-default for ~s before calling set-un/marshall for ~s"
|
"must call set-default for ~s before calling set-un/marshall for ~s"
|
||||||
p p)]
|
p p)]
|
||||||
|
@ -274,7 +274,7 @@ the state transitions / contracts are:
|
||||||
#:aliases [aliases '()]
|
#:aliases [aliases '()]
|
||||||
#:rewrite-aliases [rewrite-aliases (map (lambda (x) values) aliases)])
|
#:rewrite-aliases [rewrite-aliases (map (lambda (x) values) aliases)])
|
||||||
(cond
|
(cond
|
||||||
[(and (not (pref-default-set? p))
|
[(and (not (preferences:default-set? p))
|
||||||
(pref-can-init? p))
|
(pref-can-init? p))
|
||||||
(define default-okay? (checker default-value))
|
(define default-okay? (checker default-value))
|
||||||
(unless default-okay?
|
(unless default-okay?
|
||||||
|
@ -295,7 +295,7 @@ the state transitions / contracts are:
|
||||||
(error 'preferences:set-default
|
(error 'preferences:set-default
|
||||||
"tried to call set-default for preference ~e but it cannot be configured any more"
|
"tried to call set-default for preference ~e but it cannot be configured any more"
|
||||||
p)]
|
p)]
|
||||||
[(pref-default-set? p)
|
[(preferences:default-set? p)
|
||||||
(error 'preferences:set-default
|
(error 'preferences:set-default
|
||||||
"preferences default already set for ~e" p)]
|
"preferences default already set for ~e" p)]
|
||||||
[(not (pref-can-init? p))
|
[(not (pref-can-init? p))
|
||||||
|
@ -434,6 +434,14 @@ the state transitions / contracts are:
|
||||||
of the preferences. It defaults to @racket['()]. If @racket[rewrite-aliases]
|
of the preferences. It defaults to @racket['()]. If @racket[rewrite-aliases]
|
||||||
is present, it is used to adjust the old values of the preferences
|
is present, it is used to adjust the old values of the preferences
|
||||||
when they are present in the saved file.})
|
when they are present in the saved file.})
|
||||||
|
|
||||||
|
(proc-doc/names
|
||||||
|
preferences:default-set?
|
||||||
|
(-> symbol? boolean?)
|
||||||
|
(pref)
|
||||||
|
@{Returns @racket[#t] if @racket[pref] has been passed to
|
||||||
|
@racket[preferences:set-default], @racket[#f]
|
||||||
|
otherwise})
|
||||||
|
|
||||||
(proc-doc/names
|
(proc-doc/names
|
||||||
preferences:set-un/marshall
|
preferences:set-un/marshall
|
||||||
|
|
Loading…
Reference in New Issue
Block a user