Details
-
Bug
-
Resolution: Fixed
-
Major
-
1.2.0 Alpha
-
None
-
Operating System: Windows 7
Platform: Intel
Description
The patch will add a new textbox to the channellist for tv and radio which filters the channels and only shows channels that match the filter criteria (contains text, case insensitive).
The filtering is done in a background thread so the ui isn't stalled during the process.
h4. Steps to Reproduce
1) Open TV server config
2) Go to TV Channels or Radio Channels
3) Type text into textbox above channel list
4) List will update and only items that contain the filter text are shown
h4. Additional Information
The instant searching is done in a seperate thread to allow updating without blocking the rest of the ui, for a better understanding here is how the algorithm works
1. User changes filter text (e.g. "T")
2. Filter thread is started for search term ("T")
3. Thread waits for 150ms. If text has changed, abort (new thread has been created for new search term), if not continue.
4. Compare all channels with the search term (case-insensitive) and only add channels that contain the search term
5. Fill ListView with all found channels
The reason for 2) is that the user will usually write a few letters for a single search term, so in case he types "Test", the algorithm wont search for "T" -> "TE" -> "TES" -> "TEST" but rather only for the last "TEST". In case the user takes longer than 200ms to type the next letter, the search will also abort if the user types the next letter in the middle of filtering.
The filtering is done in a background thread so the ui isn't stalled during the process.
h4. Steps to Reproduce
1) Open TV server config
2) Go to TV Channels or Radio Channels
3) Type text into textbox above channel list
4) List will update and only items that contain the filter text are shown
h4. Additional Information
The instant searching is done in a seperate thread to allow updating without blocking the rest of the ui, for a better understanding here is how the algorithm works
1. User changes filter text (e.g. "T")
2. Filter thread is started for search term ("T")
3. Thread waits for 150ms. If text has changed, abort (new thread has been created for new search term), if not continue.
4. Compare all channels with the search term (case-insensitive) and only add channels that contain the search term
5. Fill ListView with all found channels
The reason for 2) is that the user will usually write a few letters for a single search term, so in case he types "Test", the algorithm wont search for "T" -> "TE" -> "TES" -> "TEST" but rather only for the last "TEST". In case the user takes longer than 200ms to type the next letter, the search will also abort if the user types the next letter in the middle of filtering.
Attachments
Issue Links
- links to