Index: dashboard.scm ================================================================== --- dashboard.scm +++ dashboard.scm @@ -258,11 +258,12 @@ ;; runs tree ((path-run-ids (make-hash-table)) : hash-table) ;; path (target / runname) => id (runs-tree #f) ;; tab data - ((view-changed #t) : boolean) + ((view-changed #t) : boolean) + ((rebuild-dwg #t) : boolean) ((xadj 0) : number) ;; x slider number (if using canvas) ((yadj 0) : number) ;; y slider number (if using canvas) ;; runs-summary tab state ((runs-summary-modes '((one-run . "Show One Run") (xor-two-runs . "XOR Two Runs") (xor-two-runs-hide-clean . "XOR; Hide Clean")) ) : list) ((runs-summary-mode-buttons '()) : list) @@ -1259,18 +1260,18 @@ (dashboard:update-run-command tabdat)) "command-testname-selector tb action")) #:value (dboard:test-patt->lines (dboard:tabdat-test-patts-use tabdat)) #:expand "HORIZONTAL" - ;; #:size "10x30" )) (tb (iup:treebox #:value 0 #:name "Runs" #:expand "YES" #:addexpanded "NO" + #:size "10x" #:selection-cb (lambda (obj id state) (debug:catch-and-dump (lambda () (let* ((run-path (tree:node->path obj id)) @@ -1430,11 +1431,11 @@ (lambda () (dboard:tabdat-running-layout-set! tabdat #t) (dashboard:run-times-tab-layout-updater commondat tabdat tab-num) (dboard:tabdat-running-layout-set! tabdat #f)) "run-times-tab-layout-updater")))) - ;;(dboard:tabdat-view-changed-set! tabdat #t) + (dboard:tabdat-rebuild-dwg-set! tabdat #t) ))))) (dboard:tabdat-graph-matrix-set! tabdat graph-matrix) (iup:attribute-set! graph-matrix "WIDTH0" 0) (iup:attribute-set! graph-matrix "HEIGHT0" 0) graph-matrix)) @@ -1442,17 +1443,19 @@ (iup:vbox (iup:button "Show All" #:action (lambda (obj) (for-each (lambda (graph-cell) (let* ((graph-dat (hash-table-ref (dboard:tabdat-graph-cell-table tabdat) graph-cell))) (dboard:graph-dat-flag-set! graph-dat #t))) - (hash-table-keys (dboard:tabdat-graph-cell-table tabdat)))))) + (hash-table-keys (dboard:tabdat-graph-cell-table tabdat))) + (dboard:tabdat-rebuild-dwg-set! tabdat #t)))) (iup:hbox (iup:button "Hide All" #:action (lambda (obj) (for-each (lambda (graph-cell) (let* ((graph-dat (hash-table-ref (dboard:tabdat-graph-cell-table tabdat) graph-cell))) (dboard:graph-dat-flag-set! graph-dat #f))) - (hash-table-keys (dboard:tabdat-graph-cell-table tabdat))))))) + (hash-table-keys (dboard:tabdat-graph-cell-table tabdat))) + (dboard:tabdat-rebuild-dwg-set! tabdat #t))))) )))) ;;====================================================================== ;; R U N ;;====================================================================== @@ -2448,20 +2451,20 @@ #:title (conc "Megatest dashboard " (current-user-name) ":" *toppath*) #:menu (dcommon:main-menu) (let* ((runs-view (iup:vbox (iup:split #:orientation "VERTICAL" ;; "HORIZONTAL" - #:value 150 + #:value 200 (dboard:runs-tree-browser commondat runs-dat) - (iup:split - ;; left most block, including row names - (apply iup:vbox lftlst) - ;; right hand block, including cells - (iup:vbox - ;; the header - (apply iup:hbox (reverse hdrlst)) - (apply iup:hbox (reverse bdylst))))) + (iup:split + ;; left most block, including row names + (apply iup:vbox lftlst) + ;; right hand block, including cells + (iup:vbox + ;; the header + (apply iup:hbox (reverse hdrlst)) + (apply iup:hbox (reverse bdylst))))) controls )) (views-cfgdat (common:load-views-config)) (additional-tabnames '()) (tab-start-num 5) ;; DON'T FORGET TO UPDATE THIS WHEN CHANGING THE STANDARD TABS BELOW @@ -2760,22 +2763,26 @@ (last (dboard:tabdat-target tabdat)) "%")) (testpatt (or (dboard:tabdat-test-patts tabdat) "%")) (filtrstr (conc targpatt "/" runpatt "/" testpatt))) ;; (print "targpatt: " targpatt " runpatt: " runpatt " testpatt: " testpatt) + (print "RA => dboard:tabdat-last-filter-str " dboard:tabdat-last-filter-str "filtrstr" filtrstr "dboard:tabdat-view-changed" (dboard:tabdat-view-changed tabdat)) - (if (not (equal? (dboard:tabdat-last-filter-str tabdat) filtrstr)) + (if (or (not (equal? (dboard:tabdat-last-filter-str tabdat) filtrstr)) + (dboard:tabdat-rebuild-dwg tabdat)) (let ((dwg (dboard:tabdat-drawing tabdat))) - (print "reseting drawing") + (print "resetting drawing") (dboard:tabdat-layout-update-ok-set! tabdat #f) (vg:drawing-libs-set! dwg (make-hash-table)) (vg:drawing-insts-set! dwg (make-hash-table)) (vg:drawing-cache-set! dwg '()) (dboard:tabdat-allruns-by-id-set! tabdat (make-hash-table)) ;; (dboard:tabdat-allruns-set! tabdat '()) (dboard:tabdat-max-row-set! tabdat 0) - (dboard:tabdat-last-filter-str-set! tabdat filtrstr))) + (dboard:tabdat-last-filter-str-set! tabdat filtrstr) + ;; (dboard:tabdat-rebuild-dwg-set! tabdat #f) + )) (update-rundat tabdat runpatt ;; (hash-table-ref/default (dboard:tabdat-searchpatts tabdat) "runname" "%") (dboard:tabdat-numruns tabdat) testpatt ;; (hash-table-ref/default (dboard:tabdat-searchpatts tabdat) "test-name" "%/%") @@ -2792,10 +2799,12 @@ ;; (dboard:tabdat-dbkeys tabdat)) ;; res) ))))) ;; run times canvas updater +;; NOTE: this is for redrawing the canvas but does NOT change the underlying data that constitues +;; our charts/graphs being drawn. ;; (define (dashboard:run-times-tab-canvas-updater commondat tabdat tab-num) (let ((cnv (dboard:tabdat-cnv tabdat)) (dwg (dboard:tabdat-drawing tabdat)) (mtx (dboard:tabdat-runs-mutex tabdat)) @@ -2805,11 +2814,13 @@ (vg:drawing-xoff-set! dwg (dboard:tabdat-xadj tabdat)) (vg:drawing-yoff-set! dwg (dboard:tabdat-yadj tabdat)) (mutex-lock! mtx) (canvas-clear! cnv) (vg:draw dwg tabdat) + ;; RA => (dashboard:run-times-tab-run-data-updater commondat tabdat tab-num) (mutex-unlock! mtx) + (print "RA => View changed found to be set" ) (dboard:tabdat-view-changed-set! tabdat #f))))) ;; doesn't work. ;; ;;(define (gotoescape tabdat escape)