From 81b7846a7da420c467d3f05ac5b93ce3d96d64be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Moreira?= Date: Mon, 8 Jul 2019 12:55:08 -0300 Subject: [PATCH] setting flathub remote if it is not set (#18) --- fpakman/__init__.py | 2 +- fpakman/app.py | 7 +++++-- fpakman/core/controller.py | 1 + fpakman/core/flatpak.py | 5 +++++ fpakman/view/qt/apps_table.py | 38 ++++++++++++++--------------------- fpakman/view/qt/common.py | 10 +++++++++ fpakman/view/qt/window.py | 8 ++------ 7 files changed, 39 insertions(+), 32 deletions(-) create mode 100644 fpakman/view/qt/common.py diff --git a/fpakman/__init__.py b/fpakman/__init__.py index 0404d810..e1424ed0 100644 --- a/fpakman/__init__.py +++ b/fpakman/__init__.py @@ -1 +1 @@ -__version__ = '0.3.0' +__version__ = '0.3.1' diff --git a/fpakman/app.py b/fpakman/app.py index 9e6f5fe4..2029ab3d 100755 --- a/fpakman/app.py +++ b/fpakman/app.py @@ -12,6 +12,7 @@ from fpakman.util import util from fpakman.core.controller import FlatpakManager from fpakman.util.cache import Cache from fpakman.util.memory import CacheCleaner +from fpakman.view.qt import common from fpakman.view.qt.systray import TrayIcon app_name = 'fpakman' @@ -51,6 +52,10 @@ if args.check_interval <= 0: if args.update_notification == 0: log_msg('updates notifications are disabled', Fore.YELLOW) +locale_keys = util.get_locale_keys(args.locale) + +common.check_flatpak_installed(locale_keys) + caches = [] flatpak_api_cache = Cache(expiration_time=args.cache_exp) caches.append(flatpak_api_cache) @@ -58,8 +63,6 @@ caches.append(flatpak_api_cache) icon_cache = Cache(expiration_time=args.icon_exp) caches.append(icon_cache) -locale_keys = util.get_locale_keys(args.locale) - app = QApplication(sys.argv) app.setWindowIcon(QIcon(resource.get_path('img/logo.svg'))) diff --git a/fpakman/core/controller.py b/fpakman/core/controller.py index d0337496..0a020322 100755 --- a/fpakman/core/controller.py +++ b/fpakman/core/controller.py @@ -17,6 +17,7 @@ class FlatpakManager: self.http_session = requests.Session() self.lock_read = Lock() self.async_data_loader = FlatpakAsyncDataLoaderManager(api_cache=self.api_cache) + flatpak.set_default_remotes() def _map_to_model(self, app: dict) -> FlatpakApplication: diff --git a/fpakman/core/flatpak.py b/fpakman/core/flatpak.py index 7470c839..17fbe179 100755 --- a/fpakman/core/flatpak.py +++ b/fpakman/core/flatpak.py @@ -212,3 +212,8 @@ def search(word: str) -> List[dict]: def install_and_stream(app_id: str, origin: str): return system.stream_cmd([BASE_CMD, 'install', origin, app_id, '-y']) + + +def set_default_remotes(): + system.run_cmd('flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo') + diff --git a/fpakman/view/qt/apps_table.py b/fpakman/view/qt/apps_table.py index a9393002..e9951b06 100644 --- a/fpakman/view/qt/apps_table.py +++ b/fpakman/view/qt/apps_table.py @@ -47,7 +47,6 @@ class AppsTable(QTableWidget): 'flatpak.info.version', 'manage_window.columns.latest_version', 'flatpak.info.branch', - 'flatpak.info.arch', 'flatpak.info.description', 'flatpak.info.origin', 'manage_window.columns.installed', @@ -113,11 +112,7 @@ class AppsTable(QTableWidget): if app_v.visible and app_v.status == ApplicationViewStatus.LOADING and app_v.model.status == ApplicationStatus.READY: self.network_man.get(QNetworkRequest(QUrl(app_v.model.base_data.icon_url))) self.item(idx, 2).setText(app_v.model.base_data.latest_version) - - desc = app_v.get_async_attr('description', strip_html=True) - self.item(idx, 5).setText(desc) - self.item(idx, 5).setToolTip(desc) - app_v.status = ApplicationViewStatus.READY + self._set_col_description(self.item(idx, 4), app_v) visible, ready = 0, 0 @@ -219,39 +214,36 @@ class AppsTable(QTableWidget): col_branch.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) self.setItem(idx, 3, col_branch) - col_arch = QTableWidgetItem() - col_arch.setText(app_v.model.arch if isinstance(app_v.model, FlatpakApplication) else '') - col_arch.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) - self.setItem(idx, 4, col_arch) - - desc = app_v.get_async_attr('description', strip_html=True) col_description = QTableWidgetItem() - col_description.setText(desc) col_description.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) + self._set_col_description(col_description, app_v) - if app_v.model.status == ApplicationStatus.READY: - col_description.setToolTip(desc) - - self.setItem(idx, 5, col_description) + self.setItem(idx, 4, col_description) col_origin = QTableWidgetItem() col_origin.setText(app_v.model.origin if isinstance(app_v.model, FlatpakApplication) else '') col_origin.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) - self.setItem(idx, 6, col_origin) + self.setItem(idx, 5, col_origin) col_installed = QLabel() col_installed.setPixmap((QPixmap(resource.get_path('img/{}.svg'.format('checked' if app_v.model.installed else 'red_cross'))))) col_installed.setAlignment(Qt.AlignCenter) - self.setCellWidget(idx, 7, col_installed) + self.setCellWidget(idx, 6, col_installed) col_update = UpdateToggleButton(app_v, self.window, self.window.locale_keys, app_v.model.update) if app_v.model.update else None - self.setCellWidget(idx, 8, col_update) + self.setCellWidget(idx, 7, col_update) + + def _set_col_description(self, col: QTableWidgetItem, app_v: ApplicationView): + desc = app_v.get_async_attr('description', strip_html=True) + + if desc: + col.setText(desc[0:25] + '...') + + if app_v.model.status == ApplicationStatus.READY: + col.setToolTip(desc) def change_headers_policy(self, policy: QHeaderView = QHeaderView.ResizeToContents): header_horizontal = self.horizontalHeader() for i in range(self.columnCount()): - if i == 5: - header_horizontal.setSectionResizeMode(i, QHeaderView.Stretch) - else: header_horizontal.setSectionResizeMode(i, policy) diff --git a/fpakman/view/qt/common.py b/fpakman/view/qt/common.py new file mode 100644 index 00000000..50240cde --- /dev/null +++ b/fpakman/view/qt/common.py @@ -0,0 +1,10 @@ +from fpakman.core import flatpak +from fpakman.view.qt import dialog + + +def check_flatpak_installed(locale_keys: dict): + + if not flatpak.is_installed(): + dialog.show_error(title=locale_keys['popup.flatpak_not_installed.title'], + body=locale_keys['popup.flatpak_not_installed.msg'] + '...') + exit(1) diff --git a/fpakman/view/qt/window.py b/fpakman/view/qt/window.py index 8e23a1d5..d5ed2340 100755 --- a/fpakman/view/qt/window.py +++ b/fpakman/view/qt/window.py @@ -12,7 +12,7 @@ from fpakman.core import resource, flatpak from fpakman.core.controller import FlatpakManager from fpakman.core.model import Application, FlatpakApplication from fpakman.util.cache import Cache -from fpakman.view.qt import dialog +from fpakman.view.qt import dialog, common from fpakman.view.qt.apps_table import AppsTable from fpakman.view.qt.history import HistoryDialog from fpakman.view.qt.info import InfoDialog @@ -205,11 +205,7 @@ class ManageWindow(QWidget): def _check_flatpak_installed(self): - if not flatpak.is_installed(): - dialog.show_error(title=self.locale_keys['popup.flatpak_not_installed.title'], - body=self.locale_keys['popup.flatpak_not_installed.msg'] + '...', - icon=self.icon_flathub) - exit(1) + common.check_flatpak_installed(self.locale_keys) if self.label_flatpak: self.label_flatpak.setText(self._get_flatpak_label())