From b3d5e06a00ae838c42f1fec5ebe00537e91666d6 Mon Sep 17 00:00:00 2001 From: Justin Garza Date: Sun, 3 Nov 2024 03:06:26 -0500 Subject: [PATCH] :tada: Add effect search --- prefs.js | 27 ++++++++ resources/ui/adw/prefs.ui | 134 ++++++++++++++++++++++++++++++++------ 2 files changed, 140 insertions(+), 21 deletions(-) diff --git a/prefs.js b/prefs.js index 3882c9b..44163b7 100644 --- a/prefs.js +++ b/prefs.js @@ -178,6 +178,29 @@ export default class BurnMyWindowsPreferences extends ExtensionPreferences { }); }); + // search for effect feature + this._searchEntry = this._builder.get_object('search_entry'); + this._searchEntry.connect('search-changed', () => { + const query = this._searchEntry.get_text().toLowerCase(); + + this._effectRows.forEach(er => { + if (query === '') { + er.show(); // Show all effects if query is empty + } else { + // Show or hide each effect based on query match + const showEffect = er.name.toLowerCase().includes(query); + showEffect ? er.show() : er.hide(); + + // TODO + // maybe add a fuzzy search later + /* + const showEffect = utils.fuzzyMatch(er.name.toLowerCase(), + query.toLowerCase()); showEffect ? er.show() : er.hide(); + */ + } + }); + }); + // Then add a preferences group for the effect expander rows. const group = this._builder.get_object('effects-group'); @@ -239,6 +262,10 @@ export default class BurnMyWindowsPreferences extends ExtensionPreferences { row.set_title(effect.getLabel()); } + // this is the fix for the merge issue when an effect doesn't have a discription + row.name = effect.getLabel(); + + // Un-expand any previously expanded effect row. This way we ensure that there // is only one expanded row at any time. if (hasPrefs) { diff --git a/resources/ui/adw/prefs.ui b/resources/ui/adw/prefs.ui index 6af6fca..f49022e 100644 --- a/resources/ui/adw/prefs.ui +++ b/resources/ui/adw/prefs.ui @@ -214,39 +214,131 @@ SPDX-License-Identifier: GPL-3.0-or-later + + - - 20 - 20 - 20 - 20 - Effect Selection - If multiple are selected, one is chosen randomly. - - - - center - + + + + + + + + 5 + 5 - - All + + Effect Selection + If multiple are selected, one is chosen randomly. + + 0 + 0 + 8 + - - - None - - + + + + Search... + + 0 + 1 + 8 + + + + + + + + + + + + + horizontal + true + true + + 8 + 1 + 2 + + + + + + + Enable All + + + + + + Disable All + + + + + + + + + + 10 + 20 + 0 + 0 + + + + + \ No newline at end of file