Skip to content

Commit d019981

Browse files
committed
Add Application search to qube settings
resolves: QubesOS/qubes-issues#10276
1 parent 064e343 commit d019981

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

qubesmanager/settings.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,8 @@ def __init__(
261261
self.app_list_manager = AppmenuSelectManager(self.vm, self.app_list)
262262
self.refresh_apps_button.clicked.connect(self.refresh_apps_button_pressed)
263263

264+
self.app_search.textChanged.connect(self.filter_apps)
265+
264266
# Enable Drag & Drop between between two panels
265267
# ToDo: Disable D&D between multiple instances of qubes-vm-settings
266268
# - by overriding QListWidget.dragMoveEvent event
@@ -1669,6 +1671,22 @@ def refresh_apps_button_pressed(self):
16691671
self.threads_list.append(thread)
16701672
thread.start()
16711673

1674+
def filter_apps(self):
1675+
for i in range(self.app_list.available_list.count()):
1676+
found = re.search(
1677+
self.app_search.text(),
1678+
self.app_list.available_list.item(i).text(),
1679+
re.IGNORECASE
1680+
)
1681+
self.app_list.available_list.item(i).setHidden(False if found else True)
1682+
for i in range(self.app_list.selected_list.count()):
1683+
found = re.search(
1684+
self.app_search.text(),
1685+
self.app_list.selected_list.item(i).text(),
1686+
re.IGNORECASE
1687+
)
1688+
self.app_list.selected_list.item(i).setHidden(False if found else True)
1689+
16721690
def refresh_finished(self):
16731691
self.app_list_manager = AppmenuSelectManager(self.vm, self.app_list)
16741692
self.refresh_apps_button.setEnabled(True)

ui/settingsdlg.ui

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1883,6 +1883,20 @@ The qube must be running to disable seamless mode. This setting is not persisten
18831883
</widget>
18841884
</item>
18851885
<item row="1" column="0">
1886+
<layout class="QHBoxLayout" name="horizontalLayoutAppSearch">
1887+
<item>
1888+
<widget class="QLabel" name="labelAppSearch">
1889+
<property name="text">
1890+
<string>Search for application:</string>
1891+
</property>
1892+
</widget>
1893+
</item>
1894+
<item>
1895+
<widget class="QLineEdit" name="app_search"/>
1896+
</item>
1897+
</layout>
1898+
</item>
1899+
<item row="2" column="0">
18861900
<layout class="QVBoxLayout" name="apps_layout"/>
18871901
</item>
18881902
</layout>

0 commit comments

Comments
 (0)