mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-09 13:14:15 +02:00
[fix][ui] refresh button being displayed on the search view if a package with an update is uninstalled
This commit is contained in:
@@ -17,15 +17,21 @@ def get_type_label(type_: str, gem: str, i18n: I18n) -> str:
|
|||||||
class PackageView:
|
class PackageView:
|
||||||
|
|
||||||
def __init__(self, model: SoftwarePackage, i18n: I18n):
|
def __init__(self, model: SoftwarePackage, i18n: I18n):
|
||||||
self.model = model
|
self.model = None
|
||||||
self.update_checked = model.update
|
self.update_checked = None
|
||||||
self.status = PackageViewStatus.LOADING if model.status == PackageStatus.LOADING_DATA else PackageViewStatus.READY
|
self.status = None
|
||||||
|
self.update_model(model)
|
||||||
self.table_index = -1
|
self.table_index = -1
|
||||||
self.i18n = i18n
|
self.i18n = i18n
|
||||||
|
|
||||||
def get_type_label(self) -> str:
|
def get_type_label(self) -> str:
|
||||||
return get_type_label(self.model.get_type(), self.model.gem_name, self.i18n)
|
return get_type_label(self.model.get_type(), self.model.gem_name, self.i18n)
|
||||||
|
|
||||||
|
def update_model(self, model: SoftwarePackage):
|
||||||
|
self.model = model
|
||||||
|
self.update_checked = model.update
|
||||||
|
self.status = PackageViewStatus.LOADING if model.status == PackageStatus.LOADING_DATA else PackageViewStatus.READY
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return '{} ( {} )'.format(self.model.name, self.get_type_label())
|
return '{} ( {} )'.format(self.model.name, self.get_type_label())
|
||||||
|
|
||||||
|
|||||||
@@ -667,13 +667,13 @@ class ManageWindow(QWidget):
|
|||||||
for model in res['removed']:
|
for model in res['removed']:
|
||||||
if pkgv.model == model:
|
if pkgv.model == model:
|
||||||
if list_idx == 0: # updates the model
|
if list_idx == 0: # updates the model
|
||||||
pkgv.model = model
|
pkgv.update_model(model)
|
||||||
|
|
||||||
if not self.search_performed or list_idx == 2: # always from the installed packages
|
if not self.search_performed or list_idx == 2: # always from the installed packages
|
||||||
removed_idxs.append(pkgv_idx)
|
removed_idxs.append(pkgv_idx)
|
||||||
|
|
||||||
if self.search_performed and list_idx == 1: # only for displayed
|
if self.search_performed and list_idx == 1: # only for displayed
|
||||||
self.table_apps.update_package(pkgv)
|
self.table_apps.update_package(pkgv, change_update_col=True)
|
||||||
|
|
||||||
break # as the model has been found, stops the loop
|
break # as the model has been found, stops the loop
|
||||||
|
|
||||||
@@ -690,6 +690,8 @@ class ManageWindow(QWidget):
|
|||||||
for new_idx, pkgv in enumerate(self.pkgs): # updating the package indexes
|
for new_idx, pkgv in enumerate(self.pkgs): # updating the package indexes
|
||||||
pkgv.table_index = new_idx
|
pkgv.table_index = new_idx
|
||||||
|
|
||||||
|
self.update_bt_upgrade()
|
||||||
|
|
||||||
self.update_custom_actions()
|
self.update_custom_actions()
|
||||||
|
|
||||||
notify_tray()
|
notify_tray()
|
||||||
@@ -1243,10 +1245,10 @@ class ManageWindow(QWidget):
|
|||||||
if models_updated:
|
if models_updated:
|
||||||
installed_available_idxs = []
|
installed_available_idxs = []
|
||||||
for idx, available in enumerate(self.pkgs_available):
|
for idx, available in enumerate(self.pkgs_available):
|
||||||
for pidx, p in enumerate(models_updated):
|
for pidx, model in enumerate(models_updated):
|
||||||
if available.model == p:
|
if available.model == model:
|
||||||
available.model = p
|
available.update_model(model)
|
||||||
if p.installed:
|
if model.installed:
|
||||||
installed_available_idxs.append((idx, pidx, available))
|
installed_available_idxs.append((idx, pidx, available))
|
||||||
|
|
||||||
# re-indexing all installed so they always will be be displayed when no filters are applied
|
# re-indexing all installed so they always will be be displayed when no filters are applied
|
||||||
@@ -1263,16 +1265,18 @@ class ManageWindow(QWidget):
|
|||||||
|
|
||||||
# updating the respective table rows:
|
# updating the respective table rows:
|
||||||
for displayed in self.pkgs:
|
for displayed in self.pkgs:
|
||||||
for p in models_updated:
|
for model in models_updated:
|
||||||
if displayed.model == p:
|
if displayed.model == model:
|
||||||
self.table_apps.update_package(displayed)
|
self.table_apps.update_package(displayed, change_update_col=True)
|
||||||
|
|
||||||
|
self.update_bt_upgrade()
|
||||||
|
|
||||||
# updating installed packages
|
# updating installed packages
|
||||||
if res['removed'] and self.pkgs_installed:
|
if res['removed'] and self.pkgs_installed:
|
||||||
to_remove = []
|
to_remove = []
|
||||||
for idx, p in enumerate(self.pkgs_installed):
|
for idx, model in enumerate(self.pkgs_installed):
|
||||||
for model in res['removed']:
|
for model in res['removed']:
|
||||||
if p.model == model:
|
if model.model == model:
|
||||||
to_remove.append(idx)
|
to_remove.append(idx)
|
||||||
|
|
||||||
if to_remove:
|
if to_remove:
|
||||||
@@ -1282,8 +1286,8 @@ class ManageWindow(QWidget):
|
|||||||
del self.pkgs_installed[idx - decrement]
|
del self.pkgs_installed[idx - decrement]
|
||||||
|
|
||||||
if res['installed']:
|
if res['installed']:
|
||||||
for idx, p in enumerate(res['installed']):
|
for idx, model in enumerate(res['installed']):
|
||||||
self.pkgs_installed.insert(idx, PackageView(p, self.i18n))
|
self.pkgs_installed.insert(idx, PackageView(model, self.i18n))
|
||||||
|
|
||||||
self.ref_checkbox_only_apps.setVisible(False)
|
self.ref_checkbox_only_apps.setVisible(False)
|
||||||
self.update_custom_actions()
|
self.update_custom_actions()
|
||||||
|
|||||||
Reference in New Issue
Block a user