Added Jens Axel's case sensitive searching fix. also PR 7886

svn: r2266
This commit is contained in:
Robby Findler 2006-02-16 23:54:14 +00:00
parent 1c21a8bd2b
commit dac3f9b7d3
3 changed files with 42 additions and 15 deletions

View File

@ -1610,6 +1610,13 @@
[button-panel (make-object horizontal-panel% dialog)] [button-panel (make-object horizontal-panel% dialog)]
[prefs-panel (make-object horizontal-panel% dialog)]
[sensitive-check-box-callback (λ () (send find-edit toggle-case-sensitive))]
[sensitive-check-box (make-object check-box%
(string-constant find-case-sensitive)
prefs-panel (λ (x y) (sensitive-check-box-callback)))]
[dummy (begin (send sensitive-check-box set-value (send find-edit get-case-sensitive?))
(send prefs-panel set-alignment 'center 'center))]
[update-texts [update-texts
(λ () (λ ()
(send find-edit stop-searching) (send find-edit stop-searching)
@ -1874,10 +1881,11 @@
string string
searching-direction searching-direction
search-anchor search-anchor
'eof #t #t #t)]) 'eof #t case-sensitive? #t)])
(cond (cond
[(not first-pos) [(not first-pos)
(if wrap? (if wrap?
(begin
(let-values ([(found-edit pos) (let-values ([(found-edit pos)
(find-string-embedded (find-string-embedded
top-searching-edit top-searching-edit
@ -1885,15 +1893,20 @@
searching-direction searching-direction
(if (eq? 'forward searching-direction) (if (eq? 'forward searching-direction)
0 0
(send searching-edit last-position)))]) (send searching-edit last-position))
'eof #t case-sensitive? #f)])
(if (not pos) (if (not pos)
(not-found found-edit #f) (not-found found-edit #f)
(found found-edit pos))) (found found-edit pos))))
(not-found found-edit #f))] (not-found found-edit #f))]
[else [else
(found found-edit first-pos)])))))))) (found found-edit first-pos)]))))))))
(field (field [dont-search #f]
[dont-search #f]) [case-sensitive? (preferences:get 'framework:case-sensitive-search?)])
(define/public (toggle-case-sensitive)
(set! case-sensitive? (not case-sensitive?))
(preferences:set 'framework:case-sensitive-search? case-sensitive?))
(define/public (get-case-sensitive?) case-sensitive?)
(define/public (stop-searching) (define/public (stop-searching)
(set! dont-search #t)) (set! dont-search #t))
(define/public (start-searching) (define/public (start-searching)
@ -2161,6 +2174,7 @@
(set-search-direction direction) (set-search-direction direction)
(send find-edit search #t beep?))) (send find-edit search #t beep?)))
(define sensitive-check-box #f)
(define search-panel #f) (define search-panel #f)
(define search-gui-built? #f) (define search-gui-built? #f)
(define dir-radio #f) (define dir-radio #f)
@ -2237,6 +2251,15 @@
(set-search-direction forward) (set-search-direction forward)
(reset-search-anchor (get-text-to-search))))))) (reset-search-anchor (get-text-to-search)))))))
(define _10
(begin
(set! sensitive-check-box (make-object check-box%
(string-constant find-case-sensitive)
middle-right-panel
(λ (x y) (send find-edit toggle-case-sensitive))))
(send sensitive-check-box set-value (get-field case-sensitive? find-edit))))
(define hide/undock-pane (make-object horizontal-panel% middle-right-panel)) (define hide/undock-pane (make-object horizontal-panel% middle-right-panel))
(define hide-button (make-object button% (string-constant hide) (define hide-button (make-object button% (string-constant hide)
hide/undock-pane hide/undock-pane

View File

@ -21,6 +21,9 @@
(application-preferences-handler (λ () (preferences:show-dialog))) (application-preferences-handler (λ () (preferences:show-dialog)))
(preferences:set-default 'framework:case-sensitive-search?
#f
boolean?)
(preferences:set-default 'framework:basic-canvas-background (preferences:set-default 'framework:basic-canvas-background
(send the-color-database find-color "white") (send the-color-database find-color "white")
(λ (x) (is-a? x color%))) (λ (x) (is-a? x color%)))

View File

@ -466,6 +466,7 @@ please adhere to these guidelines:
(forward "Forward") (forward "Forward")
(backward "Backward") (backward "Backward")
(hide "Hide") (hide "Hide")
(find-case-sensitive "Case sensitive") ;; the check box in both the docked & undocked search
;;; multi-file-search ;;; multi-file-search
(mfs-multi-file-search-menu-item "Search in Files...") (mfs-multi-file-search-menu-item "Search in Files...")