@@ -59,21 +59,9 @@ const float kWindowStagger = 17.0f;
5959Preferences* EditorWindow::fPreferences = nullptr ;
6060
6161
62- namespace {
63- enum {
64- INCREMENTAL_SEARCH_CHAR = ' incs' ,
65- INCREMENTAL_SEARCH_BACKSPACE = ' incb' ,
66- INCREMENTAL_SEARCH_CANCEL = ' ince' ,
67- INCREMENTAL_SEARCH_COMMIT = ' incc'
68- };
69- }
70-
71-
7262EditorWindow::EditorWindow (bool stagger)
7363 :
74- BWindow(fPreferences ->fWindowRect , gAppName , B_DOCUMENT_WINDOW, 0 ),
75- fIncrementalSearchTerm(" " ),
76- fIncrementalSearchFilter(new BMessageFilter(B_KEY_DOWN, _IncrementalSearchFilter))
64+ BWindow(fPreferences ->fWindowRect , gAppName , B_DOCUMENT_WINDOW, 0 )
7765{
7866 fActivatedGuard = false ;
7967
@@ -271,9 +259,9 @@ EditorWindow::EditorWindow(bool stagger)
271259
272260EditorWindow::~EditorWindow ()
273261{
274- delete fFindReplaceHandler ;
262+ RemoveCommonFilter ( fFindReplaceHandler -> IncrementalSearchFilter ()) ;
275263
276- RemoveCommonFilter ( fIncrementalSearchFilter . get ()) ;
264+ delete fFindReplaceHandler ;
277265}
278266
279267
@@ -498,27 +486,6 @@ EditorWindow::MessageReceived(BMessage* message)
498486 }
499487
500488 switch (message->what ) {
501- case INCREMENTAL_SEARCH_CHAR: {
502- const char * character = message->GetString (" character" , " " );
503- fIncrementalSearchTerm .append (character);
504- fEditor ->IncrementalSearch (fIncrementalSearchTerm );
505- } break ;
506- case INCREMENTAL_SEARCH_BACKSPACE: {
507- if (!fIncrementalSearchTerm .empty ()) {
508- fIncrementalSearchTerm .pop_back ();
509- fEditor ->IncrementalSearch (fIncrementalSearchTerm );
510- }
511- } break ;
512- case INCREMENTAL_SEARCH_CANCEL: {
513- fEditor ->IncrementalSearchCancel ();
514- fIncrementalSearchTerm = " " ;
515- RemoveCommonFilter (fIncrementalSearchFilter .get ());
516- } break ;
517- case INCREMENTAL_SEARCH_COMMIT: {
518- fEditor ->IncrementalSearchCommit (fIncrementalSearchTerm );
519- fIncrementalSearchTerm = " " ;
520- RemoveCommonFilter (fIncrementalSearchFilter .get ());
521- } break ;
522489 case SAVE_FILE: {
523490 _Save ();
524491 message->SendReply ((uint32) B_OK);
@@ -614,8 +581,8 @@ EditorWindow::MessageReceived(BMessage* message)
614581 fEditor ->ReplaceAndFind ();
615582 } break ;
616583 case MAINMENU_SEARCH_INCREMENTAL: {
617- RemoveCommonFilter (fIncrementalSearchFilter . get ());
618- AddCommonFilter (fIncrementalSearchFilter . get ());
584+ RemoveCommonFilter (fFindReplaceHandler -> IncrementalSearchFilter ());
585+ AddCommonFilter (fFindReplaceHandler -> IncrementalSearchFilter ());
619586 } break ;
620587 case MAINMENU_SEARCH_BOOKMARKS: {
621588 if (fBookmarksWindow == nullptr ) {
@@ -1368,28 +1335,3 @@ EditorWindow::OnSavePoint(bool left)
13681335 fToolbar ->SetActionEnabled (MAINMENU_FILE_RELOAD, fModified );
13691336 fToolbar ->SetActionEnabled (MAINMENU_FILE_SAVE, fModified );
13701337}
1371-
1372-
1373- filter_result
1374- EditorWindow::_IncrementalSearchFilter (BMessage* message, BHandler** target,
1375- BMessageFilter* messageFilter)
1376- {
1377- if (message->what == B_KEY_DOWN) {
1378- BLooper *looper = messageFilter->Looper ();
1379- const char * bytes;
1380- message->FindString (" bytes" , &bytes);
1381- if (bytes[0 ] == B_RETURN) {
1382- looper->PostMessage (INCREMENTAL_SEARCH_COMMIT);
1383- } else if (bytes[0 ] == B_ESCAPE) {
1384- looper->PostMessage (INCREMENTAL_SEARCH_CANCEL);
1385- } else if (bytes[0 ] == B_BACKSPACE) {
1386- looper->PostMessage (INCREMENTAL_SEARCH_BACKSPACE);
1387- } else {
1388- BMessage msg (INCREMENTAL_SEARCH_CHAR);
1389- msg.AddString (" character" , &bytes[0 ]);
1390- messageFilter->Looper ()->PostMessage (&msg);
1391- }
1392- return B_SKIP_MESSAGE;
1393- }
1394- return B_DISPATCH_MESSAGE;
1395- }
0 commit comments