original commit: faa8326ba00e528c230d38f9dc4813239550df81
This commit is contained in:
Robby Findler 2003-03-25 03:49:34 +00:00
parent 92a4237c2d
commit 454f0d6420
2 changed files with 27 additions and 17 deletions

View File

@ -57,7 +57,7 @@
(let ([internal-filename (get-filename)]) (let ([internal-filename (get-filename)])
(if (or (not internal-filename) (if (or (not internal-filename)
(equal? internal-filename "")) (equal? internal-filename ""))
(mred:get-file) (put-file #f #f)
internal-filename)) internal-filename))
input-filename)]) input-filename)])
(with-handlers ([not-break-exn? (with-handlers ([not-break-exn?
@ -86,7 +86,7 @@
(let ([internal-filename (get-filename)]) (let ([internal-filename (get-filename)])
(if (or (not internal-filename) (if (or (not internal-filename)
(equal? internal-filename "")) (equal? internal-filename ""))
(mred:get-file) (get-file #f)
internal-filename)) internal-filename))
input-filename)]) input-filename)])
(with-handlers ([not-break-exn? (with-handlers ([not-break-exn?
@ -299,14 +299,14 @@
[else (make-object editor-snip% (make-object pasteboard:basic%))]))] [else (make-object editor-snip% (make-object pasteboard:basic%))]))]
(override get-file put-file) (define/override (get-file d)
[define get-file (lambda (d)
(parameterize ([finder:dialog-parent-parameter (parameterize ([finder:dialog-parent-parameter
(get-top-level-window)]) (get-top-level-window)])
(finder:get-file d)))] (finder:get-file d)))
[define put-file (lambda (d f) (parameterize ([finder:dialog-parent-parameter (define/override (put-file d f)
(parameterize ([finder:dialog-parent-parameter
(get-top-level-window)]) (get-top-level-window)])
(finder:put-file f d)))] (finder:put-file f d)))
(super-instantiate ()))) (super-instantiate ())))

View File

@ -990,12 +990,22 @@
(define/public save-as (define/public save-as
(opt-lambda ([format 'same]) (opt-lambda ([format 'same])
(let* ([name (send (get-editor) get-filename)] (let* ([editor (get-editor)]
[file (parameterize ([finder:dialog-parent-parameter this]) [name (send editor get-filename)])
(finder:put-file name))]) (let-values ([(base name)
(if name
(let-values ([(base name dir?) (split-path name)])
(values base name))
(values #f #f))])
(let ([file (send editor put-file name base)])
(if file (if file
(send (get-editor) save-file/gui-error file format) (send editor save-file/gui-error file format)
#f)))) #f))))))
(define/private (basename str)
(let-values ([(base name dir?) (split-path str)])
base))
(inherit get-checkable-menu-item% get-menu-item%) (inherit get-checkable-menu-item% get-menu-item%)
(override file-menu:save-callback (override file-menu:save-callback
file-menu:create-save? file-menu:save-as-callback file-menu:create-save-as? file-menu:create-save? file-menu:save-as-callback file-menu:create-save-as?