Wijzigingen.
This commit is contained in:
+19
-8
@@ -27,6 +27,7 @@
|
||||
(list id name local-path host prefixes current))
|
||||
))
|
||||
|
||||
|
||||
(define libraries%
|
||||
(class object%
|
||||
(init-field [settings settings])
|
||||
@@ -52,9 +53,13 @@
|
||||
|
||||
(define/public (libraries)
|
||||
(when (eq? libs #f)
|
||||
(set! libs (sort (map to-library (send cfg get 'libraries '()))
|
||||
(lambda (a b)
|
||||
(string<? (send a get-name) (send b get-name))))))
|
||||
(let ((cfg-libs (send cfg get 'libraries '())))
|
||||
(dbg-rktplayer "libraries from ini: ~a" cfg-libs)
|
||||
(set! libs (sort (map to-library cfg-libs)
|
||||
(lambda (a b)
|
||||
(string<? (send a get-name) (send b get-name)))))
|
||||
(dbg-rktplayer "libs: ~a" (map (λ (x) (list (send x get-id) (send x get-name))) libs))
|
||||
))
|
||||
libs)
|
||||
|
||||
(define/public (set-libraries! libs*)
|
||||
@@ -72,9 +77,16 @@
|
||||
|
||||
(define/public (get-library id)
|
||||
(let ((libs (send this libraries)))
|
||||
(for/or ([lib libs])
|
||||
(when (eq? (send lib get-id) id)
|
||||
lib))))
|
||||
(letrec ((f (λ (libs)
|
||||
(if (null? libs)
|
||||
#f
|
||||
(let* ((lib (car libs))
|
||||
(lib-id (send lib get-id)))
|
||||
(dbg-rktplayer "symbol? lib-id: ~a, lib-id: ~a (~a) eq? ~a" (symbol? lib-id) lib-id (send lib get-name) id)
|
||||
(if (eq? lib-id id)
|
||||
lib
|
||||
(f (cdr libs))))))))
|
||||
(f libs))))
|
||||
|
||||
(define/public (remove-library id)
|
||||
(let ((libs (send this libraries)))
|
||||
@@ -84,8 +96,7 @@
|
||||
|
||||
(define/public (add-library l)
|
||||
(let ((libs (send this libraries)))
|
||||
(send this set-libraries!
|
||||
(cons (send l ->list) libs))
|
||||
(send this set-libraries! (cons l libs))
|
||||
(set! libs #f)
|
||||
(send l get-id)))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user