Skip to content

Commit de6078b

Browse files
committed
update progress screens
1 parent 9b9596f commit de6078b

2 files changed

Lines changed: 55 additions & 20 deletions

File tree

resources/mintinstall.glade

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,14 @@
174174
<property name="orientation">vertical</property>
175175
<property name="spacing">10</property>
176176
<child>
177-
<object class="GtkImage">
177+
<object class="GtkLabel">
178178
<property name="visible">True</property>
179179
<property name="can-focus">False</property>
180-
<property name="icon-name">image-loading-symbolic</property>
181-
<property name="icon_size">6</property>
180+
<property name="label" translatable="yes">Loading, please wait</property>
181+
<attributes>
182+
<attribute name="weight" value="bold"/>
183+
<attribute name="scale" value="1.2"/>
184+
</attributes>
182185
</object>
183186
<packing>
184187
<property name="expand">False</property>
@@ -187,14 +190,13 @@
187190
</packing>
188191
</child>
189192
<child>
190-
<object class="GtkLabel">
193+
<object class="GtkSpinner">
191194
<property name="visible">True</property>
195+
<property name="active">True</property>
192196
<property name="can-focus">False</property>
193-
<property name="label" translatable="yes">Loading, please wait</property>
194-
<attributes>
195-
<attribute name="weight" value="bold"/>
196-
<attribute name="scale" value="1.2"/>
197-
</attributes>
197+
<property name="height-request">50</property>
198+
<property name="width-request">50</property>
199+
<property name="halign">center</property>
198200
</object>
199201
<packing>
200202
<property name="expand">False</property>
@@ -1957,11 +1959,13 @@
19571959
</packing>
19581960
</child>
19591961
<child>
1960-
<object class="GtkSpinner" id="loading_spinner1">
1961-
<property name="height-request">50</property>
1962-
<property name="visible">True</property>
1962+
<object class="GtkBox" id="search_progress_bar">
1963+
<property name="width-request">200</property>
19631964
<property name="can-focus">False</property>
1964-
<property name="active">True</property>
1965+
<property name="height-request">12</property>
1966+
<property name="visible">True</property>
1967+
<property name="halign">center</property>
1968+
<property name="margin-top">10</property>
19651969
</object>
19661970
<packing>
19671971
<property name="expand">False</property>

usr/lib/linuxmint/mintinstall/mintinstall.py

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -244,9 +244,9 @@ def installer_progress(self, pkginfo, progress, estimating, status_text=None):
244244
self.spinner.show()
245245

246246
class SaneProgressBar(Gtk.DrawingArea):
247-
def __init__(self):
248-
super(Gtk.DrawingArea, self).__init__(width_request=-1,
249-
height_request=8,
247+
def __init__(self, width=-1, height=8):
248+
super(Gtk.DrawingArea, self).__init__(width_request=width,
249+
height_request=height,
250250
margin_top=1, #??? to align better with the stars and count
251251
hexpand=True,
252252
valign=Gtk.Align.CENTER,
@@ -692,7 +692,7 @@ def do_activate(self):
692692

693693
def _init_installer_thread(self):
694694
if self.installer.init_sync():
695-
GLib.idle_add(self.on_installer_ready)
695+
self.on_installer_ready()
696696
else:
697697
self.page_stack.set_visible_child_name(self.PAGE_GENERATING_CACHE)
698698
self.installer.init(self.on_installer_ready)
@@ -860,6 +860,12 @@ def create_window(self, starting_page):
860860
self.progress_box.pack_start(self.progress_label, False, False, 0)
861861
self.progress_label.show()
862862

863+
# self.progress_bar = self.builder.get_object('search_progress_bar')
864+
box_searching = self.builder.get_object('search_progress_bar')
865+
self.progress_bar = SaneProgressBar(-1, 12)
866+
box_searching.pack_start(self.progress_bar, True, True, 0)
867+
self.progress_bar.show()
868+
863869
box_reviews = self.builder.get_object("box_reviews")
864870

865871
def list_header_func(row, before, user_data=None):
@@ -1060,7 +1066,10 @@ def on_appstream_changed(self, installer):
10601066

10611067

10621068
def on_installer_ready(self):
1063-
self.page_stack.set_visible_child_name(self.PAGE_LOADING)
1069+
def set_loading_page():
1070+
self.page_stack.set_visible_child_name(self.PAGE_LOADING)
1071+
GLib.idle_add(set_loading_page)
1072+
10641073
try:
10651074
self.process_matching_packages()
10661075

@@ -2406,11 +2415,15 @@ def show_search_results(self, terms):
24062415
hidden_packages = set()
24072416
allow_unverified_flatpaks = self.settings.get_boolean(prefs.ALLOW_UNVERIFIED_FLATPAKS)
24082417

2409-
def idle_search_one_package(pkginfos):
2418+
list_size = len(listing)
2419+
self.search_progress = 0
2420+
2421+
def idle_search_one_package(pkginfos, list_size):
24102422
try:
24112423
pkginfo = next(pkginfos)
24122424
except StopIteration:
24132425
self.search_idle_timer = 0
2426+
self.search_progress = 0
24142427

24152428
if package_type_preference == prefs.PACKAGE_TYPE_PREFERENCE_APT:
24162429
results = [p for p in searched_packages if not (p.pkg_hash.startswith("f") and p.name in hidden_packages)]
@@ -2421,6 +2434,12 @@ def idle_search_one_package(pkginfos):
24212434

24222435
GLib.idle_add(self.on_search_results_complete, results)
24232436
return False
2437+
except RuntimeError: # dictionary changed size during iteration
2438+
self.search_idle_timer = 0
2439+
self.search_progress = 0
2440+
2441+
self.go_back_action()
2442+
return False
24242443

24252444
flatpak = pkginfo.pkg_hash.startswith("f")
24262445
is_match = False
@@ -2468,9 +2487,21 @@ def idle_search_one_package(pkginfos):
24682487
elif package_type_preference == prefs.PACKAGE_TYPE_PREFERENCE_FLATPAK and flatpak:
24692488
hidden_packages.add(DEB_EQUIVS.get(pkginfo.name))
24702489

2490+
self.search_progress = self.search_progress + 1
2491+
self.update_progress(self.search_progress / list_size)
2492+
24712493
return True
24722494

2473-
self.search_idle_timer = GLib.idle_add(idle_search_one_package, iter(listing))
2495+
self.search_idle_timer = GLib.idle_add(idle_search_one_package, iter(listing), list_size)
2496+
2497+
def update_progress(self, progress):
2498+
progress = max(0.0, min(1.0, progress))
2499+
2500+
def update_progress_ui():
2501+
self.progress_bar.set_fraction(progress)
2502+
return False
2503+
2504+
GLib.idle_add(update_progress_ui)
24742505

24752506
def on_search_results_complete(self, results):
24762507
self.page_stack.set_visible_child_name(self.PAGE_LIST)

0 commit comments

Comments
 (0)