Help - Search - Members - Calendar
Full Version: foo_uie_quicksearch
Hydrogenaudio Forums > Hosted Forums > foobar2000 > 3rd Party Plugins - (fb2k)
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
NEMO7538
As I was tired to wait for such a plugin I decided to code it myself. It is derived from foo_uie_search [Credit goes to Peter, Foosion, Mister P & tbhoerer] and provides with a very basic search toolbar that will send results of the search to a playlist of your choice.
The playlist name and the tags to search for are configurable, as well as other options (See config. page). Other options are configurable on the fly from the toolbar icon. Extended search (playlist gen syntax) and context menus (Search for same ...) are also supported.

Download <--Version 2.8l, for Foobar version 0.9.x
Download <--Version 1.5i, for Foobar version 0.8.x



Change log :
    Versions 2.8l and 1.5i (2007-05-18)
  • Fixed metadb handle leak when using "Quicksearch for same ..." and toolbar not active
  • Deactivated "Inline playlist search" as default
    Version 2.8k (2007-01-03)
  • Fixed crash whith "Now playing" button group and "Quicksearch for same ..."
    Version 2.8j (2006-10-15)
  • Recompiled with the latest SDK to improve Windows Vista compatibility
    Version 2.8i (2006-09-30)
  • Bugfix: "Reset search string" is now deactivated when Autosearch is used
    Versions 2.8h & 1.5h (2006-08-27)
  • Fixed bug: Improper playlist reactivation when recall history/favorites with "All Playlist" as criteria
  • Console shows playlist name when playlist not found following reactivation of a search within a playlist during recall of History/Favorites
    Versions 2.8g & 1.5g (2006-08-16)
  • Search pattern is now selected when the toolbar receives focus
  • Fixed unproper toolbar colors after undock when autosearch is selected (1.5g only)
    Versions 2.8f & 1.5f (2006-06-20)
  • Reorganized code and fixed a bug (wrong search results happening in extremely rare circumstances with "Exact" mode)
    Versions 2.8e & 1.5e (2006-06-19)
  • Improved reactiveness and speed of inline playlist search
  • Added "Search for same/Directory" to context menu
    Version 1.5 (2006-06-16)
  • Ported from 2.8 for Foobar 0.8.3
    Version 2.8 (2006-06-15)
  • Added configurable delay for autosearch
  • Reorganized prefs & help pages
    Version 2.7 (beta) (2006-06-11)
  • New: Autosearch feature ... (for people too lazy to hit the Enter Key)
  • New: Added option to manage preferences (record of favorites search)
  • Fixed weird bug (search not working with searchstrings of length 12 or 26)
  • Changed "override keys" settings (Now: Alt+Enter=All Playlist, Shift+Enter=Playlist,Ctrl+Shift+enter=DB, Alt+Keydown=Menu)
  • Reorganized menu
  • Fixed auto selection of searchstring when not found. Added additional colors settings to manage unfound situations (See prefs colors)
  • Various bugfix & improvements
    Quick updates to V1.4 & 2.6 (2006-06-07)
  • Menu shortcut is now Alt+Down instead of Alt
  • Added tooltip for reminding which options were chosen
  • Added "Same genre" in context menus
    Version 1.4 (2006-06-04)
  • Port of features from 2.0 to 2.6 in 1.4 (for foobar 0.8.3 users)
    Version 2.6 (2006-06-04)
  • Added "Search as you type" option (for inline playlist search only)
  • QuickFixed searchstring not reset properly after a successfull search (bug appeared in V2.5)
  • QuickFixed tab key blocked from within control
  • Prevented deletion of search results playlist when searching inline
  • Fixed redrawing of frame style in prefs page
    Version 2.5 (2006-06-03)
  • Added menu option, available through Alt Key
  • Added options to override on the fly the "Search in ..." settings. Shift+Enter = Force search in playlist, Ctrl+Enter = Force search in all playlists, Ctrl+Shift+Enter=Force search in database.
    Version 2.4 (2006-06-03)
  • Added an option to setfocus on the playlist window after a search (complete mouseless utilization is now possible)
  • Implemented "Escape" key. Will set focus on the playlist window.
  • New option to search "inline" when "playlist" is selected as the search domain (will highlight results in the current playlist, navigation is available through up and down arrow keys) .... mimics old playlistfind plugin
    Version 2.3 (2006-06-01)
  • Hotfix : Search in "all playlist" was only searching in the last playlist
  • Fixed text not scrolling when longer than the text box
  • Prefs page now supports XP themes
  • Fixed icon switch enabled/disabled spinbutton status
  • Minor bugfix and improvement
    Version 2.2 (2006-05-28)
  • Fixed text entry/display/overlapping selection problem
    Version 2.1 (2006-05-27)
  • Fixed Tagz strings reset happening even when user cancels operation
  • Better vertical sizing of search string area
  • Changed Tagz string "Delete" button enabled/disabled state (only last remaining item can't be deleted)
    Version 2.0 (2006-05-27)
  • Ported (from version 1.3) to Foobar 0.9 version
    Version 1.3 (2006-05-27)
  • Added option to include %artist% in %album% search from context menu (fixes the "greatest hits" problem, requires a VA string to be entered)
  • Added option to automaticall switch to extended search mode when a '%' char is entered in the searchstring (and back when none is present in the search string)
  • Added option to override current settings with recall from history search
  • Fixed toolbar disappearing under albumart
    Version 1.2 (2006-05-21)
  • Context menu (and shortcuts) is now available through [context]Now Playing and Playlist entries
  • New : Ability to load custom bitmaps (H=16, W= 20, .bmp only)
  • New : Playlist_gen queries are now available
  • Fixed lowercased search strings when appended to playlist name
  • New processing of history with memorization/recall of all variables
  • Added customization of toolbar frame (None, Grey, Sunken)
  • Restructured config. page & help, including playlist_gen syntax overview
    Version 1.1 (2006-05-16)
  • Implemented hourglass
  • Added repainting of icon during resizing
  • Fixed possible vertical resizing (top right)
  • Improved cursor management for resizing (top, bottom)
    Version 1.0 (2006-05-15)
  • Implemented context menus to search for same Artist/Album/Title (search in database only and with "Exact" match ... will temporarily overide the current settings).
  • Implemented toolbar resizing (horizontal only)
    Version 0.9.3 (2006-05-14)
  • Fixed icons not displayed properly on Windows XP
  • Centered vertically the test edit control
    Version 0.9 (2006-05-12)
  • Added clickable search icon on the toolbar, customizable through the prefs; moved right click options (except undock) to icon standard click
  • Added menu entry to access the preferences
  • Minor bugfixes and improvements
  • Increased max history size to 32
    Version 0.8 (2006-05-08)
  • Added list of Tagz presets to choose from for searching
  • Avoided duplicates in the history of search strings
  • Reorganized prefs page
    Version 0.7 (2006-05-05)
  • Added history of search strings with recall option (rightclick the toolbar)
  • Fixed unwanted duplication of target playlist with different search strings
    Version 0.6 (2006-05-04)
  • Added customized color scheme
  • Fixed unwanted resizers appearing after undock
  • Reorganized prefs page
    Version 0.5 (2006-05-01)
  • New option to append the search string to the name of the target playlist
  • Revisited the preferences dialog
  • Changed the behavior when nothing is found (searchstring highlited, playlist selection unchanged)
  • Added an option to reset the searchstring after a successfull search
    Version 0.4 (2006-05-01)
  • Added ability to perform a search in all playlists (Search results playlist is excluded in this case)
  • Undock function now fixed
  • Added ability to search by prefix
  • Code cleaned, reorg. and commented
    Version 0.3 (2006-04-27)
  • Performance dramatically improved
To do list :
  • Fix metadb handle leak when "search for same ..." is used and the toolbar is not in the layout
  • Fix unproper reset of searchstring in autosearch mode (2.8 only)
  • Fix crash whith "Now playing" button group and "Quicksearch for same ..."
  • Change default initialization of inline playlist search
  • Fix unproper display of searchstring background after unsuccessfull search for same ....
  • Restore undock function (2.8 only, requires new ui_columns version)
  • Focus on search results playlist after successfull search
  • Investigate some playlistfind like behaviour (when playlist is the search domain)
  • Do something with Ctrl+Enter, Alt+Enter ....
  • Release version 1.4 for 0.8.3 users
  • Fix undock function / Implement menu for independant window
  • Customize colors
  • Fix the toolbar giving the illusion it could be resized (happens only when undocked)
  • Implement history of search strings
  • Create special command to search for same (Selection/Now playing)
  • Special behavior when nothing is found [Do not switch to target playlist]
  • Manage a list of presets for Tagz search strings
  • Add an option to add the search string to the name of the playlist
  • Implement "All playlist" search
  • Add an hourglass
  • Fix weird behavior with album art panel
  • Add search button / icon
  • Port to 0.9
Please also note :
  • This is a beta version
  • I am a complete noob with C++ and this is my first plugin, so maybe not totally bug free
  • It has been tested on W2K only
Lycox
Nice work. Hope it will be ported to 0.9 soon.
Shade[ST]
QUOTE (NEMO7538 @ Apr 25 2006, 07:12 PM) *
[*]Improve performance [searching is damned slow on large databases]

What search algorithm are you using?

Also, you should consider making it possible to use the currently active playlist as the search source, when a query is entered. Or maybe put a button (toggleable?) which could say "search in this playlist" or whatever. Maybe a menu entry, and the button could be added with columnsui.
NEMO7538
QUOTE
Also, you should consider making it possible to use the currently active playlist as the search source,

Already done (Right click on the toolbar).
carmenm
Was foo_uie_search the one which searched in Firefox way?
And you say that it is already possible to search into the active playlist, but it is checkbox or do we have each time we want to search in the active playlist to do a right click?
david_dl
QUOTE (carmenm @ Apr 26 2006, 09:03 PM) *
Was foo_uie_search the one which searched in Firefox way?


AFAIK that was foo_uie_playlistfind
simmosn
This looks pretty good. Can't wait for the 0.9 port smile.gif
mil3s
^Me too.
Jimbo51
I'm really glad someone took this on, can't wait for it to be ported.
Zurman
nice plugin smile.gif
Seldaek
Don't want to fire up the good old .8 to try this out but I'm looking forward for the .9 port.
Some idea would be to make a hotkey that makes the panel grab the focus, something that would allow to press F3 and then type your query in, no mouse involved.
As for the performance, you might want to look at foo_dbsearch sources (ask foosion), it works pretty good with my big db.
mil3s
QUOTE (Seldaek @ Apr 26 2006, 02:35 PM) *
Don't want to fire up the good old .8 to try this out but I'm looking forward for the .9 port.
Some idea would be to make a hotkey that makes the panel grab the focus, something that would allow to press F3 and then type your query in, no mouse involved.
As for the performance, you might want to look at foo_dbsearch sources (ask foosion), it works pretty good with my big db.

I like the hotkey idea.

I also thought of something else. 2 modes. Mode 1: Searching the playlist. And mode 2: Searching Library, adding/removing tracks to a playlist as you type. This would be the ultimate track finder and best Library browser imo. smile.gif
NEMO7538
Version 0.3 is out. The performance issue should be fixed (Please confirm).
Zurman
QUOTE (NEMO7538 @ Apr 26 2006, 08:38 PM) *
Version 0.3 is out. The performance issue should be fixed (Please confirm).

It's really fast with my 15,000 songs database cool.gif
mil3s
0.9 support please. sad.gif
avatar_888
I'm no expert here, but I noticed foosion post this in the database search plugin thread:
QUOTE (foosion @ Apr 26 2006, 09:35 PM) *
However, the upcoming release (v1.4) will finally allow all the relevant backend code (data sources, filter modes, background search, even format presets) to be re-used by other components.

Am I right in thinking that this means that you could use the methods employed by his plugin in this one? Maybe saving a lot of work??

And yes I too am really waiting for this to come to v0.9 smile.gif
NEMO7538
QUOTE (mil3s @ Apr 26 2006, 12:57 PM) *
QUOTE (Seldaek @ Apr 26 2006, 02:35 PM) *

Some idea would be to make a hotkey that makes the panel grab the focus, something that would allow to press F3 and then type your query in, no mouse involved.

I like the hotkey idea.
I also thought of something else. 2 modes. Mode 1: Searching the playlist. And mode 2: Searching Library, adding/removing tracks to a playlist as you type. This would be the ultimate track finder and best Library browser imo. smile.gif
  • You can already map a hot key to the Component/Quicksearch toolbar menu. It will make the toolbar grab the focus
  • Mode 1. and Mode 2. are already available as well
  • I will probably not implement the "add remove as you type" feature
QUOTE (carmenm @ Apr 26 2006, 12:03 AM) *
And you say that it is already possible to search into the active playlist, but it is checkbox or do we have each time we want to search in the active playlist to do a right click?

I may implement Ctrl+Enter/Alt+Enter later in order to switch between DB and Playlist.
QUOTE (avatar_888 @ Apr 27 2006, 09:45 AM) *
QUOTE (foosion @ Apr 26 2006, 09:35 PM) *

However, the upcoming release (v1.4) will finally allow all the relevant backend code (data sources, filter modes, background search, even format presets) to be re-used by other components.

Am I right in thinking that this means that you could use the methods employed by his plugin in this one? Maybe saving a lot of work??

Thanks for the suggestion, but the search code is already functional and I want to keep this plugin as simple as possible, and configuration options minimal.
metal_termite
QUOTE (NEMO7538 @ Apr 25 2006, 07:12 PM) *
To do list :
  • Add search button / icon


Something like this?

metal_termite
When search type is set to EXACT my queries yield no results whatsoever.
NEMO7538
QUOTE (metal_termite @ Apr 29 2006, 07:13 PM) *
Something like this?

Yes

QUOTE (metal_termite @ Apr 29 2006, 07:56 PM) *
When search type is set to EXACT my queries yield no results whatsoever.

"Exact" mean we will search for the exact concatenation of the Tagz string entered in the preferences. So if for instance you use "%artist% %album% %title%", it means you have to enter all of these tags values, separated with a blank (and without errors). Works fine here. Can you post an example? I will look after it.

Edit : It seems however that there is problem with the way long strings are handled when they are longer than the visible field size. Will investigate/fix for the next version.
metal_termite
QUOTE (NEMO7538 @ Apr 30 2006, 03:39 AM) *
"Exact" mean we will search for the exact concatenation of the Tagz string entered in the preferences. So if for instance you use "%artist% %album% %title%", it means you have to enter all of these tags values, separated with a blank (and without errors). Works fine here. Can you post an example? I will look after it.

Edit : It seems however that there is problem with the way long strings are handled when they are longer than the visible field size. Will investigate/fix for the next version.


My mistake, I did not know one had to enter all the tag values. I assumed it would find exact matches per tag.

When using MATCH ALL or MATCH ANY if I query for a string like abba, I will also get results like black sabbath. Is there a way to make my searches boundary specific? So if I query abba I only get tags containing the word abba. Using quotations perhaps [in future versions]?

Also what's the difference between MATCH ALL and MATCH ANY?
Storm
0.9, 0.9! smile.gif
NEMO7538
QUOTE (metal_termite @ Apr 30 2006, 04:27 AM) *
Also what's the difference between MATCH ALL and MATCH ANY?

Match All means that a track will only be selected if all keywords (separated by blanks) entered as the search string are found in the track tags.
Match any means that the track will be selected if at least one of the keywords is found in the track tags.
NEMO7538
Version 0.4 is out [See changelog in the first post].
Shade[ST]
QUOTE (NEMO7538 @ Apr 30 2006, 09:30 PM) *
Version 0.4 is out [See changelog in the first post].

Can you post a zip with the source / do you have a release date on the .9 version?
NEMO7538
I would like to finish the planned developments before porting to 0.9. Thanks to be patient.
Schinkentoni
another suggestion:
add an option to automatically delete the search field after each search
mil3s
QUOTE (Schinkentoni @ May 1 2006, 06:09 AM) *
another suggestion:
add an option to automatically delete the search field after each search

Yea, that would be great.
NEMO7538
QUOTE (mil3s @ May 1 2006, 04:34 AM) *
QUOTE (Schinkentoni @ May 1 2006, 06:09 AM) *

add an option to automatically delete the search field after each search

Yea, that would be great.

Done ! See first post for version 0.5.
Schinkentoni
QUOTE (NEMO7538 @ May 1 2006, 05:31 PM) *
Done ! See first post for version 0.5.

Love you

now, please take this just as a question, I don't want to rush you into something or demand it from you... besides your to do list, do you have somewhere in the back of your head, the intention to make this a real panel with the search results appearing in it (in a similar way it is done with foosions dbsearch, only docked on)?
avatar_888
yes, i too reckon this would probably work best as a complete panel. but maybe that's beyond the scope of this plugin and could be added by someone else if you release the source code later on.
NEMO7538
Yes, a result panel is not in my plans at the moment, mainly because I prefer the results in a playlist to benefit from colomn UI formatting.
mil3s
Glad to see the To Do List is getting smaller and closer to the 0.9 port.

Btw. "Add search button / icon"? Is this really needed? Pressing Enter not easy enough?
metal_termite
I like it the way it is now. Firefox style smile.gif

I no longer need to click around the album list to find what I want. I just type in the artist or genre of music. Thanks Nemo, this plugin rules.

PS. When you port it to 0.9 are you going to maintain the 0.83 version?
Storm
Just curious, termite, why are you using the old version of foobar still? Personally, my biggest gripe with the current version is merely the non-existence of a quicksearch plugin smile.gif
NEMO7538
I still use 0.8.3. That's the reason I want to finish all improvement and fixes before porting to 0.9, to avoid to manage several versions.
metal_termite
QUOTE (Storm @ May 2 2006, 01:10 AM) *
Just curious, termite, why are you using the old version of foobar still? Personally, my biggest gripe with the current version is merely the non-existence of a quicksearch plugin smile.gif

1. The v0.9.x id3v2.4 tags are not compliant with the other hardware/software I use.
2. Several essential plugins I use have not been ported yet.
3. I dislike how the new columnsui looks because it doesnt use seperators between ui components in its interface. Yes I'm picky like that tongue.gif

----------

I have an idea for this plugin though I'm not sure how practical it would be. An in-line search history like the firefox search bar.
fabiospark
Feature request/Suggestion

I think it would be very useful being able to have a list of different tags presets. I.e.

- people (artist/album artist/performer/composer etc)
- words (album/title/venue etc)
- instruments (instruments/form/work etc)

and everything one can imagine.

It should be avilable on the right click menu or through a drop down box.

Thanks
NEMO7538
QUOTE (metal_termite @ May 2 2006, 04:47 AM) *
1. The v0.9.x id3v2.4 tags are not compliant with the other hardware/software I use.
2. Several essential plugins I use have not been ported yet.

Same reasons here, and the 0.9 UI columns SDK is not yet stabilized.*
QUOTE (fabiospark @ May 3 2006, 11:53 AM) *
I think it would be very useful being able to have a list of different tags presets. ....

Already planned. See first post.
fabiospark
Sorry.
NEMO7538
Version 0.6 is out. Check first post for details.
metal_termite
Awesome. I like the way the preferences window is organized.

One question I've been meaning to ask. Why is the search box not flush to it's edge on the left side?

See pic:
NEMO7538
Because we need an area to right click and access the preferences [I know it's not ideal].
mil3s
QUOTE (NEMO7538 @ May 4 2006, 11:15 PM) *
Because we need an area to right click and access the preferences [I know it's not ideal].

You could put the planned search icon there and include the rightclick menu perhaps. Would look better. Custom icon would be preferable. smile.gif
Zurman
Nice update smile.gif
Keep up the good work !
NEMO7538
Version 0.7 is out (incl. searches history/recall capability). Check first post for download.
BlindSeer
Setting "Limit history size" to 0 entries causes a crash. Otherwise, nice component - looking forward to the .9 version.
Seldaek
It's nice to see the 0.9 version is coming closer and closer every day.
Some idea about "Same search", it could be something like special google commands, e.g. if you'd type same:artist (same:<tag>) it would search for the same tag field as the selected item and samenp: to force same as now playing.
This would allow for a quick way to do what you want, instead of having to right-click>select new mode which should be reserved to rarely modified behaviors.
NEMO7538
QUOTE (BlindSeer @ May 5 2006, 10:35 AM) *
Setting "Limit history size" to 0 entries causes a crash. Otherwise, nice component - looking forward to the .9 version.

Reproduced and will investigate as a priority. Thanks for reporting.
NEMO7538
The crash in V0.7 should be fixed now. Please redownload from first post.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.