improvements

This commit is contained in:
Vinicius Moreira
2019-09-02 18:25:58 -03:00
parent ca6723b7e0
commit 2f6c000e9b
8 changed files with 112 additions and 109 deletions

View File

@@ -41,7 +41,7 @@ app.setApplicationName(__app_name__)
app.setApplicationVersion(__version__)
app.setWindowIcon(QIcon(resource.get_path('img/logo.svg')))
manage_window = ManageWindow(locale_keys=i18n,
manage_window = ManageWindow(i18n=i18n,
manager=manager,
icon_cache=icon_cache,
disk_cache=args.disk_cache,

View File

@@ -26,6 +26,7 @@ manage_window.status.searching=Searching
manage_window.status.installing=Installing
manage_window.status.refreshing_app=Refreshing
manage_window.status.running_app=Launching {}
manage_window.status.filtering=Filtering
manage_window.bt.refresh.text=Refresh
manage_window.bt.refresh.tooltip=Reload the data about installed applications
manage_window.bt.upgrade.text=Upgrade

View File

@@ -28,6 +28,7 @@ manage_window.status.searching=Buscando
manage_window.status.installing=Instalando
manage_window.status.refreshing_app=Actualizando
manage_window.status.running_app=Ejecutando {}
manage_window.status.filtering=Filtrando
manage_window.bt.refresh.text=Recargar
manage_window.bt.refresh.tooltip=Recarga los datos sobre los aplicativos instalados
manage_window.bt.upgrade.text=Actualizar

View File

@@ -28,6 +28,7 @@ manage_window.status.searching=Buscando
manage_window.status.installing=Instalando
manage_window.status.refreshing_app=Atualizando
manage_window.status.running_app=Iniciando {}
manage_window.status.filtering=Filtrando
manage_window.bt.refresh.text=Recarregar
manage_window.bt.refresh.tooltip=Recarrega os dados sobre os aplicativos instalados
manage_window.bt.upgrade.text=Atualizar

View File

@@ -41,7 +41,7 @@ class IconButton(QWidget):
class UpdateToggleButton(QWidget):
def __init__(self, app_view: PackageView, root: QWidget, locale_keys: dict, checked: bool = True, clickable: bool = True):
def __init__(self, app_view: PackageView, root: QWidget, i18n: dict, checked: bool = True, clickable: bool = True):
super(UpdateToggleButton, self).__init__()
self.app_view = app_view
@@ -63,7 +63,7 @@ class UpdateToggleButton(QWidget):
('QToolButton:checked { background: gray }' if clickable else ''))
layout.addWidget(self.bt)
self.setToolTip(locale_keys['manage_window.apps_table.upgrade_toggle.tooltip'])
self.setToolTip(i18n['manage_window.apps_table.upgrade_toggle.tooltip'])
if not checked:
self.bt.click()
@@ -100,6 +100,7 @@ class AppsTable(QTableWidget):
self.lock_async_data = Lock()
self.setRowHeight(80, 80)
self.cache_type_icon = {}
self.i18n = self.window.i18n
def has_any_settings(self, app_v: PackageView):
return app_v.model.can_be_refreshed() or \
@@ -111,7 +112,7 @@ class AppsTable(QTableWidget):
if app.model.installed:
if app.model.can_be_refreshed():
action_history = QAction(self.window.locale_keys["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')))
def refresh():
@@ -121,7 +122,7 @@ class AppsTable(QTableWidget):
menu_row.addAction(action_history)
if app.model.has_history():
action_history = QAction(self.window.locale_keys["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')))
def show_history():
@@ -131,13 +132,13 @@ class AppsTable(QTableWidget):
menu_row.addAction(action_history)
if app.model.can_be_downgraded():
action_downgrade = QAction(self.window.locale_keys["manage_window.apps_table.row.actions.downgrade"])
action_downgrade = QAction(self.i18n["manage_window.apps_table.row.actions.downgrade"])
def downgrade():
if dialog.ask_confirmation(
title=self.window.locale_keys['manage_window.apps_table.row.actions.downgrade'],
body=self._parag(self.window.locale_keys['manage_window.apps_table.row.actions.downgrade.popup.body'].format(self._bold(str(app)))),
locale_keys=self.window.locale_keys):
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)))),
locale_keys=self.i18n):
self.window.downgrade_app(app)
action_downgrade.triggered.connect(downgrade)
@@ -171,9 +172,9 @@ class AppsTable(QTableWidget):
self.window.resize_and_center()
def _uninstall_app(self, app_v: PackageView):
if dialog.ask_confirmation(title=self.window.locale_keys['manage_window.apps_table.row.actions.uninstall.popup.title'],
body=self._parag(self.window.locale_keys['manage_window.apps_table.row.actions.uninstall.popup.body'].format(self._bold(str(app_v)))),
locale_keys=self.window.locale_keys):
if dialog.ask_confirmation(title=self.i18n['manage_window.apps_table.row.actions.uninstall.popup.title'],
body=self._parag(self.i18n['manage_window.apps_table.row.actions.uninstall.popup.body'].format(self._bold(str(app_v)))),
locale_keys=self.i18n):
self.window.uninstall_app(app_v)
def _bold(self, text: str) -> str:
@@ -185,9 +186,9 @@ class AppsTable(QTableWidget):
def _install_app(self, pkgv: PackageView):
if dialog.ask_confirmation(
title=self.window.locale_keys['manage_window.apps_table.row.actions.install.popup.title'],
body=self._parag(self.window.locale_keys['manage_window.apps_table.row.actions.install.popup.body'].format(self._bold(str(pkgv)))),
locale_keys=self.window.locale_keys):
title=self.i18n['manage_window.apps_table.row.actions.install.popup.title'],
body=self._parag(self.i18n['manage_window.apps_table.row.actions.install.popup.body'].format(self._bold(str(pkgv)))),
locale_keys=self.i18n):
self.window.install(pkgv)
@@ -237,7 +238,7 @@ class AppsTable(QTableWidget):
col_update = None
if update_check_enabled and pkgv.model.update:
col_update = UpdateToggleButton(pkgv, self.window, self.window.locale_keys, pkgv.model.update)
col_update = UpdateToggleButton(pkgv, self.window, self.i18n, pkgv.model.update)
self.setCellWidget(idx, 6, col_update)
@@ -263,16 +264,16 @@ class AppsTable(QTableWidget):
def uninstall():
self._uninstall_app(pkgv)
col = self._gen_row_button(self.window.locale_keys['uninstall'].capitalize(), INSTALL_BT_STYLE.format(back='#cc0000'), uninstall)
col = self._gen_row_button(self.i18n['uninstall'].capitalize(), INSTALL_BT_STYLE.format(back='#cc0000'), uninstall)
else:
col = QLabel()
col.setPixmap((QPixmap(resource.get_path('img/checked.svg'))))
col.setAlignment(Qt.AlignCenter)
col.setToolTip(self.window.locale_keys['installed'])
col.setToolTip(self.i18n['installed'])
elif pkgv.model.can_be_installed():
def install():
self._install_app(pkgv)
col = self._gen_row_button(self.window.locale_keys['install'].capitalize(), INSTALL_BT_STYLE.format(back='#088A08'), install)
col = self._gen_row_button(self.i18n['install'].capitalize(), INSTALL_BT_STYLE.format(back='#088A08'), install)
else:
col = None
@@ -290,7 +291,7 @@ class AppsTable(QTableWidget):
col_type = QLabel()
col_type.setPixmap(pixmap)
col_type.setAlignment(Qt.AlignCenter)
col_type.setToolTip('{}: {}'.format(self.window.locale_keys['type'], app_v.model.get_type()))
col_type.setToolTip('{}: {}'.format(self.i18n['type'], app_v.model.get_type()))
self.setCellWidget(idx, 3, col_type)
def _set_col_version(self, idx: int, app_v: PackageView):
@@ -302,16 +303,16 @@ class AppsTable(QTableWidget):
col_version.layout().addWidget(label_version)
if app_v.model.base_data.version:
tooltip = self.window.locale_keys['version.installed'] if app_v.model.installed else self.window.locale_keys['version']
tooltip = self.i18n['version.installed'] if app_v.model.installed else self.i18n['version']
else:
tooltip = self.window.locale_keys['version.unknown']
tooltip = self.i18n['version.unknown']
if app_v.model.update:
label_version.setStyleSheet("color: #4EC306; font-weight: bold")
tooltip = self.window.locale_keys['version.installed_outdated']
tooltip = self.i18n['version.installed_outdated']
if app_v.model.installed and app_v.model.base_data.version and app_v.model.base_data.latest_version and app_v.model.base_data.version < app_v.model.base_data.latest_version:
tooltip = '{}. {}: {}'.format(tooltip, self.window.locale_keys['version.latest'], app_v.model.base_data.latest_version)
tooltip = '{}. {}: {}'.format(tooltip, self.i18n['version.latest'], app_v.model.base_data.latest_version)
label_version.setText(label_version.text() + ' > {}'.format(app_v.model.base_data.latest_version))
col_version.setToolTip(tooltip)
@@ -321,7 +322,7 @@ class AppsTable(QTableWidget):
col = QTableWidgetItem()
col.setText(app_v.model.base_data.name if app_v.model.base_data.name else '...')
col.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
col.setToolTip(self.window.locale_keys['app.name'].lower())
col.setToolTip(self.i18n['app.name'].lower())
if self.disk_cache and app_v.model.supports_disk_cache() and app_v.model.get_disk_icon_path() and os.path.exists(app_v.model.get_disk_icon_path()):
with open(app_v.model.get_disk_icon_path(), 'rb') as f:
@@ -367,7 +368,7 @@ class AppsTable(QTableWidget):
def run():
self.window.run_app(app_v)
tb.addWidget(IconButton(icon_path=resource.get_path('img/app_play.png'), action=run, background='#088A08', tooltip=self.window.locale_keys['action.run.tooltip']))
tb.addWidget(IconButton(icon_path=resource.get_path('img/app_play.png'), action=run, background='#088A08', tooltip=self.i18n['action.run.tooltip']))
if app_v.model.has_info():

View File

@@ -42,8 +42,8 @@ def apply_filters(pkgv: PackageView, filters: dict, info: dict):
if not hidden and filters['updates']:
hidden = not pkgv.model.update
if not hidden and filters['name_starts_with']:
hidden = not pkgv.model.base_data.name.lower().startswith(filters['name_starts_with'])
if not hidden and filters['name']:
hidden = filters['name'] not in pkgv.model.base_data.name.lower()
if not hidden and len(info['pkgs_displayed']) < filters['display_limit']:
info['pkgs_displayed'].append(pkgv)

View File

@@ -132,12 +132,23 @@ class InputFilter(QLineEdit):
def __init__(self, on_key_press):
super(InputFilter, self).__init__()
self.on_key_press = on_key_press
self.last_text = ''
def keyPressEvent(self, event):
super(InputFilter, self).keyPressEvent(event)
if event.key() != Qt.EnterKeyReturn:
text = self.text().strip()
if text != self.last_text:
self.last_text = text
self.on_key_press()
def get_text(self):
return self.last_text
def setText(self, p_str):
super(InputFilter, self).setText(p_str)
self.last_text = p_str
def new_single_select(model: SingleSelectComponent):
if model.type == SelectViewType.RADIO:

View File

@@ -40,9 +40,9 @@ class ManageWindow(QWidget):
def _toolbar_button_style(self, bg: str):
return 'QPushButton { color: white; font-weight: bold; background: ' + bg + '}'
def __init__(self, locale_keys: dict, icon_cache: MemoryCache, manager: SoftwareManager, disk_cache: bool, download_icons: bool, screen_size, suggestions: bool, display_limit: int, tray_icon=None):
def __init__(self, i18n: dict, icon_cache: MemoryCache, manager: SoftwareManager, disk_cache: bool, download_icons: bool, screen_size, suggestions: bool, display_limit: int, tray_icon=None):
super(ManageWindow, self).__init__()
self.locale_keys = locale_keys
self.i18n = i18n
self.manager = manager
self.tray_icon = tray_icon
self.working = False # restrict the number of threaded actions
@@ -81,8 +81,8 @@ class ManageWindow(QWidget):
self.input_search = QLineEdit()
self.input_search.setMaxLength(20)
self.input_search.setFrame(False)
self.input_search.setPlaceholderText(self.locale_keys['window_manage.input_search.placeholder'] + "...")
self.input_search.setToolTip(self.locale_keys['window_manage.input_search.tooltip'])
self.input_search.setPlaceholderText(self.i18n['window_manage.input_search.placeholder'] + "...")
self.input_search.setToolTip(self.i18n['window_manage.input_search.tooltip'])
self.input_search.setStyleSheet("QLineEdit { background-color: white; color: gray; spacing: 0; height: 30px; font-size: 12px; width: 300px}")
self.input_search.returnPressed.connect(self.search)
self.toolbar_search.addWidget(self.input_search)
@@ -100,12 +100,12 @@ class ManageWindow(QWidget):
self.toolbar.setStyleSheet('QToolBar {spacing: 4px; margin-top: 8px; margin-bottom: 5px}')
self.checkbox_updates = QCheckBox()
self.checkbox_updates.setText(self.locale_keys['updates'].capitalize())
self.checkbox_updates.setText(self.i18n['updates'].capitalize())
self.checkbox_updates.stateChanged.connect(self._handle_updates_filter)
self.ref_checkbox_updates = self.toolbar.addWidget(self.checkbox_updates)
self.checkbox_only_apps = QCheckBox()
self.checkbox_only_apps.setText(self.locale_keys['manage_window.checkbox.only_apps'])
self.checkbox_only_apps.setText(self.i18n['manage_window.checkbox.only_apps'])
self.checkbox_only_apps.setChecked(True)
self.checkbox_only_apps.stateChanged.connect(self._handle_filter_only_apps)
self.ref_checkbox_only_apps = self.toolbar.addWidget(self.checkbox_only_apps)
@@ -118,39 +118,39 @@ class ManageWindow(QWidget):
self.combo_filter_type.lineEdit().setReadOnly(True)
self.combo_filter_type.lineEdit().setAlignment(Qt.AlignCenter)
self.combo_filter_type.activated.connect(self._handle_type_filter)
self.combo_filter_type.addItem(load_icon(resource.get_path('img/logo.svg'), 14), self.locale_keys[self.any_type_filter].capitalize(), self.any_type_filter)
self.combo_filter_type.addItem(load_icon(resource.get_path('img/logo.svg'), 14), self.i18n[self.any_type_filter].capitalize(), self.any_type_filter)
self.ref_combo_filter_type = self.toolbar.addWidget(self.combo_filter_type)
self.input_name_filter = InputFilter(self.apply_filters_async)
self.input_name_filter.setMaxLength(10)
self.input_name_filter.setPlaceholderText(self.locale_keys['name'].capitalize() + ',,,')
self.input_name_filter.setToolTip(self.locale_keys['manage_window.name_filter.tooltip'])
self.input_name_filter.setPlaceholderText(self.i18n['name'].capitalize() + '...')
self.input_name_filter.setToolTip(self.i18n['manage_window.name_filter.tooltip'])
self.input_name_filter.setStyleSheet("QLineEdit { background-color: white; color: gray;}")
self.input_name_filter.setMaximumWidth(120)
self.input_name_filter.setFixedWidth(120)
self.ref_input_name_filter = self.toolbar.addWidget(self.input_name_filter)
self.toolbar.addWidget(new_spacer())
self.bt_installed = QPushButton()
self.bt_installed.setToolTip(self.locale_keys['manage_window.bt.installed.tooltip'])
self.bt_installed.setToolTip(self.i18n['manage_window.bt.installed.tooltip'])
self.bt_installed.setIcon(QIcon(resource.get_path('img/disk.png')))
self.bt_installed.setText(self.locale_keys['manage_window.bt.installed.text'].capitalize())
self.bt_installed.setText(self.i18n['manage_window.bt.installed.text'].capitalize())
self.bt_installed.clicked.connect(self._show_installed)
self.bt_installed.setStyleSheet(self._toolbar_button_style('#A94E0A'))
self.ref_bt_installed = self.toolbar.addWidget(self.bt_installed)
self.bt_refresh = QPushButton()
self.bt_refresh.setToolTip(locale_keys['manage_window.bt.refresh.tooltip'])
self.bt_refresh.setToolTip(i18n['manage_window.bt.refresh.tooltip'])
self.bt_refresh.setIcon(QIcon(resource.get_path('img/new_refresh.svg')))
self.bt_refresh.setText(self.locale_keys['manage_window.bt.refresh.text'])
self.bt_refresh.setText(self.i18n['manage_window.bt.refresh.text'])
self.bt_refresh.setStyleSheet(self._toolbar_button_style('#2368AD'))
self.bt_refresh.clicked.connect(lambda: self.refresh_apps(keep_console=False))
self.ref_bt_refresh = self.toolbar.addWidget(self.bt_refresh)
self.bt_upgrade = QPushButton()
self.bt_upgrade.setToolTip(locale_keys['manage_window.bt.upgrade.tooltip'])
self.bt_upgrade.setToolTip(i18n['manage_window.bt.upgrade.tooltip'])
self.bt_upgrade.setIcon(QIcon(resource.get_path('img/app_update.svg')))
self.bt_upgrade.setText(locale_keys['manage_window.bt.upgrade.text'])
self.bt_upgrade.setText(i18n['manage_window.bt.upgrade.text'])
self.bt_upgrade.setStyleSheet(self._toolbar_button_style('#20A435'))
self.bt_upgrade.clicked.connect(self.update_selected)
self.ref_bt_upgrade = self.toolbar.addWidget(self.bt_upgrade)
@@ -165,7 +165,7 @@ class ManageWindow(QWidget):
toolbar_console = QToolBar()
self.checkbox_console = QCheckBox()
self.checkbox_console.setText(self.locale_keys['manage_window.checkbox.show_details'])
self.checkbox_console.setText(self.i18n['manage_window.checkbox.show_details'])
self.checkbox_console.stateChanged.connect(self._handle_console)
self.checkbox_console.setVisible(False)
self.ref_checkbox_console = toolbar_console.addWidget(self.checkbox_console)
@@ -192,23 +192,23 @@ class ManageWindow(QWidget):
self.layout.addWidget(self.toolbar_substatus)
self._change_label_substatus('')
self.thread_update = self._bind_async_action(UpdateSelectedApps(self.manager, self.locale_keys), finished_call=self._finish_update_selected)
self.thread_update = self._bind_async_action(UpdateSelectedApps(self.manager, self.i18n), finished_call=self._finish_update_selected)
self.thread_refresh = self._bind_async_action(RefreshApps(self.manager), finished_call=self._finish_refresh_apps, only_finished=True)
self.thread_uninstall = self._bind_async_action(UninstallApp(self.manager, self.icon_cache), finished_call=self._finish_uninstall)
self.thread_get_info = self._bind_async_action(GetAppInfo(self.manager), finished_call=self._finish_get_info)
self.thread_get_history = self._bind_async_action(GetAppHistory(self.manager, self.locale_keys), finished_call=self._finish_get_history)
self.thread_get_history = self._bind_async_action(GetAppHistory(self.manager, self.i18n), finished_call=self._finish_get_history)
self.thread_search = self._bind_async_action(SearchApps(self.manager), finished_call=self._finish_search, only_finished=True)
self.thread_downgrade = self._bind_async_action(DowngradeApp(self.manager, self.locale_keys), finished_call=self._finish_downgrade)
self.thread_downgrade = self._bind_async_action(DowngradeApp(self.manager, self.i18n), finished_call=self._finish_downgrade)
self.thread_refresh_app = self._bind_async_action(RefreshApp(manager=self.manager), finished_call=self._finish_refresh)
self.thread_suggestions = self._bind_async_action(FindSuggestions(man=self.manager), finished_call=self._finish_search, only_finished=True)
self.thread_run_app = self._bind_async_action(RunApp(), finished_call=self._finish_run_app, only_finished=False)
self.thread_apply_filters = ApplyFilters()
self.thread_apply_filters.signal_finished.connect(self._finish_apply_filters_async)
self.thread_apply_filters.signal_table.connect(self._update_table_and_state)
self.thread_apply_filters.signal_table.connect(self._update_table_and_upgrades)
self.signal_table_update.connect(self.thread_apply_filters.stop_waiting)
self.thread_install = InstallApp(manager=self.manager, disk_cache=self.disk_cache, icon_cache=self.icon_cache, locale_keys=self.locale_keys)
self.thread_install = InstallApp(manager=self.manager, disk_cache=self.disk_cache, icon_cache=self.icon_cache, locale_keys=self.i18n)
self._bind_async_action(self.thread_install, finished_call=self._finish_install)
self.thread_animate_progress = AnimateProgress()
@@ -235,7 +235,7 @@ class ManageWindow(QWidget):
bt_about.setStyleSheet('QToolButton { border: 0px; }')
bt_about.setIcon(QIcon(resource.get_path('img/about.svg')))
bt_about.clicked.connect(self._show_about)
bt_about.setToolTip(self.locale_keys['manage_window.bt_about.tooltip'])
bt_about.setToolTip(self.i18n['manage_window.bt_about.tooltip'])
self.ref_bt_about = self.toolbar_bottom.addWidget(bt_about)
self.layout.addWidget(self.toolbar_bottom)
@@ -250,43 +250,31 @@ class ManageWindow(QWidget):
self.dialog_about = None
self.first_refresh = suggestions
self.thread_warnings = ListWarnings(man=manager, locale_keys=locale_keys)
self.thread_warnings = ListWarnings(man=manager, locale_keys=i18n)
self.thread_warnings.signal_warnings.connect(self._show_warnings)
def apply_filters_async(self):
self.label_status.setText('Filtering...')
self.label_status.setText(self.i18n['manage_window.status.filtering'])
self.ref_toolbar_search.setVisible(False)
# if self.checkbox_updates.isVisible():
# self.checkbox_updates.setCheckable(False)
#
# if self.checkbox_only_apps.isVisible():
# self.checkbox_only_apps.setCheckable(False)
#
# if self.input_name_filter.isVisible():
# self.input_name_filter.setReadOnly(True)
if self.ref_input_name_filter.isVisible():
self.input_name_filter.setReadOnly(True)
self.thread_apply_filters.filters = self._gen_filters()
self.thread_apply_filters.pkgs = self.pkgs_available
self.thread_apply_filters.start()
def _update_table_and_state(self, pkginfo: dict):
self._update_table(pkginfo, True)
self.update_bt_upgrade(pkginfo)
def _update_table_and_upgrades(self, pkgs_info: dict):
self._update_table(pkgs_info=pkgs_info, signal=True)
self.update_bt_upgrade(pkgs_info)
def _finish_apply_filters_async(self, success: bool):
self.label_status.setText('')
self.ref_toolbar_search.setVisible(True)
# if self.checkbox_updates.isVisible():
# self.checkbox_updates.setCheckable(True)
#
# if self.checkbox_only_apps.isVisible():
# self.checkbox_only_apps.setCheckable(True)
#
# if self.input_name_filter.isVisible():
# self.input_name_filter.setReadOnly(False)
if self.ref_input_name_filter.isVisible():
self.input_name_filter.setReadOnly(False)
def _bind_async_action(self, action: AsyncAction, finished_call, only_finished: bool = False) -> AsyncAction:
action.signal_finished.connect(finished_call)
@@ -304,7 +292,7 @@ class ManageWindow(QWidget):
def _ask_confirmation(self, msg: dict):
diag = ConfirmationDialog(title=msg['title'],
body=msg['body'],
locale_keys=self.locale_keys,
locale_keys=self.i18n,
components=msg['components'],
confirmation_label=msg['confirmation_label'],
deny_label=msg['deny_label'])
@@ -315,7 +303,7 @@ class ManageWindow(QWidget):
def _show_warnings(self, warnings: List[str]):
if warnings:
dialog.show_message(title=self.locale_keys['warning'].capitalize(), body='<p>{}</p>'.format('<br/>'.join(warnings)), type_=MessageType.WARNING)
dialog.show_message(title=self.i18n['warning'].capitalize(), body='<p>{}</p>'.format('<br/>'.join(warnings)), type_=MessageType.WARNING)
def show(self):
super(ManageWindow, self).show()
@@ -333,7 +321,7 @@ class ManageWindow(QWidget):
def _show_about(self):
if self.dialog_about is None:
self.dialog_about = AboutDialog(self.locale_keys)
self.dialog_about = AboutDialog(self.i18n)
self.dialog_about.show()
@@ -390,7 +378,7 @@ class ManageWindow(QWidget):
self.ref_checkbox_updates.setVisible(False)
self.ref_checkbox_only_apps.setVisible(False)
self._begin_action(self.locale_keys['manage_window.status.refreshing'], clear_filters=True)
self._begin_action(self.i18n['manage_window.status.refreshing'], clear_filters=True)
self.thread_refresh.app = top_app # the app will be on top when refresh happens
self.thread_refresh.pkg_types = pkg_types
@@ -408,20 +396,20 @@ class ManageWindow(QWidget):
requires_root = self.manager.requires_root('uninstall', app.model)
if not is_root() and requires_root:
pwd, ok = ask_root_password(self.locale_keys)
pwd, ok = ask_root_password(self.i18n)
if not ok:
return
self._handle_console_option(True)
self._begin_action('{} {}'.format(self.locale_keys['manage_window.status.uninstalling'], app.model.base_data.name))
self._begin_action('{} {}'.format(self.i18n['manage_window.status.uninstalling'], app.model.base_data.name))
self.thread_uninstall.app = app
self.thread_uninstall.root_password = pwd
self.thread_uninstall.start()
def run_app(self, app: PackageView):
self._begin_action(self.locale_keys['manage_window.status.running_app'].format(app.model.base_data.name))
self._begin_action(self.i18n['manage_window.status.running_app'].format(app.model.base_data.name))
self.thread_run_app.app = app
self.thread_run_app.start()
@@ -430,13 +418,13 @@ class ManageWindow(QWidget):
requires_root = self.manager.requires_root('refresh', app.model)
if not is_root() and requires_root:
pwd, ok = ask_root_password(self.locale_keys)
pwd, ok = ask_root_password(self.i18n)
if not ok:
return
self._handle_console_option(True)
self._begin_action('{} {}'.format(self.locale_keys['manage_window.status.refreshing_app'], app.model.base_data.name))
self._begin_action('{} {}'.format(self.i18n['manage_window.status.refreshing_app'], app.model.base_data.name))
self.thread_refresh_app.app = app
self.thread_refresh_app.root_password = pwd
@@ -447,12 +435,12 @@ class ManageWindow(QWidget):
if pkgv:
if self._can_notify_user():
util.notify_user('{} ({}) {}'.format(pkgv.model.base_data.name, pkgv.model.get_type(), self.locale_keys['uninstalled']))
util.notify_user('{} ({}) {}'.format(pkgv.model.base_data.name, pkgv.model.get_type(), self.i18n['uninstalled']))
self.refresh_apps(pkg_types={pkgv.model.__class__})
else:
if self._can_notify_user():
util.notify_user('{}: {}'.format(pkgv.model.base_data.name, self.locale_keys['notification.uninstall.failed']))
util.notify_user('{}: {}'.format(pkgv.model.base_data.name, self.i18n['notification.uninstall.failed']))
self.checkbox_console.setChecked(True)
@@ -464,7 +452,7 @@ class ManageWindow(QWidget):
if res['success']:
if self._can_notify_user():
util.notify_user('{} {}'.format(res['app'], self.locale_keys['downgraded']))
util.notify_user('{} {}'.format(res['app'], self.i18n['downgraded']))
self.refresh_apps(pkg_types={res['app'].model.__class__})
@@ -472,7 +460,7 @@ class ManageWindow(QWidget):
self.tray_icon.verify_updates(notify_user=False)
else:
if self._can_notify_user():
util.notify_user(self.locale_keys['notification.downgrade.failed'])
util.notify_user(self.i18n['notification.downgrade.failed'])
self.checkbox_console.setChecked(True)
@@ -537,12 +525,12 @@ class ManageWindow(QWidget):
if pkgs_info['updates'] > 0:
self.label_updates.setPixmap(QPixmap(resource.get_path('img/exclamation.svg')).scaled(16, 16, Qt.KeepAspectRatio, Qt.SmoothTransformation))
self.label_updates.setToolTip('{}: {} ( {} {} | {} {} )'.format(self.locale_keys['manage_window.label.updates'],
self.label_updates.setToolTip('{}: {} ( {} {} | {} {} )'.format(self.i18n['manage_window.label.updates'],
pkgs_info['updates'],
pkgs_info['app_updates'],
self.locale_keys['manage_window.checkbox.only_apps'].lower(),
self.i18n['manage_window.checkbox.only_apps'].lower(),
pkgs_info['napp_updates'],
self.locale_keys['others'].lower()))
self.i18n['others'].lower()))
if pkgs_info['not_installed'] == 0:
if not self.ref_checkbox_updates.isVisible():
@@ -583,7 +571,7 @@ class ManageWindow(QWidget):
'only_apps': self.filter_only_apps,
'type': self.type_filter,
'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': self.input_name_filter.get_text().lower() if self.input_name_filter.get_text() else None,
'display_limit': self.display_limit
}
@@ -701,20 +689,20 @@ class ManageWindow(QWidget):
if self.manager.requires_root('update', app_v.model):
requires_root = True
if to_update and dialog.ask_confirmation(title=self.locale_keys['manage_window.upgrade_all.popup.title'],
body=self.locale_keys['manage_window.upgrade_all.popup.body'],
locale_keys=self.locale_keys,
widgets=[UpdateToggleButton(None, self, self.locale_keys, clickable=False)]):
if to_update and dialog.ask_confirmation(title=self.i18n['manage_window.upgrade_all.popup.title'],
body=self.i18n['manage_window.upgrade_all.popup.body'],
locale_keys=self.i18n,
widgets=[UpdateToggleButton(None, self, self.i18n, clickable=False)]):
pwd = None
if not is_root() and requires_root:
pwd, ok = ask_root_password(self.locale_keys)
pwd, ok = ask_root_password(self.i18n)
if not ok:
return
self._handle_console_option(True)
self._begin_action(self.locale_keys['manage_window.status.upgrading'])
self._begin_action(self.i18n['manage_window.status.upgrading'])
self.thread_update.apps_to_update = to_update
self.thread_update.root_password = pwd
self.thread_update.start()
@@ -724,7 +712,7 @@ class ManageWindow(QWidget):
if res['success']:
if self._can_notify_user():
util.notify_user('{} {}'.format(res['updated'], self.locale_keys['notification.update_selected.success']))
util.notify_user('{} {}'.format(res['updated'], self.i18n['notification.update_selected.success']))
self.refresh_apps(pkg_types=res['types'])
@@ -732,7 +720,7 @@ class ManageWindow(QWidget):
self.tray_icon.verify_updates()
else:
if self._can_notify_user():
util.notify_user(self.locale_keys['notification.update_selected.failed'])
util.notify_user(self.i18n['notification.update_selected.failed'])
self.ref_bt_upgrade.setVisible(True)
self.checkbox_console.setChecked(True)
@@ -790,13 +778,13 @@ class ManageWindow(QWidget):
requires_root = self.manager.requires_root('downgrade', pkgv.model)
if not is_root() and requires_root:
pwd, ok = ask_root_password(self.locale_keys)
pwd, ok = ask_root_password(self.i18n)
if not ok:
return
self._handle_console_option(True)
self._begin_action('{} {}'.format(self.locale_keys['manage_window.status.downgrading'], pkgv.model.base_data.name))
self._begin_action('{} {}'.format(self.i18n['manage_window.status.downgrading'], pkgv.model.base_data.name))
self.thread_downgrade.app = pkgv
self.thread_downgrade.root_password = pwd
@@ -804,14 +792,14 @@ class ManageWindow(QWidget):
def get_app_info(self, pkg: dict):
self._handle_console_option(False)
self._begin_action(self.locale_keys['manage_window.status.info'])
self._begin_action(self.i18n['manage_window.status.info'])
self.thread_get_info.app = pkg
self.thread_get_info.start()
def get_app_history(self, app: dict):
self._handle_console_option(False)
self._begin_action(self.locale_keys['manage_window.status.history'])
self._begin_action(self.i18n['manage_window.status.history'])
self.thread_get_history.app = app
self.thread_get_history.start()
@@ -819,7 +807,7 @@ class ManageWindow(QWidget):
def _finish_get_info(self, app_info: dict):
self.finish_action()
self.change_update_state(trigger_filters=False)
dialog_info = InfoDialog(app=app_info, icon_cache=self.icon_cache, locale_keys=self.locale_keys, 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_()
def _finish_get_history(self, res: dict):
@@ -831,7 +819,7 @@ class ManageWindow(QWidget):
self.textarea_output.appendPlainText(res['error'])
self.checkbox_console.setChecked(True)
else:
dialog_history = HistoryDialog(res['history'], self.icon_cache, self.locale_keys)
dialog_history = HistoryDialog(res['history'], self.icon_cache, self.i18n)
dialog_history.exec_()
def _begin_search(self, word):
@@ -839,7 +827,7 @@ class ManageWindow(QWidget):
self.ref_checkbox_only_apps.setVisible(False)
self.ref_checkbox_updates.setVisible(False)
self.filter_updates = False
self._begin_action('{}{}'.format(self.locale_keys['manage_window.status.searching'], '"{}"'.format(word) if word else ''), clear_filters=True)
self._begin_action('{} {}'.format(self.i18n['manage_window.status.searching'], word if word else ''), clear_filters=True)
def search(self):
word = self.input_search.text().strip()
@@ -858,13 +846,13 @@ class ManageWindow(QWidget):
requires_root = self.manager.requires_root('install', pkg.model)
if not is_root() and requires_root:
pwd, ok = ask_root_password(self.locale_keys)
pwd, ok = ask_root_password(self.i18n)
if not ok:
return
self._handle_console_option(True)
self._begin_action('{} {}'.format(self.locale_keys['manage_window.status.installing'], pkg.model.base_data.name))
self._begin_action('{} {}'.format(self.i18n['manage_window.status.installing'], pkg.model.base_data.name))
self.thread_install.pkg = pkg
self.thread_install.root_password = pwd
@@ -876,12 +864,12 @@ class ManageWindow(QWidget):
if pkgv:
if self._can_notify_user():
util.notify_user(msg='{} ({}) {}'.format(pkgv.model.base_data.name, pkgv.model.get_type(), self.locale_keys['installed']))
util.notify_user(msg='{} ({}) {}'.format(pkgv.model.base_data.name, pkgv.model.get_type(), self.i18n['installed']))
self.refresh_apps(top_app=pkgv, pkg_types={pkgv.model.__class__})
else:
if self._can_notify_user():
util.notify_user('{}: {}'.format(pkgv.model.base_data.name, self.locale_keys['notification.install.failed']))
util.notify_user('{}: {}'.format(pkgv.model.base_data.name, self.i18n['notification.install.failed']))
self.checkbox_console.setChecked(True)