various bug report form changes and fixes
- show discard-all-bug-reports menu item as long as there is at least one bug report - move the close-and-save button to the left-hand side of the dialog - ask about discarding bug reports when clicking the close box - working dealing with empty bug reports - the 'finished' stage of the bug report form sets the focus to the close button closes PR 11644 closes PR 11645 closes PR 11638 closes PR 11640
This commit is contained in:
parent
ea3b9d2a8e
commit
2043b4ad6f
|
@ -208,12 +208,11 @@
|
||||||
[callback void])
|
[callback void])
|
||||||
enable #f)]
|
enable #f)]
|
||||||
[else
|
[else
|
||||||
(unless (null? (cdr this-time))
|
(new menu-item%
|
||||||
(new menu-item%
|
[parent saved-bug-reports-menu]
|
||||||
[parent saved-bug-reports-menu]
|
[label (string-constant disacard-all-saved-bug-reports)]
|
||||||
[label (string-constant disacard-all-saved-bug-reports)]
|
[callback (λ (x y) (discard-all-saved-bug-reports))])
|
||||||
[callback (λ (x y) (discard-all-saved-bug-reports))])
|
(new separator-menu-item% [parent saved-bug-reports-menu])
|
||||||
(new separator-menu-item% [parent saved-bug-reports-menu]))
|
|
||||||
(for ([a-brinfo (in-list this-time)])
|
(for ([a-brinfo (in-list this-time)])
|
||||||
(new menu-item%
|
(new menu-item%
|
||||||
[parent saved-bug-reports-menu]
|
[parent saved-bug-reports-menu]
|
||||||
|
|
|
@ -53,6 +53,35 @@
|
||||||
|
|
||||||
(define editing? #t)
|
(define editing? #t)
|
||||||
(define/public (no-longer-editing) (set! editing? #f))
|
(define/public (no-longer-editing) (set! editing? #f))
|
||||||
|
(define close-box-clicked? #t)
|
||||||
|
(define/public (set-close-box-not-clicked) (set! close-box-clicked? #f))
|
||||||
|
(define/augment (can-close?)
|
||||||
|
(cond
|
||||||
|
[close-box-clicked?
|
||||||
|
(cond
|
||||||
|
[(empty-bug-report?)
|
||||||
|
(no-more-saving)
|
||||||
|
(unsave-bug-report bug-id)
|
||||||
|
(set! editing? #f)]
|
||||||
|
[else
|
||||||
|
(define user-choice
|
||||||
|
(message-box/custom (string-constant cancel-bug-report?)
|
||||||
|
(string-constant do-you-want-to-discard-or-save-this-bug-report)
|
||||||
|
(string-constant save)
|
||||||
|
(string-constant cancel)
|
||||||
|
(string-constant discard)
|
||||||
|
this
|
||||||
|
'(default=1)
|
||||||
|
1))
|
||||||
|
(case user-choice
|
||||||
|
[(1) #t] ;; saving happens automatically
|
||||||
|
[(2) #f]
|
||||||
|
[(3)
|
||||||
|
(no-more-saving)
|
||||||
|
(unsave-bug-report bug-id)
|
||||||
|
(set! editing? #f)
|
||||||
|
#t])])]
|
||||||
|
[else #t]))
|
||||||
(define/augment (on-close)
|
(define/augment (on-close)
|
||||||
(inner (void) on-close)
|
(inner (void) on-close)
|
||||||
(set! open-frames (remq this open-frames)))
|
(set! open-frames (remq this open-frames)))
|
||||||
|
@ -79,7 +108,7 @@
|
||||||
|
|
||||||
(define cancel-kill-cust #f)
|
(define cancel-kill-cust #f)
|
||||||
|
|
||||||
(define-values (compose-view-focus get-query sanity-checking)
|
(define-values (compose-view-focus get-query sanity-checking no-more-saving empty-bug-report?)
|
||||||
(add-bug-report-controls compose-panel
|
(add-bug-report-controls compose-panel
|
||||||
init-bug-report
|
init-bug-report
|
||||||
(λ () (ok))
|
(λ () (ok))
|
||||||
|
@ -133,6 +162,7 @@
|
||||||
[label (string-constant close)]
|
[label (string-constant close)]
|
||||||
[callback
|
[callback
|
||||||
(lambda (x y)
|
(lambda (x y)
|
||||||
|
(send bug-frame set-close-box-not-clicked)
|
||||||
(send bug-frame close))]))
|
(send bug-frame close))]))
|
||||||
(new grow-box-spacer-pane% [parent finished-button-panel])
|
(new grow-box-spacer-pane% [parent finished-button-panel])
|
||||||
|
|
||||||
|
@ -152,7 +182,8 @@
|
||||||
(define (switch-to-finished-view finished-text)
|
(define (switch-to-finished-view finished-text)
|
||||||
(send finished-ec set-editor finished-text)
|
(send finished-ec set-editor finished-text)
|
||||||
(unsave-bug-report (saved-report-id init-bug-report))
|
(unsave-bug-report (saved-report-id init-bug-report))
|
||||||
(send single active-child finished-panel))
|
(send single active-child finished-panel)
|
||||||
|
(send finished-close focus))
|
||||||
|
|
||||||
; send-bug-report : (-> void)
|
; send-bug-report : (-> void)
|
||||||
;; initiates sending the bug report and switches the GUI's mode
|
;; initiates sending the bug report and switches the GUI's mode
|
||||||
|
@ -231,13 +262,16 @@
|
||||||
(send-bug-report)))
|
(send-bug-report)))
|
||||||
|
|
||||||
(define (cancel)
|
(define (cancel)
|
||||||
(when (ask-yes-or-no (string-constant cancel-bug-report?)
|
(when (or (empty-bug-report?)
|
||||||
(string-constant are-you-sure-cancel-bug-report?)
|
(ask-yes-or-no (string-constant cancel-bug-report?)
|
||||||
bug-frame)
|
(string-constant are-you-sure-cancel-bug-report?)
|
||||||
|
bug-frame))
|
||||||
(unsave-bug-report (saved-report-id init-bug-report))
|
(unsave-bug-report (saved-report-id init-bug-report))
|
||||||
|
(send bug-frame set-close-box-not-clicked)
|
||||||
(send bug-frame close)))
|
(send bug-frame close)))
|
||||||
|
|
||||||
(define (close-and-save)
|
(define (close-and-save)
|
||||||
|
(send bug-frame set-close-box-not-clicked)
|
||||||
(send bug-frame close))
|
(send bug-frame close))
|
||||||
|
|
||||||
;; Currently, the help-menu is left empty
|
;; Currently, the help-menu is left empty
|
||||||
|
|
|
@ -260,14 +260,18 @@
|
||||||
#:top-panel synthesized-panel))))
|
#:top-panel synthesized-panel))))
|
||||||
(get-bug-report-infos)))
|
(get-bug-report-infos)))
|
||||||
|
|
||||||
|
(define still-save? #t)
|
||||||
|
(define (no-more-saving) (set! still-save? #f))
|
||||||
|
|
||||||
(define (save-this-bug-report)
|
(define (save-this-bug-report)
|
||||||
(save-bug-report
|
(when still-save?
|
||||||
(saved-report-id init-bug-report)
|
(save-bug-report
|
||||||
#:severity (send severity get-string-selection)
|
(saved-report-id init-bug-report)
|
||||||
#:class (send bug-class get-string-selection)
|
#:severity (send severity get-string-selection)
|
||||||
#:subject (send summary get-value)
|
#:class (send bug-class get-string-selection)
|
||||||
#:description (get-content description)
|
#:subject (send summary get-value)
|
||||||
#:how-to-repeat (get-content reproduce)))
|
#:description (get-content description)
|
||||||
|
#:how-to-repeat (get-content reproduce))))
|
||||||
|
|
||||||
(define timer
|
(define timer
|
||||||
(new timer%
|
(new timer%
|
||||||
|
@ -332,11 +336,11 @@
|
||||||
(make-object button%
|
(make-object button%
|
||||||
(string-constant bug-report-show-synthesized-info)
|
(string-constant bug-report-show-synthesized-info)
|
||||||
button-panel (lambda x (show-synthesized-info))))
|
button-panel (lambda x (show-synthesized-info))))
|
||||||
(new horizontal-pane% (parent button-panel))
|
|
||||||
(new button%
|
(new button%
|
||||||
[parent button-panel]
|
[parent button-panel]
|
||||||
[label (string-constant close-and-save)]
|
[label (string-constant close-and-save)]
|
||||||
[callback (λ (a b) (close-and-save))])
|
[callback (λ (a b) (close-and-save))])
|
||||||
|
(new horizontal-pane% (parent button-panel))
|
||||||
(gui-utils:ok/cancel-buttons button-panel
|
(gui-utils:ok/cancel-buttons button-panel
|
||||||
(λ (a b) (ok))
|
(λ (a b) (ok))
|
||||||
(λ (a b) (cancel))
|
(λ (a b) (cancel))
|
||||||
|
@ -401,6 +405,18 @@
|
||||||
(send (send collections get-editor) auto-wrap #t)
|
(send (send collections get-editor) auto-wrap #t)
|
||||||
(align-labels)
|
(align-labels)
|
||||||
|
|
||||||
|
(define (empty-bug-report?)
|
||||||
|
(define (empty-editor? c)
|
||||||
|
(define t (send c get-editor))
|
||||||
|
(zero? (send t last-position)))
|
||||||
|
(and (empty-editor? reproduce)
|
||||||
|
(empty-editor? description)
|
||||||
|
(empty-editor? summary)
|
||||||
|
(equal? (send severity get-selection) default-severity)
|
||||||
|
(equal? (send bug-class get-selection) default-class)))
|
||||||
|
|
||||||
(values compose-view-focus
|
(values compose-view-focus
|
||||||
get-query
|
get-query
|
||||||
sanity-checking))
|
sanity-checking
|
||||||
|
no-more-saving
|
||||||
|
empty-bug-report?))
|
||||||
|
|
|
@ -1,13 +1,5 @@
|
||||||
#lang racket/base
|
#lang racket/base
|
||||||
|
|
||||||
#|
|
|
||||||
|
|
||||||
If there are saved reports when a window opens, offer to open the saved ones.
|
|
||||||
|
|
||||||
Put the saved things in the help menu.
|
|
||||||
|
|
||||||
|#
|
|
||||||
|
|
||||||
(require racket/match
|
(require racket/match
|
||||||
racket/contract
|
racket/contract
|
||||||
racket/serialize
|
racket/serialize
|
||||||
|
@ -58,10 +50,13 @@ Put the saved things in the help menu.
|
||||||
(for/list ([key (in-list valid-keys)])
|
(for/list ([key (in-list valid-keys)])
|
||||||
(list key
|
(list key
|
||||||
(case key
|
(case key
|
||||||
[(class) (car (car bug-classes))]
|
[(class) (car (list-ref bug-classes default-class))]
|
||||||
[(severity) (list-ref bug-severities 1)]
|
[(severity) (list-ref bug-severities default-severity)]
|
||||||
[else ""])))))
|
[else ""])))))
|
||||||
|
|
||||||
|
(define default-class 0)
|
||||||
|
(define default-severity 1)
|
||||||
|
|
||||||
|
|
||||||
;; valid? : any -> boolean?
|
;; valid? : any -> boolean?
|
||||||
;; returns #t if the saved-reports are well formed
|
;; returns #t if the saved-reports are well formed
|
||||||
|
@ -165,6 +160,7 @@ Put the saved things in the help menu.
|
||||||
(not (equal? id (saved-report-id saved-report))))
|
(not (equal? id (saved-report-id saved-report))))
|
||||||
reports)))))
|
reports)))))
|
||||||
|
|
||||||
|
|
||||||
(define (unsave-bug-report id)
|
(define (unsave-bug-report id)
|
||||||
(with-pref
|
(with-pref
|
||||||
#:rewrite? #t
|
#:rewrite? #t
|
||||||
|
@ -185,7 +181,9 @@ Put the saved things in the help menu.
|
||||||
bug-classes
|
bug-classes
|
||||||
translate-class
|
translate-class
|
||||||
(struct-out brinfo)
|
(struct-out brinfo)
|
||||||
saved-report?)
|
saved-report?
|
||||||
|
default-severity
|
||||||
|
default-class)
|
||||||
(provide/contract
|
(provide/contract
|
||||||
[register-new-bug-id (-> saved-report?)]
|
[register-new-bug-id (-> saved-report?)]
|
||||||
[lookup-bug-report (-> number? saved-report?)]
|
[lookup-bug-report (-> number? saved-report?)]
|
||||||
|
|
|
@ -140,6 +140,9 @@ please adhere to these guidelines:
|
||||||
(cancel-bug-report? "Cancel Bug Report?")
|
(cancel-bug-report? "Cancel Bug Report?")
|
||||||
(are-you-sure-cancel-bug-report?
|
(are-you-sure-cancel-bug-report?
|
||||||
"Are you sure that you want to cancel sending this bug report?")
|
"Are you sure that you want to cancel sending this bug report?")
|
||||||
|
(do-you-want-to-discard-or-save-this-bug-report
|
||||||
|
"Do you want to discard or save this bug report?")
|
||||||
|
(discard "Discard") ;; a button label for a dialog box with the above question
|
||||||
(bug-report-form "Bug Report Form")
|
(bug-report-form "Bug Report Form")
|
||||||
(bug-report-field-name "Name")
|
(bug-report-field-name "Name")
|
||||||
(bug-report-field-email "Email")
|
(bug-report-field-email "Email")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user