forked from cadence/breezewiki
		
	archiver-gui: Add reset button to completed downloads
This commit is contained in:
		
							parent
							
								
									226bda5637
								
							
						
					
					
						commit
						5c3a0c2715
					
				
					 1 changed files with 16 additions and 2 deletions
				
			
		| 
						 | 
					@ -14,9 +14,10 @@
 | 
				
			||||||
         racket/gui/easy
 | 
					         racket/gui/easy
 | 
				
			||||||
         racket/gui/easy/operator
 | 
					         racket/gui/easy/operator
 | 
				
			||||||
         (only-in pict bitmap)
 | 
					         (only-in pict bitmap)
 | 
				
			||||||
         images/icons/style
 | 
					         images/icons/arrow
 | 
				
			||||||
         images/icons/control
 | 
					         images/icons/control
 | 
				
			||||||
         images/icons/stickman
 | 
					         images/icons/stickman
 | 
				
			||||||
 | 
					         images/icons/style
 | 
				
			||||||
         images/icons/symbol
 | 
					         images/icons/symbol
 | 
				
			||||||
         "archiver-database.rkt"
 | 
					         "archiver-database.rkt"
 | 
				
			||||||
         "archiver.rkt"
 | 
					         "archiver.rkt"
 | 
				
			||||||
| 
						 | 
					@ -115,7 +116,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define action-icons
 | 
					(define action-icons
 | 
				
			||||||
  (hasheq 'pause (pause-icon #:color syntax-icon-color #:height button-icon-size)
 | 
					  (hasheq 'pause (pause-icon #:color syntax-icon-color #:height button-icon-size)
 | 
				
			||||||
          'resume (play-icon #:color color-green #:height button-icon-size)))
 | 
					          'resume (play-icon #:color color-green #:height button-icon-size)
 | 
				
			||||||
 | 
					          'reset (left-over-arrow-icon #:color halt-icon-color #:height button-icon-size)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (bitmap-view @the-bitmap [min-width 1])
 | 
					(define (bitmap-view @the-bitmap [min-width 1])
 | 
				
			||||||
  (pict-canvas #:min-size (@> (list (max min-width (send @the-bitmap get-width)) (send @the-bitmap get-height))) #;(if min-size (list min-size min-size) #f)
 | 
					  (pict-canvas #:min-size (@> (list (max min-width (send @the-bitmap get-width)) (send @the-bitmap get-height))) #;(if min-size (list min-size min-size) #f)
 | 
				
			||||||
| 
						 | 
					@ -256,6 +258,12 @@
 | 
				
			||||||
  (when th (kill-thread th))
 | 
					  (when th (kill-thread th))
 | 
				
			||||||
  (update-qi @qi [th #f] [st 'paused]))
 | 
					  (update-qi @qi [th #f] [st 'paused]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (do-reset-qi @qi)
 | 
				
			||||||
 | 
					  (define th (qi^-th (obs-peek @qi)))
 | 
				
			||||||
 | 
					  (when th (kill-thread th))
 | 
				
			||||||
 | 
					  (update-qi @qi [th #f] [st 'queued] [stage 0] [progress 0] [max-progress 0])
 | 
				
			||||||
 | 
					  (query-exec* "update wiki set progress = 0 where wikiname = ?" (qi^-wikiname (obs-peek @qi))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (do-try-unpause-next-entry)
 | 
					(define (do-try-unpause-next-entry)
 | 
				
			||||||
  (define queue (obs-peek @queue))
 | 
					  (define queue (obs-peek @queue))
 | 
				
			||||||
  (define next-qi (for/first ([qi queue]
 | 
					  (define next-qi (for/first ([qi queue]
 | 
				
			||||||
| 
						 | 
					@ -303,6 +311,8 @@
 | 
				
			||||||
                [else (hash-ref status-icons (qi^-st @qi))])))
 | 
					                [else (hash-ref status-icons (qi^-st @qi))])))
 | 
				
			||||||
        (define @is-running?
 | 
					        (define @is-running?
 | 
				
			||||||
          (@> (memq (qi^-st @qi) '(running))))
 | 
					          (@> (memq (qi^-st @qi) '(running))))
 | 
				
			||||||
 | 
					        (define @is-complete?
 | 
				
			||||||
 | 
					          (@> (eq? (qi^-st @qi) 'complete)))
 | 
				
			||||||
        ;; state icon at the left side
 | 
					        ;; state icon at the left side
 | 
				
			||||||
        (hpanel #:stretch '(#t #f)
 | 
					        (hpanel #:stretch '(#t #f)
 | 
				
			||||||
                #:alignment '(left center)
 | 
					                #:alignment '(left center)
 | 
				
			||||||
| 
						 | 
					@ -315,6 +325,10 @@
 | 
				
			||||||
                         (spacer)
 | 
					                         (spacer)
 | 
				
			||||||
                         (hpanel
 | 
					                         (hpanel
 | 
				
			||||||
                          #:stretch '(#f #f)
 | 
					                          #:stretch '(#f #f)
 | 
				
			||||||
 | 
					                          (if-view @is-complete?
 | 
				
			||||||
 | 
					                                   (button (hash-ref action-icons 'reset)
 | 
				
			||||||
 | 
					                                           (λ () (do-reset-qi @qi)))
 | 
				
			||||||
 | 
					                                   (spacer))
 | 
				
			||||||
                          (if-view @is-running?
 | 
					                          (if-view @is-running?
 | 
				
			||||||
                                   (button (hash-ref action-icons 'pause)
 | 
					                                   (button (hash-ref action-icons 'pause)
 | 
				
			||||||
                                           (λ () (do-stop-qi @qi)))
 | 
					                                           (λ () (do-stop-qi @qi)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue