setting flathub remote if it is not set (#18)

This commit is contained in:
Vinícius Moreira
2019-07-08 12:55:08 -03:00
committed by GitHub
parent 74fa85a2bb
commit 81b7846a7d
7 changed files with 39 additions and 32 deletions

View File

@@ -1 +1 @@
__version__ = '0.3.0'
__version__ = '0.3.1'

View File

@@ -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')))

View File

@@ -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:

View File

@@ -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')

View File

@@ -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)

10
fpakman/view/qt/common.py Normal file
View File

@@ -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)

View File

@@ -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())