1
0
Fork 0
mirror of synced 2024-06-09 14:14:41 +12:00

Some fixes: Update gamelist; dl_tab.finished; AppImageBuilder.yml; install_dialog: auto verify

This commit is contained in:
Dummerle 2021-08-16 20:41:33 +02:00
parent e1c6e03812
commit 96806274f9
5 changed files with 84 additions and 70 deletions

View file

@ -1,7 +1,7 @@
# appimage-builder recipe see https://appimage-builder.readthedocs.io for details # appimage-builder recipe see https://appimage-builder.readthedocs.io for details
version: 1 version: 1
script: script:
# Remove any previous build # Remove any previous build
- rm -rf AppDir Rare | true - rm -rf AppDir Rare | true
@ -18,7 +18,6 @@ script:
AppDir: AppDir:
path: AppDir path: AppDir
app_info: app_info:
id: org.dummerle.rare id: org.dummerle.rare
@ -26,18 +25,27 @@ AppDir:
icon: Logo icon: Logo
version: 1.5.0 version: 1.5.0
exec: usr/bin/python3 exec: usr/bin/python3
exec_args: "$APPDIR/usr/src/__main__.py $@" exec_args: $APPDIR/usr/src/__main__.py $@
apt: apt:
arch: amd64 arch: amd64
allow_unauthenticated: true
sources: sources:
- sourceline: 'deb http://archive.ubuntu.com/ubuntu/ groovy-updates main - sourceline: deb http://de.archive.ubuntu.com/ubuntu/ groovy main restricted
' - sourceline: deb http://de.archive.ubuntu.com/ubuntu/ groovy-updates main restricted
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' - sourceline: deb http://de.archive.ubuntu.com/ubuntu/ groovy universe
- sourceline: deb http://de.archive.ubuntu.com/ubuntu/ groovy-updates universe
- sourceline: deb http://de.archive.ubuntu.com/ubuntu/ groovy multiverse
- sourceline: deb http://de.archive.ubuntu.com/ubuntu/ groovy-updates multiverse
- sourceline: deb http://de.archive.ubuntu.com/ubuntu/ groovy-backports main restricted
universe multiverse
- sourceline: deb http://security.ubuntu.com/ubuntu groovy-security main restricted
- sourceline: deb http://security.ubuntu.com/ubuntu groovy-security universe
- sourceline: deb http://security.ubuntu.com/ubuntu groovy-security multiverse
include: include:
- python3 - python3
- python3-pkg-resources - python3-pkg-resources
exclude: [ ] - python3-distutils
- python3-pyqt5
runtime: runtime:
env: env:
@ -49,29 +57,31 @@ AppDir:
PYTHONPATH: '${APPDIR}/usr/lib/python3.8/site-packages' PYTHONPATH: '${APPDIR}/usr/lib/python3.8/site-packages'
AppImage: files:
arch: x86_64 include: [ ]
update-information: 'gh-releases-zsync|Dummerle|Rare|latest|Rare-*x86_64.AppImage.zsync' exclude: [ ]
test: test:
fedora: fedora:
image: appimagecrafters/tests-env:fedora-30 image: appimagecrafters/tests-env:fedora-30
command: ./AppRun command: ./AppRun
use_host_x: true use_host_x: true
debian: debian-stable:
image: appimagecrafters/tests-env:debian-stable image: appimagecrafters/tests-env:debian-stable
command: ./AppRun command: ./AppRun
use_host_x: true use_host_x: true
arch: archlinux-latest:
image: appimagecrafters/tests-env:archlinux-latest image: appimagecrafters/tests-env:archlinux-latest
command: ./AppRun command: ./AppRun
use_host_x: true use_host_x: true
centos: centos-7:
image: appimagecrafters/tests-env:centos-7 image: appimagecrafters/tests-env:centos-7
command: ./AppRun command: ./AppRun
use_host_x: true use_host_x: true
ubuntu: ubuntu-xenial:
image: appimagecrafters/tests-env:ubuntu-xenial image: appimagecrafters/tests-env:ubuntu-xenial
command: ./AppRun command: ./AppRun
use_host_x: true use_host_x: true
AppImage:
arch: x86_64
update-information: gh-releases-zsync|Dummerle|Rare|latest|Rare-*x86_64.AppImage.zsync

View file

@ -110,9 +110,10 @@ class App(QApplication):
self.tray_icon.start_rare.triggered.connect(self.mainwindow.show) self.tray_icon.start_rare.triggered.connect(self.mainwindow.show)
self.tray_icon.activated.connect(self.tray) self.tray_icon.activated.connect(self.tray)
if not offline: if not offline:
self.mainwindow.tab_widget.downloadTab.finished.connect(lambda update: self.tray_icon.showMessage( self.mainwindow.tab_widget.downloadTab.finished.connect(lambda x: self.tray_icon.showMessage(
self.tr("Download finished"), self.tr("Download finished. Game is playable now"), self.tr("Download finished"),
QSystemTrayIcon.Information, 4000) if update else None) self.tr("Download finished. {} is playable now").format(self.core.get_game(x[1]).app_title),
QSystemTrayIcon.Information, 4000) if x[0] else None)
if not self.args.silent: if not self.args.silent:
self.mainwindow.show() self.mainwindow.show()

View file

@ -95,7 +95,9 @@ class InstallDialog(QDialog, Ui_InstallDialog):
self.reject_close = True self.reject_close = True
self.resize(self.minimumSize()) self.resize(self.minimumSize())
self.setFixedSize(self.size()) # self.setFixedSize(self.size())
self.verify_clicked()
def execute(self): def execute(self):
if self.silent: if self.silent:
@ -154,9 +156,6 @@ class InstallDialog(QDialog, Ui_InstallDialog):
def on_worker_result(self, dl_item: InstallDownloadModel): def on_worker_result(self, dl_item: InstallDownloadModel):
self.dl_item.download = dl_item self.dl_item.download = dl_item
# TODO: Check available size and act accordingly
# TODO: (show message in label | color it | disable install unless ignore)
# TODO: Find a way to get the installation size delta and show it
download_size = self.dl_item.download.analysis.dl_size download_size = self.dl_item.download.analysis.dl_size
install_size = self.dl_item.download.analysis.install_size install_size = self.dl_item.download.analysis.install_size
if download_size: if download_size:
@ -175,6 +174,7 @@ class InstallDialog(QDialog, Ui_InstallDialog):
self.warn_label.setVisible(True) self.warn_label.setVisible(True)
self.warn_message.setText("\n".join(str(i) for i in dl_item.res.warnings)) self.warn_message.setText("\n".join(str(i) for i in dl_item.res.warnings))
self.warn_message.setVisible(True) self.warn_message.setVisible(True)
if self.silent: if self.silent:
self.close() self.close()

View file

@ -147,8 +147,6 @@ class DownloadTab(QWidget):
if len(self.update_widgets) == 0: if len(self.update_widgets) == 0:
self.update_text.setVisible(True) self.update_text.setVisible(True)
for i in self.update_widgets.values():
i.update_button.setDisabled(False)
self.finished.emit((True, app_name)) self.finished.emit((True, app_name))
@ -165,7 +163,7 @@ class DownloadTab(QWidget):
elif text == "stop": elif text == "stop":
self.reset_infos() self.reset_infos()
self.active_game = None self.active_game = None
self.finished.emit((False, None)) self.finished.emit((False, ""))
if self.dl_queue: if self.dl_queue:
self.start_installation(self.dl_queue[0]) self.start_installation(self.dl_queue[0])

View file

@ -297,53 +297,12 @@ class GameList(QStackedWidget):
self.widgets.pop(widgets[0].game.app_name) self.widgets.pop(widgets[0].game.app_name)
# QWidget().setLayout(self.icon_layout) # QWidget().setLayout(self.icon_layout)
icon_layout = FlowLayout()
# QWidget().setLayout(self.list_layout)
list_layout = QVBoxLayout()
igame = self.core.get_installed_game(app_name) igame = self.core.get_installed_game(app_name)
self.add_installed_widget(igame) self.add_installed_widget(igame)
for igame in sorted(self.core.get_installed_list(), key=lambda x: x.title): self._update_games()
i_widget, l_widget = self.widgets[igame.app_name]
icon_layout.addWidget(i_widget)
list_layout.addWidget(l_widget)
self.uninstalled_names = []
installed_names = [i.app_name for i in self.core.get_installed_list()]
# get Uninstalled games
games, self.dlcs = self.core.get_game_and_dlc_list()
for game in sorted(games, key=lambda x: x.app_title):
if not game.app_name in installed_names:
self.uninstalled_names.append(game)
for game in self.uninstalled_names:
i_widget, list_widget = self.widgets[game.app_name]
icon_layout.addWidget(i_widget)
list_layout.addWidget(list_widget)
QWidget().setLayout(self.icon_layout)
QWidget().setLayout(self.list_layout)
self.icon_widget = QWidget()
self.list_widget = QWidget()
self.icon_widget.setLayout(icon_layout)
self.list_widget.setLayout(list_layout)
self.list_scrollarea.setWidget(QWidget())
self.icon_scrollarea.setWidget(QWidget())
self.icon_scrollarea.setWidget(self.icon_widget)
self.list_scrollarea.setWidget(self.list_widget)
self.icon_layout = icon_layout
self.list_layout = list_layout
self.icon_widget.setLayout(self.icon_layout)
self.list_widget.setLayout(self.list_layout)
self.update()
# uninstalled # uninstalled
elif not self.core.is_installed(widgets[0].game.app_name) and isinstance(widgets[0], elif not self.core.is_installed(widgets[0].game.app_name) and isinstance(widgets[0],
@ -356,8 +315,8 @@ class GameList(QStackedWidget):
game = self.core.get_game(app_name, True) game = self.core.get_game(app_name, True)
self.add_uninstalled_widget(game) self.add_uninstalled_widget(game)
self.icon_layout.addWidget(self.widgets[app_name][0]) self._update_games()
self.list_layout.addWidget(self.widgets[app_name][1])
else: else:
installed_names = [i.app_name for i in self.core.get_installed_list()] installed_names = [i.app_name for i in self.core.get_installed_list()]
# get Uninstalled games # get Uninstalled games
@ -407,3 +366,49 @@ class GameList(QStackedWidget):
i_widget, list_widget = self.widgets[name] i_widget, list_widget = self.widgets[name]
self.icon_layout.addWidget(i_widget) self.icon_layout.addWidget(i_widget)
self.list_layout.addWidget(list_widget) self.list_layout.addWidget(list_widget)
def _update_games(self):
# new layouts to remove from old layout
icon_layout = FlowLayout()
# QWidget().setLayout(self.list_layout)
list_layout = QVBoxLayout()
for igame in sorted(self.core.get_installed_list(), key=lambda x: x.title):
i_widget, l_widget = self.widgets[igame.app_name]
icon_layout.addWidget(i_widget)
list_layout.addWidget(l_widget)
self.uninstalled_names = []
installed_names = [i.app_name for i in self.core.get_installed_list()]
# get Uninstalled games
games, self.dlcs = self.core.get_game_and_dlc_list()
for game in sorted(games, key=lambda x: x.app_title):
if not game.app_name in installed_names:
self.uninstalled_names.append(game)
for game in self.uninstalled_names:
i_widget, list_widget = self.widgets[game.app_name]
icon_layout.addWidget(i_widget)
list_layout.addWidget(list_widget)
QWidget().setLayout(self.icon_layout)
QWidget().setLayout(self.list_layout)
self.icon_widget = QWidget()
self.list_widget = QWidget()
self.icon_widget.setLayout(icon_layout)
self.list_widget.setLayout(list_layout)
self.list_scrollarea.setWidget(QWidget())
self.icon_scrollarea.setWidget(QWidget())
self.icon_scrollarea.setWidget(self.icon_widget)
self.list_scrollarea.setWidget(self.list_widget)
self.icon_layout = icon_layout
self.list_layout = list_layout
self.icon_widget.setLayout(self.icon_layout)
self.list_widget.setLayout(self.list_layout)
self.update()