History log of /haiku/src/apps/text_search/Model.h
Revision Date Author Comments
# b3fd8cd8 16-Dec-2018 Humdinger <humdingerb@gmail.com>

TextSearch: don't hard-code Pe editor

When double-clicking a result in TextSearch, it opens the file with
the preferred application for that file type. In case you search
through e.g. a HTML file, that would be most probably WebPositive,
which is not what you want normally.

TextSearch has the setting "Open files in Pe" which forces all files
to be opened in the Pe editor.

With this change, it will force the files to be opened in the
preferred app for text/x-source-code.

Change-Id: I0920a5f2497c01b16be0ac7563fbab942b67ef24
Reviewed-on: https://review.haiku-os.org/769
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 653c7676 07-Nov-2017 Philippe Houdoin <philippe.houdoin@gmail.com>

TextSearch: several small improvements

* Wakeup periodically search thread, cancelling should be
more responsive now...
* Show Lines setting is now saved too
* Fix a bug, current file is display again while searching.
* Always pass line number, if any, to invoked app.
Works with StyledEdit as with Pe.

Partially fix #13289.
Another change will add "open with" context menu and remove "Open with Pe".


# 33d4c8a6 06-Nov-2017 Philippe Houdoin <philippe.houdoin@gmail.com>

TextSearch: way speeder by using xargs + grep

* Previously, each file was starting a shell to run grep
command on it. Very suboptimal performance, big overhead.
* Now a thread write each file path to xargs input,
while another start xargs, let it distribute files on
grep processes (one per cpu) and collect results asap.
* This bring results way faster than previously.
* Rename Escape Text setting into Regular Expression, as
name was more after shell workaround than after function.
* While it doesn't use a native text searching, by
reusing both grep and xargs power, it answer the main
issue with #9529.


# f8f8d2bb 01-Apr-2015 Augustin Cavalier <waddlesplash@gmail.com>

Revert "TextSearch: use BString-based searching instead of Grep-based."

This reverts commit 1e9f5f5be4c8419c2085f51c78c9ac02ef13377b.
As per discussion on the ML.


# 1e9f5f5b 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: use BString-based searching instead of Grep-based.

Huge performance improvement. Fixes #9529.


# 90ce3113 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: normalize copyright headers.


# 696f4254 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: trim trailing whitespace.


# 05840b4c 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: don't save the 'show contents' option.

Also get rid of the redundant menu option.


# 70597da2 02-Aug-2010 Joachim Seemer <humdingerb@googlemail.com>

Reverted part of r37829, because using B_COPY to copy selected entries in the hitslist makes it impossible to copy the search string in the text box. Oops.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37850 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 279291ae 31-Jul-2010 Joachim Seemer <humdingerb@googlemail.com>

Changed some menu strings and the shortcut to copy the selected text to the clipboard from B to C. Fixes #6404 and #6406.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37829 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 545bce00 11-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

* Added more tracing facilities (Function enter/exit printer)
* Decreased the node monitor activity timeout to 150 ms
* _StartNodeMonitoring() simply starts watching the root folder with the
B_WATCH_RECURSIVELY flag set. (Requires forthcomming changes to
BPathMonitor, but it was broken anyways.)
* _StopNodeMonitoring() returns early if node monitoring is inactive.
* When node monitoring is started after a search finished, it is done
asynchronous, since messing with the other controls results in modification
messages that otherwise stop node monitoring again. Now the message is
inserted last and works reliably.
* When receiving B_PATH_MONITOR messages, they are supposed to simply contain
a "path" field with the full path to the node that changed. That's not
currently the case with BPathMonitor, but I will commit that stuff next.
(Was broken before anyways.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26935 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 962a6c67 04-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Finished implementing and enabled node monitoring on the folders and files
of the current search. If new files match the pattern, the appear in the
results, or are removed if they don't match anymore. The results also
adapt to changes in the files.
Basically, I added another iterator that is also used to track changes when
node monitor events arrive. Only those changed files are grepped again after
a timeout of .5 seconds when no new node monitor events pour in.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26809 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38960785 03-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

* Refactoring, added const specifiers to helper methods that don't modify the
object.
* Improved check that enforces search pattern history limit to also handle
the case when the limit is changed in the source.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26787 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 68450777 04-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Refactoring
* FileIterator is now a mostly abstract interface
* FolderIterator is the currently only implementation (there could be
MessageIterator for an even better separation, which would read the top
level search folders from the BMessage with the selected poses, but it
would mostly use the same code for traversing the subfolders anyways so I
left that for the time being.)
* The Grepper and FolderIterator now copy the current settings from the Model
at instantiation. Since they run in a separate thread and the Model may
actually be changed from the Window thread, I think this is just a cleaner
and more safe solution.
* Cleanup here and there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26786 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1fffad3f 03-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Refactored a new class FileIterator from Grepper that will make adding
node monitoring easier. Also, FileIterator will be split to make the code
cleaner with regards to folder or selection mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26752 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1ebbfbb 02-Aug-2008 François Revol <revol@free.fr>

Fix gcc4 build. my->beers--;


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26748 a95241bf-73f2-0310-859d-f6bbb57e9c96


# edf2516d 02-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Moved TextSearch to apps folder, since it's actually a regular app.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26738 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8f8d2bbece9d16213f5bab86584502bee94a22a 01-Apr-2015 Augustin Cavalier <waddlesplash@gmail.com>

Revert "TextSearch: use BString-based searching instead of Grep-based."

This reverts commit 1e9f5f5be4c8419c2085f51c78c9ac02ef13377b.
As per discussion on the ML.


# 1e9f5f5be4c8419c2085f51c78c9ac02ef13377b 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: use BString-based searching instead of Grep-based.

Huge performance improvement. Fixes #9529.


# 90ce3113565f4be9dfbf7cf4e17d00e62d43810b 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: normalize copyright headers.


# 696f4254ca7f5a847d2f8f6fdbdd39ec11581ca3 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: trim trailing whitespace.


# 05840b4c2a30d02e26feb69279475ce6ba91ce46 31-Mar-2015 Augustin Cavalier <waddlesplash@gmail.com>

TextSearch: don't save the 'show contents' option.

Also get rid of the redundant menu option.


# 70597da2b4804bdf6a79b10cdb96b01cda277d33 02-Aug-2010 Joachim Seemer <humdingerb@googlemail.com>

Reverted part of r37829, because using B_COPY to copy selected entries in the hitslist makes it impossible to copy the search string in the text box. Oops.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37850 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 279291ae6249ea78b2b16c86ce1fc665666b4b4b 31-Jul-2010 Joachim Seemer <humdingerb@googlemail.com>

Changed some menu strings and the shortcut to copy the selected text to the clipboard from B to C. Fixes #6404 and #6406.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37829 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 545bce00c64cb698064efa6808e591c0b0e4e0d8 11-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

* Added more tracing facilities (Function enter/exit printer)
* Decreased the node monitor activity timeout to 150 ms
* _StartNodeMonitoring() simply starts watching the root folder with the
B_WATCH_RECURSIVELY flag set. (Requires forthcomming changes to
BPathMonitor, but it was broken anyways.)
* _StopNodeMonitoring() returns early if node monitoring is inactive.
* When node monitoring is started after a search finished, it is done
asynchronous, since messing with the other controls results in modification
messages that otherwise stop node monitoring again. Now the message is
inserted last and works reliably.
* When receiving B_PATH_MONITOR messages, they are supposed to simply contain
a "path" field with the full path to the node that changed. That's not
currently the case with BPathMonitor, but I will commit that stuff next.
(Was broken before anyways.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26935 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 962a6c67e9f80f14d48158c5666897f3ca2847e8 04-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Finished implementing and enabled node monitoring on the folders and files
of the current search. If new files match the pattern, the appear in the
results, or are removed if they don't match anymore. The results also
adapt to changes in the files.
Basically, I added another iterator that is also used to track changes when
node monitor events arrive. Only those changed files are grepped again after
a timeout of .5 seconds when no new node monitor events pour in.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26809 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 38960785430b187ad632ad3a9bc2cf8d6f183a55 03-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

* Refactoring, added const specifiers to helper methods that don't modify the
object.
* Improved check that enforces search pattern history limit to also handle
the case when the limit is changed in the source.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26787 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 684507777be0a6a0acbbc67ed1bf60ce299e7dd1 04-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Refactoring
* FileIterator is now a mostly abstract interface
* FolderIterator is the currently only implementation (there could be
MessageIterator for an even better separation, which would read the top
level search folders from the BMessage with the selected poses, but it
would mostly use the same code for traversing the subfolders anyways so I
left that for the time being.)
* The Grepper and FolderIterator now copy the current settings from the Model
at instantiation. Since they run in a separate thread and the Model may
actually be changed from the Window thread, I think this is just a cleaner
and more safe solution.
* Cleanup here and there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26786 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1fffad3f437a224769ce48659db1eaadfb5deeeb 03-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Refactored a new class FileIterator from Grepper that will make adding
node monitoring easier. Also, FileIterator will be split to make the code
cleaner with regards to folder or selection mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26752 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1ebbfbbd88c92bb73b79898b8df40be72a48b97 02-Aug-2008 François Revol <revol@free.fr>

Fix gcc4 build. my->beers--;


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26748 a95241bf-73f2-0310-859d-f6bbb57e9c96


# edf2516d608ceca834fcb09d2a8a0be39c6c7c36 02-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

Moved TextSearch to apps folder, since it's actually a regular app.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26738 a95241bf-73f2-0310-859d-f6bbb57e9c96