﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
20573	[WIP Patch] Search preferences dialog	Bjoeni	Bjoeni	"I think it would be a good idea to allow users searching the (regular, not advanced) preferences.
It got much better with #7548, but I just think that there are a lot of preferences and at this point a search function could be helpful.

The issue is that the preferences are not unified but each panel is created separately (including by plugins). And I don't think that is going to change anytime soon (or ever).

So **I attached a proof of concept** (WIP patch) that does the following:
- Go through the panels and extract searchable items (build the panels if that didn't happen yet)
- Put them in a structured SearchIndex based on placement in Containers and Constraints (inset, location in grid, EOL markers)
- Allow components to override the default item extraction (or disallow searching) by implementing the interface `ISearchableComponent`. I implemented it for the following prefs:
 - SearchPanel (disallow searching)
 - Advanced Prefs (disallow searching)
 - Keyboard Shortcuts (only searching the actions, not the corresponding keys)
- Output the resulting searchIndex to a file called `searchableSettings.txt` on the desktop (this is just for debugging, not intended for caching. **I attached a searchableSettings.txt example to this ticket.** For anyone applying the patch, this file is printed when you enter anything in the searchbox.

I would suggest searching by going through the index and printing all matching items including its parents, still not sure how exactly how the UI could look.
When clicking on an item the user should be taken to the corresponding tab and the component could be highlighted and/or scrolled to.

I'm also not yet sure how to handle the preferences that load external content, e.g. plugins/imagery/validator. Currently they are only searched when they have previously been loaded by the user, otherwise not. That should probably change as it kind of defeats the purpose or at least limits the search.

Any ideas/suggestions/comments?"	enhancement	assigned	normal		Core			preferences search	
