add File|New, File|Open... and File|Open Recent menu items to the

bug report form window

related to PR 13698
This commit is contained in:
Robby Findler 2013-04-16 08:27:08 -05:00
parent b2463815d6
commit d1e7841f84
2 changed files with 56 additions and 52 deletions

View File

@ -435,7 +435,10 @@
(drracket-help-menu:after-about menu this))
(define/override (file-menu:new-string) (string-constant new-menu-item))
(define/override (file-menu:create-new?) #t)
(define/override (file-menu:open-string) (string-constant open-menu-item))
(define/override (file-menu:create-open?) #t)
(define/override (file-menu:create-open-recent?) #t)
(define/override (file-menu:between-open-and-revert file-menu)
(new menu-item%

View File

@ -57,58 +57,59 @@
(define (report-bug/new-frame this-bug-id frame-mixin)
(define bug-frame%
(class (frame-mixin (frame:standard-menus-mixin frame:basic%))
(init title)
(init-field bug-id)
(define/public (get-bug-id) (and editing? bug-id))
(define editing? #t)
(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
[(eq? (send single active-child) finished-panel)
#t]
[(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)
(inner (void) on-close)
(set! open-frames (remq this open-frames)))
(super-make-object title)
(set! open-frames (cons this open-frames))
;; a bunch of stuff we don't want
(define/override (file-menu:between-print-and-close menu) (void))
(define/override (edit-menu:between-find-and-preferences menu) (void))
(define/override (file-menu:create-open?) #f)
(define/override (file-menu:create-open-recent?) #f)
(define/override (file-menu:create-new?) #f)
(define/override (file-menu:create-save?) #f)
(define/override (file-menu:create-revert?) #f)))
(frame-mixin
(class (frame:standard-menus-mixin frame:basic%)
(init title)
(init-field bug-id)
(define/public (get-bug-id) (and editing? bug-id))
(define editing? #t)
(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
[(eq? (send single active-child) finished-panel)
#t]
[(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)
(inner (void) on-close)
(set! open-frames (remq this open-frames)))
(super-make-object title)
(set! open-frames (cons this open-frames))
;; a bunch of stuff we don't want
(define/override (file-menu:between-print-and-close menu) (void))
(define/override (edit-menu:between-find-and-preferences menu) (void))
(define/override (file-menu:create-open?) #f)
(define/override (file-menu:create-open-recent?) #f)
(define/override (file-menu:create-new?) #f)
(define/override (file-menu:create-save?) #f)
(define/override (file-menu:create-revert?) #f))))
(define init-bug-report (if this-bug-id
(lookup-bug-report this-bug-id)