Hi, I'm tooling around with a current-user-directory and hierarchical-list% in #lang racket/gui and it seems to be working adding folders works ok, but when I delete a group of folders I get the following error;
hierarchical-list-compound-item::delete-item: item not found: #(struct:object:hierarchical-list-item% ...) . sequence-contract-violation: negative: method delete cannot be called, except in states (unlocked), args 0 3 I'm guessing the '(map (λ (i) (send this delete-item i)) (send this get-items))' is happening too fast? I'm going to try switching to deleting one at a time. More importantly, if anyone is familiar with threads and can spare a moment I'd appreciate a quick code review. The final goal is to have make a Dr racket tool/plugin that shows the current directory, functions/methods/classes like {visual-studio xcode atom emacs vim eclipse netbeans etc.}. (Working on the directory control helps me get my head around hierarchical-list%, and I can make it into a small package) Kind regards, Stephen -- #lang racket/gui (require framework mrlib/hierlist) (define window (new frame% [label "directory-hlist"] [width 600] [height 600])) (define directory-hlist% (class hierarchical-list% (inherit get-dc refresh) (init-field [directory-path (current-directory-for-user)]) (super-new) (define (dir-name-from-path path) (define-values (base name must-be-dir?) (split-path path)) name) (define/private (populate-d-hlist) (map (λ (path) (if (directory-exists? path) (send (send (send this new-list) get-editor) insert (path->string (dir-name-from-path path))) (send (send (send this new-item) get-editor) insert (path->string (file-name-from-path path))))) (directory-list directory-path))) (define/private (directory-change-catcher) (define f (filesystem-change-evt (current-directory-for-user))) (thread (λ () (sync f) (directory-change-catcher) (displayln "caught2!") (map (λ (i) *(send this delete-item i)*) (send this get-items)) (populate-d-hlist) ))) (directory-change-catcher) (populate-d-hlist) )) (define nav-hlist (new directory-hlist% [parent window] [directory-path (current-directory-for-user)])) (send window show #t) -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.