mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-08 23:24:15 +02:00
fix
This commit is contained in:
@@ -22,7 +22,7 @@ def update_info(pkgv: PackageView, pkgs_info: dict):
|
|||||||
pkgs_info['napps_count'] += 1
|
pkgs_info['napps_count'] += 1
|
||||||
|
|
||||||
if pkgv.model.update:
|
if pkgv.model.update:
|
||||||
if pkgv.model.is_application:
|
if pkgv.model.is_application():
|
||||||
pkgs_info['app_updates'] += 1
|
pkgs_info['app_updates'] += 1
|
||||||
else:
|
else:
|
||||||
pkgs_info['napp_updates'] += 1
|
pkgs_info['napp_updates'] += 1
|
||||||
|
|||||||
@@ -288,9 +288,6 @@ class ManageWindow(QWidget):
|
|||||||
# if self.input_name_filter.isVisible():
|
# if self.input_name_filter.isVisible():
|
||||||
# self.input_name_filter.setReadOnly(False)
|
# self.input_name_filter.setReadOnly(False)
|
||||||
|
|
||||||
def _filter_by_name(self, words: str):
|
|
||||||
self._filter_pkgs()
|
|
||||||
|
|
||||||
def _bind_async_action(self, action: AsyncAction, finished_call, only_finished: bool = False) -> AsyncAction:
|
def _bind_async_action(self, action: AsyncAction, finished_call, only_finished: bool = False) -> AsyncAction:
|
||||||
action.signal_finished.connect(finished_call)
|
action.signal_finished.connect(finished_call)
|
||||||
|
|
||||||
@@ -330,8 +327,9 @@ class ManageWindow(QWidget):
|
|||||||
self.finish_action()
|
self.finish_action()
|
||||||
self.ref_checkbox_only_apps.setVisible(True)
|
self.ref_checkbox_only_apps.setVisible(True)
|
||||||
self.ref_bt_upgrade.setVisible(True)
|
self.ref_bt_upgrade.setVisible(True)
|
||||||
self.update_pkgs(new_pkgs=None, as_installed=True)
|
|
||||||
self.input_search.setText('')
|
self.input_search.setText('')
|
||||||
|
self.input_name_filter.setText('')
|
||||||
|
self.update_pkgs(new_pkgs=None, as_installed=True)
|
||||||
|
|
||||||
def _show_about(self):
|
def _show_about(self):
|
||||||
if self.dialog_about is None:
|
if self.dialog_about is None:
|
||||||
@@ -550,13 +548,17 @@ class ManageWindow(QWidget):
|
|||||||
if not self.ref_checkbox_updates.isVisible():
|
if not self.ref_checkbox_updates.isVisible():
|
||||||
self.ref_checkbox_updates.setVisible(True)
|
self.ref_checkbox_updates.setVisible(True)
|
||||||
|
|
||||||
if not self.checkbox_updates.isChecked():
|
if not self.filter_updates:
|
||||||
self._change_checkbox(self.checkbox_updates, True, trigger_filters)
|
self._change_checkbox(self.checkbox_updates, True, trigger_filters)
|
||||||
|
self.filter_updates = True
|
||||||
|
|
||||||
if pkgs_info['napp_updates'] > 0 and self.checkbox_only_apps.isChecked():
|
if pkgs_info['napp_updates'] > 0 and self.filter_only_apps:
|
||||||
self._change_checkbox(self.checkbox_only_apps, False, trigger_filters)
|
self._change_checkbox(self.checkbox_only_apps, False, trigger_filters)
|
||||||
|
self.filter_only_apps = False
|
||||||
else:
|
else:
|
||||||
self._change_checkbox(self.checkbox_updates, False, trigger_filters)
|
self._change_checkbox(self.checkbox_updates, False, trigger_filters)
|
||||||
|
self.filter_updates = False
|
||||||
|
|
||||||
self.ref_checkbox_updates.setVisible(False)
|
self.ref_checkbox_updates.setVisible(False)
|
||||||
self.label_updates.setPixmap(QPixmap())
|
self.label_updates.setPixmap(QPixmap())
|
||||||
|
|
||||||
@@ -576,19 +578,19 @@ class ManageWindow(QWidget):
|
|||||||
geo.moveCenter(center_point)
|
geo.moveCenter(center_point)
|
||||||
self.move(geo.topLeft())
|
self.move(geo.topLeft())
|
||||||
|
|
||||||
def _gen_filters(self) -> dict:
|
def _gen_filters(self, ignore_updates: bool = False) -> dict:
|
||||||
return {
|
return {
|
||||||
'only_apps': self.checkbox_only_apps.isChecked(),
|
'only_apps': self.filter_only_apps,
|
||||||
'type': self.type_filter,
|
'type': self.type_filter,
|
||||||
'updates': self.checkbox_updates.isChecked(),
|
'updates': False if ignore_updates else self.filter_updates,
|
||||||
'name_starts_with': self.input_name_filter.text().strip().lower() if self.input_name_filter.text().strip() else None,
|
'name_starts_with': self.input_name_filter.text().strip().lower() if self.input_name_filter.text().strip() else None,
|
||||||
'display_limit': self.display_limit
|
'display_limit': self.display_limit
|
||||||
}
|
}
|
||||||
|
|
||||||
def update_pkgs(self, new_pkgs: List[SoftwarePackage], as_installed: bool, types: Set[type] = None):
|
def update_pkgs(self, new_pkgs: List[SoftwarePackage], as_installed: bool, types: Set[type] = None, ignore_updates: bool = False):
|
||||||
|
|
||||||
pkgs_info = commons.new_pkgs_info()
|
pkgs_info = commons.new_pkgs_info()
|
||||||
filters = self._gen_filters()
|
filters = self._gen_filters(ignore_updates)
|
||||||
|
|
||||||
if new_pkgs is not None:
|
if new_pkgs is not None:
|
||||||
old_installed = None
|
old_installed = None
|
||||||
@@ -619,14 +621,14 @@ class ManageWindow(QWidget):
|
|||||||
self.thread_suggestions.start()
|
self.thread_suggestions.start()
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
self._change_checkbox(self.checkbox_only_apps, False, False) # TODO validate
|
self._change_checkbox(self.checkbox_only_apps, checked=False, trigger=False) # TODO validate
|
||||||
self.checkbox_only_apps.setCheckable(False)
|
self.checkbox_only_apps.setCheckable(False)
|
||||||
else:
|
else:
|
||||||
self.checkbox_only_apps.setCheckable(True)
|
self.checkbox_only_apps.setCheckable(True)
|
||||||
self._change_checkbox(self.checkbox_only_apps, True, False) # TODO validate
|
self._change_checkbox(self.checkbox_only_apps, checked=True, trigger=False) # TODO validate
|
||||||
|
|
||||||
self.change_update_state(pkgs_info=pkgs_info, trigger_filters=False)
|
self.change_update_state(pkgs_info=pkgs_info, trigger_filters=False)
|
||||||
self._apply_filter(pkgs_info)
|
self._apply_filters(pkgs_info, ignore_updates=ignore_updates)
|
||||||
self.change_update_state(pkgs_info=pkgs_info, trigger_filters=False)
|
self.change_update_state(pkgs_info=pkgs_info, trigger_filters=False)
|
||||||
|
|
||||||
self.pkgs_available = pkgs_info['pkgs']
|
self.pkgs_available = pkgs_info['pkgs']
|
||||||
@@ -650,9 +652,9 @@ class ManageWindow(QWidget):
|
|||||||
|
|
||||||
self.ref_bt_installed.setVisible(not as_installed)
|
self.ref_bt_installed.setVisible(not as_installed)
|
||||||
|
|
||||||
def _apply_filter(self, pkgs_info: dict):
|
def _apply_filters(self, pkgs_info: dict, ignore_updates: bool):
|
||||||
pkgs_info['pkgs_displayed'] = []
|
pkgs_info['pkgs_displayed'] = []
|
||||||
filters = self._gen_filters()
|
filters = self._gen_filters(ignore_updates=ignore_updates)
|
||||||
for pkgv in pkgs_info['pkgs']:
|
for pkgv in pkgs_info['pkgs']:
|
||||||
commons.apply_filters(pkgv, filters, pkgs_info)
|
commons.apply_filters(pkgv, filters, pkgs_info)
|
||||||
|
|
||||||
@@ -840,9 +842,7 @@ class ManageWindow(QWidget):
|
|||||||
self._begin_action('{}{}'.format(self.locale_keys['manage_window.status.searching'], '"{}"'.format(word) if word else ''), clear_filters=True)
|
self._begin_action('{}{}'.format(self.locale_keys['manage_window.status.searching'], '"{}"'.format(word) if word else ''), clear_filters=True)
|
||||||
|
|
||||||
def search(self):
|
def search(self):
|
||||||
|
|
||||||
word = self.input_search.text().strip()
|
word = self.input_search.text().strip()
|
||||||
|
|
||||||
if word:
|
if word:
|
||||||
self._begin_search(word)
|
self._begin_search(word)
|
||||||
self.thread_search.word = word
|
self.thread_search.word = word
|
||||||
@@ -851,7 +851,7 @@ class ManageWindow(QWidget):
|
|||||||
def _finish_search(self, pkgs_found: List[SoftwarePackage]):
|
def _finish_search(self, pkgs_found: List[SoftwarePackage]):
|
||||||
self.finish_action()
|
self.finish_action()
|
||||||
self.ref_bt_upgrade.setVisible(False)
|
self.ref_bt_upgrade.setVisible(False)
|
||||||
self.update_pkgs(pkgs_found, as_installed=False)
|
self.update_pkgs(pkgs_found, as_installed=False, ignore_updates=True)
|
||||||
|
|
||||||
def install(self, pkg: PackageView):
|
def install(self, pkg: PackageView):
|
||||||
pwd = None
|
pwd = None
|
||||||
|
|||||||
Reference in New Issue
Block a user