mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 02:24:16 +02:00
fixes
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
__version__ = '1.0.0'
|
__version__ = '0.6.0'
|
||||||
__app_name__ = 'bauh'
|
__app_name__ = 'bauh'
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|||||||
@@ -107,39 +107,39 @@ class AppsTable(QTableWidget):
|
|||||||
app_v.model.has_history() or \
|
app_v.model.has_history() or \
|
||||||
app_v.model.can_be_downgraded()
|
app_v.model.can_be_downgraded()
|
||||||
|
|
||||||
def show_app_settings(self, app: PackageView):
|
def show_pkg_settings(self, pkgv: PackageView):
|
||||||
menu_row = QMenu()
|
menu_row = QMenu()
|
||||||
|
|
||||||
if app.model.installed:
|
if pkgv.model.installed:
|
||||||
if app.model.can_be_refreshed():
|
if pkgv.model.can_be_refreshed():
|
||||||
action_history = QAction(self.i18n["manage_window.apps_table.row.actions.refresh"])
|
action_history = QAction(self.i18n["manage_window.apps_table.row.actions.refresh"])
|
||||||
action_history.setIcon(QIcon(resource.get_path('img/refresh.svg')))
|
action_history.setIcon(QIcon(resource.get_path('img/refresh.svg')))
|
||||||
|
|
||||||
def refresh():
|
def refresh():
|
||||||
self.window.refresh(app)
|
self.window.refresh(pkgv)
|
||||||
|
|
||||||
action_history.triggered.connect(refresh)
|
action_history.triggered.connect(refresh)
|
||||||
menu_row.addAction(action_history)
|
menu_row.addAction(action_history)
|
||||||
|
|
||||||
if app.model.has_history():
|
if pkgv.model.has_history():
|
||||||
action_history = QAction(self.i18n["manage_window.apps_table.row.actions.history"])
|
action_history = QAction(self.i18n["manage_window.apps_table.row.actions.history"])
|
||||||
action_history.setIcon(QIcon(resource.get_path('img/history.svg')))
|
action_history.setIcon(QIcon(resource.get_path('img/history.svg')))
|
||||||
|
|
||||||
def show_history():
|
def show_history():
|
||||||
self.window.get_app_history(app)
|
self.window.get_app_history(pkgv)
|
||||||
|
|
||||||
action_history.triggered.connect(show_history)
|
action_history.triggered.connect(show_history)
|
||||||
menu_row.addAction(action_history)
|
menu_row.addAction(action_history)
|
||||||
|
|
||||||
if app.model.can_be_downgraded():
|
if pkgv.model.can_be_downgraded():
|
||||||
action_downgrade = QAction(self.i18n["manage_window.apps_table.row.actions.downgrade"])
|
action_downgrade = QAction(self.i18n["manage_window.apps_table.row.actions.downgrade"])
|
||||||
|
|
||||||
def downgrade():
|
def downgrade():
|
||||||
if dialog.ask_confirmation(
|
if dialog.ask_confirmation(
|
||||||
title=self.i18n['manage_window.apps_table.row.actions.downgrade'],
|
title=self.i18n['manage_window.apps_table.row.actions.downgrade'],
|
||||||
body=self._parag(self.i18n['manage_window.apps_table.row.actions.downgrade.popup.body'].format(self._bold(str(app)))),
|
body=self._parag(self.i18n['manage_window.apps_table.row.actions.downgrade.popup.body'].format(self._bold(str(pkgv)))),
|
||||||
locale_keys=self.i18n):
|
locale_keys=self.i18n):
|
||||||
self.window.downgrade_app(app)
|
self.window.downgrade(pkgv)
|
||||||
|
|
||||||
action_downgrade.triggered.connect(downgrade)
|
action_downgrade.triggered.connect(downgrade)
|
||||||
action_downgrade.setIcon(QIcon(resource.get_path('img/downgrade.svg')))
|
action_downgrade.setIcon(QIcon(resource.get_path('img/downgrade.svg')))
|
||||||
@@ -378,7 +378,7 @@ class AppsTable(QTableWidget):
|
|||||||
tb.addWidget(IconButton(icon_path=resource.get_path('img/app_info.svg'), action=get_info, background='#2E68D3'))
|
tb.addWidget(IconButton(icon_path=resource.get_path('img/app_info.svg'), action=get_info, background='#2E68D3'))
|
||||||
|
|
||||||
def handle_click():
|
def handle_click():
|
||||||
self.show_app_settings(app_v)
|
self.show_pkg_settings(app_v)
|
||||||
|
|
||||||
if self.has_any_settings(app_v):
|
if self.has_any_settings(app_v):
|
||||||
bt = IconButton(icon_path=resource.get_path('img/app_settings.svg'), action=handle_click, background='#12ABAB')
|
bt = IconButton(icon_path=resource.get_path('img/app_settings.svg'), action=handle_click, background='#12ABAB')
|
||||||
|
|||||||
@@ -45,5 +45,5 @@ def apply_filters(pkgv: PackageView, filters: dict, info: dict):
|
|||||||
if not hidden and filters['name']:
|
if not hidden and filters['name']:
|
||||||
hidden = filters['name'] not in pkgv.model.base_data.name.lower()
|
hidden = filters['name'] not in pkgv.model.base_data.name.lower()
|
||||||
|
|
||||||
if not hidden and len(info['pkgs_displayed']) < filters['display_limit']:
|
if not hidden and (not filters['display_limit'] or len(info['pkgs_displayed']) < filters['display_limit']):
|
||||||
info['pkgs_displayed'].append(pkgv)
|
info['pkgs_displayed'].append(pkgv)
|
||||||
|
|||||||
@@ -466,6 +466,8 @@ class ManageWindow(QWidget):
|
|||||||
|
|
||||||
def _finish_refresh(self, success: bool):
|
def _finish_refresh(self, success: bool):
|
||||||
self.finish_action()
|
self.finish_action()
|
||||||
|
self.update_bt_upgrade()
|
||||||
|
self._update_type_filters()
|
||||||
|
|
||||||
if success:
|
if success:
|
||||||
self.refresh_apps()
|
self.refresh_apps()
|
||||||
@@ -482,17 +484,6 @@ class ManageWindow(QWidget):
|
|||||||
elif not self.toolbar_substatus.isVisible():
|
elif not self.toolbar_substatus.isVisible():
|
||||||
self.toolbar_substatus.show()
|
self.toolbar_substatus.show()
|
||||||
|
|
||||||
def _filter_pkgs(self): # TODO vai virar o async
|
|
||||||
if self.pkgs_available:
|
|
||||||
pkgs_info = commons.new_pkgs_info()
|
|
||||||
filters = self._gen_filters()
|
|
||||||
|
|
||||||
for pkgv in self.pkgs_available:
|
|
||||||
commons.update_info(pkgv, pkgs_info)
|
|
||||||
commons.apply_filters(pkgv, filters, pkgs_info)
|
|
||||||
|
|
||||||
self._update_table(pkgs_info=pkgs_info)
|
|
||||||
|
|
||||||
def _update_table(self, pkgs_info: dict, signal: bool = False):
|
def _update_table(self, pkgs_info: dict, signal: bool = False):
|
||||||
self.pkgs = pkgs_info['pkgs_displayed']
|
self.pkgs = pkgs_info['pkgs_displayed']
|
||||||
|
|
||||||
@@ -566,13 +557,13 @@ class ManageWindow(QWidget):
|
|||||||
geo.moveCenter(center_point)
|
geo.moveCenter(center_point)
|
||||||
self.move(geo.topLeft())
|
self.move(geo.topLeft())
|
||||||
|
|
||||||
def _gen_filters(self, ignore_updates: bool = False) -> dict:
|
def _gen_filters(self, updates: int = 0, ignore_updates: bool = False) -> dict:
|
||||||
return {
|
return {
|
||||||
'only_apps': self.filter_only_apps,
|
'only_apps': self.filter_only_apps,
|
||||||
'type': self.type_filter,
|
'type': self.type_filter,
|
||||||
'updates': False if ignore_updates else self.filter_updates,
|
'updates': False if ignore_updates else self.filter_updates,
|
||||||
'name': self.input_name_filter.get_text().lower() if self.input_name_filter.get_text() else None,
|
'name': self.input_name_filter.get_text().lower() if self.input_name_filter.get_text() else None,
|
||||||
'display_limit': self.display_limit
|
'display_limit': self.display_limit if updates <= 0 else None
|
||||||
}
|
}
|
||||||
|
|
||||||
def update_pkgs(self, new_pkgs: List[SoftwarePackage], as_installed: bool, types: Set[type] = None, ignore_updates: bool = False):
|
def update_pkgs(self, new_pkgs: List[SoftwarePackage], as_installed: bool, types: Set[type] = None, ignore_updates: bool = False):
|
||||||
@@ -632,41 +623,44 @@ class ManageWindow(QWidget):
|
|||||||
self._update_type_filters(pkgs_info['available_types'])
|
self._update_type_filters(pkgs_info['available_types'])
|
||||||
|
|
||||||
self._update_table(pkgs_info=pkgs_info)
|
self._update_table(pkgs_info=pkgs_info)
|
||||||
self.resize_and_center()
|
|
||||||
|
|
||||||
if new_pkgs:
|
if new_pkgs:
|
||||||
self.thread_verify_models.apps = self.pkgs
|
self.thread_verify_models.apps = self.pkgs
|
||||||
self.thread_verify_models.start()
|
self.thread_verify_models.start()
|
||||||
|
|
||||||
self.ref_bt_installed.setVisible(not as_installed)
|
self.ref_bt_installed.setVisible(not as_installed)
|
||||||
|
self.resize_and_center()
|
||||||
|
|
||||||
def _apply_filters(self, pkgs_info: dict, ignore_updates: bool):
|
def _apply_filters(self, pkgs_info: dict, ignore_updates: bool):
|
||||||
pkgs_info['pkgs_displayed'] = []
|
pkgs_info['pkgs_displayed'] = []
|
||||||
filters = self._gen_filters(ignore_updates=ignore_updates)
|
filters = self._gen_filters(updates=pkgs_info['updates'], 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)
|
||||||
|
|
||||||
def _update_type_filters(self, available_types: dict):
|
def _update_type_filters(self, available_types: dict = None):
|
||||||
|
|
||||||
self.type_filter = self.any_type_filter
|
if available_types is None:
|
||||||
|
self.ref_combo_filter_type.setVisible(self.combo_filter_type.count() > 1)
|
||||||
if available_types and len(available_types) > 1:
|
|
||||||
if self.combo_filter_type.count() > 1:
|
|
||||||
for _ in range(self.combo_filter_type.count() - 1):
|
|
||||||
self.combo_filter_type.removeItem(1)
|
|
||||||
|
|
||||||
for app_type, icon_path in available_types.items():
|
|
||||||
icon = self.cache_type_filter_icons.get(app_type)
|
|
||||||
|
|
||||||
if not icon:
|
|
||||||
icon = load_icon(icon_path, 14)
|
|
||||||
self.cache_type_filter_icons[app_type] = icon
|
|
||||||
|
|
||||||
self.combo_filter_type.addItem(icon, app_type.capitalize(), app_type)
|
|
||||||
|
|
||||||
self.ref_combo_filter_type.setVisible(True)
|
|
||||||
else:
|
else:
|
||||||
self.ref_combo_filter_type.setVisible(False)
|
self.type_filter = self.any_type_filter
|
||||||
|
|
||||||
|
if available_types and len(available_types) > 1:
|
||||||
|
if self.combo_filter_type.count() > 1:
|
||||||
|
for _ in range(self.combo_filter_type.count() - 1):
|
||||||
|
self.combo_filter_type.removeItem(1)
|
||||||
|
|
||||||
|
for app_type, icon_path in available_types.items():
|
||||||
|
icon = self.cache_type_filter_icons.get(app_type)
|
||||||
|
|
||||||
|
if not icon:
|
||||||
|
icon = load_icon(icon_path, 14)
|
||||||
|
self.cache_type_filter_icons[app_type] = icon
|
||||||
|
|
||||||
|
self.combo_filter_type.addItem(icon, app_type.capitalize(), app_type)
|
||||||
|
|
||||||
|
self.ref_combo_filter_type.setVisible(True)
|
||||||
|
else:
|
||||||
|
self.ref_combo_filter_type.setVisible(False)
|
||||||
|
|
||||||
def resize_and_center(self, accept_lower_width: bool = True):
|
def resize_and_center(self, accept_lower_width: bool = True):
|
||||||
new_width = reduce(operator.add, [self.table_apps.columnWidth(i) for i in range(len(self.table_apps.column_names))]) * 1.05
|
new_width = reduce(operator.add, [self.table_apps.columnWidth(i) for i in range(len(self.table_apps.column_names))]) * 1.05
|
||||||
@@ -773,7 +767,12 @@ class ManageWindow(QWidget):
|
|||||||
self.combo_filter_type.setEnabled(True)
|
self.combo_filter_type.setEnabled(True)
|
||||||
self.checkbox_updates.setEnabled(True)
|
self.checkbox_updates.setEnabled(True)
|
||||||
|
|
||||||
def downgrade_app(self, pkgv: PackageView):
|
if self.pkgs:
|
||||||
|
self.ref_input_name_filter.setVisible(True)
|
||||||
|
self.update_bt_upgrade()
|
||||||
|
self._update_type_filters()
|
||||||
|
|
||||||
|
def downgrade(self, pkgv: PackageView):
|
||||||
pwd = None
|
pwd = None
|
||||||
requires_root = self.manager.requires_root('downgrade', pkgv.model)
|
requires_root = self.manager.requires_root('downgrade', pkgv.model)
|
||||||
|
|
||||||
@@ -806,13 +805,11 @@ class ManageWindow(QWidget):
|
|||||||
|
|
||||||
def _finish_get_info(self, app_info: dict):
|
def _finish_get_info(self, app_info: dict):
|
||||||
self.finish_action()
|
self.finish_action()
|
||||||
self.change_update_state(trigger_filters=False)
|
|
||||||
dialog_info = InfoDialog(app=app_info, icon_cache=self.icon_cache, locale_keys=self.i18n, screen_size=self.screen_size)
|
dialog_info = InfoDialog(app=app_info, icon_cache=self.icon_cache, locale_keys=self.i18n, screen_size=self.screen_size)
|
||||||
dialog_info.exec_()
|
dialog_info.exec_()
|
||||||
|
|
||||||
def _finish_get_history(self, res: dict):
|
def _finish_get_history(self, res: dict):
|
||||||
self.finish_action()
|
self.finish_action()
|
||||||
self.change_update_state(trigger_filters=False)
|
|
||||||
|
|
||||||
if res.get('error'):
|
if res.get('error'):
|
||||||
self._handle_console_option(True)
|
self._handle_console_option(True)
|
||||||
|
|||||||
Reference in New Issue
Block a user