Skip to content

Commit 5f1ffbd

Browse files
committed
Fix icons and improve communication
1 parent c1874ab commit 5f1ffbd

File tree

6 files changed

+74
-93
lines changed

6 files changed

+74
-93
lines changed

icons/qappmenu-az.svg

Lines changed: 1 addition & 28 deletions
Loading

icons/qappmenu-qube-az.svg

Lines changed: 13 additions & 13 deletions
Loading

icons/qappmenu-qube-za.svg

Lines changed: 13 additions & 13 deletions
Loading

icons/qappmenu-za.svg

Lines changed: 1 addition & 28 deletions
Loading

qubes_menu/qubes-menu.glade

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@
120120
<object class="GtkBox" id="search_no_box">
121121
<property name="visible">True</property>
122122
<property name="can-focus">False</property>
123+
<property name="hexpand">True</property>
123124
<property name="orientation">vertical</property>
124125
<child>
125126
<object class="GtkLabel" id="search_recent_apps_title">
@@ -141,25 +142,28 @@
141142
<object class="GtkScrolledWindow" id="search_recent_apps_view">
142143
<property name="visible">True</property>
143144
<property name="can-focus">True</property>
145+
<property name="hexpand">True</property>
144146
<property name="hscrollbar-policy">never</property>
145147
<property name="shadow-type">in</property>
146148
<property name="propagate-natural-height">True</property>
147149
<child>
148150
<object class="GtkViewport">
149151
<property name="visible">True</property>
150152
<property name="can-focus">False</property>
153+
<property name="hexpand">True</property>
151154
<child>
152155
<object class="GtkListBox" id="search_recent_apps_list">
153156
<property name="visible">True</property>
154157
<property name="can-focus">False</property>
155-
<property name="halign">start</property>
156158
<property name="valign">start</property>
159+
<property name="hexpand">True</property>
157160
<child type="placeholder">
158161
<object class="GtkLabel">
159162
<property name="visible">True</property>
160163
<property name="can-focus">False</property>
161164
<property name="halign">start</property>
162165
<property name="valign">start</property>
166+
<property name="hexpand">True</property>
163167
<property name="label" translatable="yes">No recent applications</property>
164168
<style>
165169
<class name="placeholder"/>
@@ -211,18 +215,20 @@
211215
<object class="GtkViewport">
212216
<property name="visible">True</property>
213217
<property name="can-focus">False</property>
218+
<property name="hexpand">True</property>
214219
<child>
215220
<object class="GtkListBox" id="search_recent_list">
216221
<property name="visible">True</property>
217222
<property name="can-focus">False</property>
218-
<property name="halign">start</property>
219223
<property name="valign">start</property>
224+
<property name="hexpand">True</property>
220225
<child type="placeholder">
221226
<object class="GtkLabel">
222227
<property name="visible">True</property>
223228
<property name="can-focus">False</property>
224229
<property name="halign">start</property>
225230
<property name="valign">start</property>
231+
<property name="hexpand">True</property>
226232
<property name="label" translatable="yes">No recent searches</property>
227233
<style>
228234
<class name="placeholder"/>

qubes_menu/search_page.py

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,23 @@ class RecentSearchManager:
5858
SEARCH_VALUES_TO_KEEP = 10
5959

6060
def __init__(
61-
self, recent_list: Gtk.ListBox, search_box: Gtk.SearchEntry, enabled: bool
61+
self,
62+
recent_list: Gtk.ListBox,
63+
search_box: Gtk.SearchEntry,
64+
enabled: bool,
65+
other_widgets: list[Gtk.ListBox],
6266
):
6367
self.recent_enabled = enabled
6468
self.recent_list_box = recent_list
6569
self.search_box = search_box
6670
self.recent_searches: Dict[str, RecentSearchRow] = {}
71+
self.other_widgets = other_widgets
6772
self.recent_list_box.connect("row-activated", self._row_clicked)
73+
self.recent_list_box.connect("row-selected", self._deselect_others)
74+
75+
def _deselect_others(self, *_args):
76+
for widget in self.other_widgets:
77+
widget.select_row(None)
6878

6979
def set_recent_enabled(self, state):
7080
"""Set whether recent searches should be stored or not."""
@@ -112,6 +122,7 @@ def add_new_recent_search(self, text: str):
112122
self.recent_searches[text] = row
113123

114124
def _row_clicked(self, _widget, row: RecentSearchRow):
125+
self._deselect_others()
115126
self.search_box.set_text(row.search_text)
116127

117128

@@ -126,16 +137,25 @@ def __init__(
126137
desktop_file_manager: DesktopFileManager,
127138
vm_manager: VMManager,
128139
enabled: bool,
140+
other_widgets: list[Gtk.ListBox],
129141
):
130142
self.recent_enabled = enabled
131143
self.recent_list_box = recent_list
132144
self.desktop_file_manager = desktop_file_manager
133145
self.vm_manager = vm_manager
134146
self.recent_apps: list[SearchAppEntry] = []
135147
self.recent_list_box.connect("row-activated", self._row_clicked)
136-
self.recent_list_box.get_toplevel().get_application().connect(
137-
"app-started", self.add_new_recent_app
138-
)
148+
application = self.recent_list_box.get_toplevel().get_application()
149+
if application:
150+
# this is a workaround for tests: without Gtk.Application.run,
151+
# this object does not exist
152+
application.connect("app-started", self.add_new_recent_app)
153+
self.other_widgets = other_widgets
154+
self.recent_list_box.connect("row-selected", self._deselect_others)
155+
156+
def _deselect_others(self, *_args):
157+
for widget in self.other_widgets:
158+
widget.select_row(None)
139159

140160
def set_recent_enabled(self, state):
141161
"""Set whether recent apps should be stored or not."""
@@ -183,8 +203,8 @@ def add_new_recent_app(self, _widget, app_path: str):
183203
del self.recent_apps[last_row]
184204
self.recent_list_box.remove(last_row)
185205

186-
@staticmethod
187-
def _row_clicked(_widget, row: SearchAppEntry):
206+
def _row_clicked(self, _widget, row: SearchAppEntry):
207+
self._deselect_others()
188208
if hasattr(row, "app_info"):
189209
row.run_app(row.app_info.vm)
190210

@@ -250,13 +270,17 @@ def __init__(
250270
self.recent_box: Gtk.Box = builder.get_object("search_no_box")
251271

252272
self.recent_search_manager = RecentSearchManager(
253-
self.recent_list, self.search_entry, self.recent_enabled
273+
self.recent_list,
274+
self.search_entry,
275+
self.recent_enabled,
276+
[self.recent_app_list],
254277
)
255278
self.recent_apps_manager = RecentAppsManager(
256279
self.recent_app_list,
257280
self.desktop_file_manager,
258281
self.vm_manager,
259282
self.recent_enabled,
283+
[self.recent_list],
260284
)
261285

262286
self.vm_list.connect("row-selected", self._selection_changed)
@@ -436,8 +460,13 @@ def enable_recent(self, state: bool):
436460
search_label.set_visible(True)
437461

438462
if state:
439-
app_label.set_text("No recent applications")
440-
search_label.set_text("No recent searches")
463+
app_label.set_text(
464+
"No recent applications. \nUse Menu Settings to "
465+
"disable recent applications."
466+
)
467+
search_label.set_text(
468+
"No recent searches. \nUse Menu Settings to disable recent applications."
469+
)
441470
else:
442471
app_label.set_text(
443472
"Recent application saving disabled.\nUse Menu Settings to enable."

0 commit comments

Comments
 (0)