Fixed some Bugs
This commit is contained in:
parent
7fff2688ce
commit
2376bd5fee
6 changed files with 26 additions and 25 deletions
|
@ -5,8 +5,8 @@ from PyQt5.QtCore import Qt, pyqtSignal, QSettings
|
||||||
from PyQt5.QtGui import QPixmap
|
from PyQt5.QtGui import QPixmap
|
||||||
from PyQt5.QtWidgets import *
|
from PyQt5.QtWidgets import *
|
||||||
|
|
||||||
from Rare.Components.Tabs.Games.GameWidgets.GameWidgetListUninstalled import ListWidgetUninstalled
|
from Rare.Components.Tabs.Games.GameWidgets.UninstalledListWidget import ListWidgetUninstalled
|
||||||
from Rare.Components.Tabs.Games.GameWidgets.IconWidgetUninstalled import IconWidgetUninstalled
|
from Rare.Components.Tabs.Games.GameWidgets.UninstalledIconWidget import IconWidgetUninstalled
|
||||||
from Rare.Components.Tabs.Games.GameWidgets.InstalledIconWidget import GameWidgetInstalled
|
from Rare.Components.Tabs.Games.GameWidgets.InstalledIconWidget import GameWidgetInstalled
|
||||||
from Rare.Components.Tabs.Games.GameWidgets.InstalledListWidget import InstalledListWidget
|
from Rare.Components.Tabs.Games.GameWidgets.InstalledListWidget import InstalledListWidget
|
||||||
from Rare.utils.Models import InstallOptions
|
from Rare.utils.Models import InstallOptions
|
||||||
|
@ -136,7 +136,7 @@ class GameList(QStackedWidget):
|
||||||
def filter(self, text: str):
|
def filter(self, text: str):
|
||||||
for t in self.widgets.values():
|
for t in self.widgets.values():
|
||||||
for w in t:
|
for w in t:
|
||||||
if text.lower() in w.game.title.lower() + w.game.app_name.lower():
|
if text.lower() in w.game.app_title.lower() + w.game.app_name.lower():
|
||||||
w.setVisible(True)
|
w.setVisible(True)
|
||||||
else:
|
else:
|
||||||
w.setVisible(False)
|
w.setVisible(False)
|
||||||
|
|
|
@ -2,6 +2,9 @@ from logging import getLogger
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, QProcess
|
from PyQt5.QtCore import pyqtSignal, QProcess
|
||||||
from PyQt5.QtWidgets import QWidget
|
from PyQt5.QtWidgets import QWidget
|
||||||
|
from custom_legendary.models.game import InstalledGame
|
||||||
|
|
||||||
|
from custom_legendary.core import LegendaryCore
|
||||||
|
|
||||||
from Rare.utils import LegendaryApi
|
from Rare.utils import LegendaryApi
|
||||||
|
|
||||||
|
@ -13,23 +16,25 @@ class BaseInstalledWidget(QWidget):
|
||||||
show_info = pyqtSignal(str)
|
show_info = pyqtSignal(str)
|
||||||
proc: QProcess()
|
proc: QProcess()
|
||||||
|
|
||||||
def __init__(self, game, core, pixmap):
|
def __init__(self, igame: InstalledGame, core: LegendaryCore, pixmap):
|
||||||
super(BaseInstalledWidget, self).__init__()
|
super(BaseInstalledWidget, self).__init__()
|
||||||
self.game = game
|
self.igame = igame
|
||||||
self.core = core
|
self.core = core
|
||||||
|
self.game = self.core.get_game(self.igame.app_name)
|
||||||
self.pixmap = pixmap
|
self.pixmap = pixmap
|
||||||
self.game_running = False
|
self.game_running = False
|
||||||
|
self.update_available = self.update_available = self.core.get_asset(self.game.app_name, True).build_version != igame.version
|
||||||
|
|
||||||
def launch(self, offline=False, skip_version_check=False):
|
def launch(self, offline=False, skip_version_check=False):
|
||||||
|
|
||||||
logger.info("Launching " + self.game.title)
|
logger.info("Launching " + self.igame.title)
|
||||||
self.proc = LegendaryApi.launch_game(self.core, self.game.app_name, offline,
|
self.proc = LegendaryApi.launch_game(self.core, self.igame.app_name, offline,
|
||||||
skip_version_check=skip_version_check)
|
skip_version_check=skip_version_check)
|
||||||
if not self.proc:
|
if not self.proc:
|
||||||
logger.error("Could not start process")
|
logger.error("Could not start process")
|
||||||
return 1
|
return 1
|
||||||
self.proc.finished.connect(self.finished)
|
self.proc.finished.connect(self.finished)
|
||||||
self.launch_signal.emit(self.game.app_name)
|
self.launch_signal.emit(self.igame.app_name)
|
||||||
self.game_running = True
|
self.game_running = True
|
||||||
return 0
|
return 0
|
||||||
def finished(self):
|
def finished(self):
|
||||||
|
|
|
@ -28,15 +28,10 @@ class GameWidgetInstalled(BaseInstalledWidget):
|
||||||
|
|
||||||
self.layout = QVBoxLayout()
|
self.layout = QVBoxLayout()
|
||||||
self.core = core
|
self.core = core
|
||||||
self.game = game
|
|
||||||
self.running = False
|
self.running = False
|
||||||
settings = QSettings()
|
settings = QSettings()
|
||||||
self.info_text = ""
|
self.info_text = ""
|
||||||
self.IMAGE_DIR = settings.value("img_dir", os.path.expanduser("~/.cache/rare"))
|
|
||||||
try:
|
|
||||||
self.update_available = self.core.get_asset(self.game.app_name, True).build_version != game.version
|
|
||||||
except:
|
|
||||||
self.update_available = False
|
|
||||||
if self.update_available:
|
if self.update_available:
|
||||||
logger.info("Update available for game: " + self.game.app_name)
|
logger.info("Update available for game: " + self.game.app_name)
|
||||||
self.info_text = self.tr("Update available")
|
self.info_text = self.tr("Update available")
|
||||||
|
|
|
@ -19,12 +19,9 @@ class InstalledListWidget(BaseInstalledWidget):
|
||||||
|
|
||||||
def __init__(self, game: InstalledGame, core: LegendaryCore, pixmap):
|
def __init__(self, game: InstalledGame, core: LegendaryCore, pixmap):
|
||||||
super(InstalledListWidget, self).__init__(game, core, pixmap)
|
super(InstalledListWidget, self).__init__(game, core, pixmap)
|
||||||
self.core = core
|
self.dev = core.get_game(self.igame.app_name).metadata["developer"]
|
||||||
self.game = game
|
|
||||||
self.dev = core.get_game(self.game.app_name).metadata["developer"]
|
|
||||||
self.size = game.install_size
|
self.size = game.install_size
|
||||||
self.launch_params = game.launch_parameters
|
self.launch_params = game.launch_parameters
|
||||||
self.update_available = self.core.get_asset(self.game.app_name, True).build_version != game.version
|
|
||||||
|
|
||||||
self.layout = QHBoxLayout()
|
self.layout = QHBoxLayout()
|
||||||
|
|
||||||
|
@ -38,21 +35,21 @@ class InstalledListWidget(BaseInstalledWidget):
|
||||||
self.layout.addWidget(self.image)
|
self.layout.addWidget(self.image)
|
||||||
|
|
||||||
play_icon = self.style().standardIcon(getattr(QStyle, 'SP_MediaPlay'))
|
play_icon = self.style().standardIcon(getattr(QStyle, 'SP_MediaPlay'))
|
||||||
self.title_widget = QLabel(f"<h1>{self.game.title}</h1>")
|
self.title_widget = QLabel(f"<h1>{self.igame.title}</h1>")
|
||||||
self.app_name_label = QLabel(self.game.app_name)
|
self.app_name_label = QLabel(self.igame.app_name)
|
||||||
self.launch_button = QPushButton(play_icon, self.tr("Launch"))
|
self.launch_button = QPushButton(play_icon, self.tr("Launch"))
|
||||||
self.launch_button.setObjectName("launch_game_button")
|
self.launch_button.setObjectName("launch_game_button")
|
||||||
self.launch_button.setFixedWidth(120)
|
self.launch_button.setFixedWidth(120)
|
||||||
|
|
||||||
self.info = QPushButton("Info")
|
self.info = QPushButton("Info")
|
||||||
self.info.clicked.connect(lambda: self.show_info.emit(self.game.app_name))
|
self.info.clicked.connect(lambda: self.show_info.emit(self.igame.app_name))
|
||||||
self.info.setFixedWidth(80)
|
self.info.setFixedWidth(80)
|
||||||
|
|
||||||
self.launch_button.clicked.connect(self.launch)
|
self.launch_button.clicked.connect(self.launch)
|
||||||
if os.name != "nt":
|
if os.name != "nt":
|
||||||
self.wine_rating = QLabel("Wine Rating: " + self.get_rating())
|
self.wine_rating = QLabel("Wine Rating: " + self.get_rating())
|
||||||
self.developer_label = QLabel(self.tr("Developer: ") + self.dev)
|
self.developer_label = QLabel(self.tr("Developer: ") + self.dev)
|
||||||
self.version_label = QLabel("Version: " + str(self.game.version))
|
self.version_label = QLabel("Version: " + str(self.igame.version))
|
||||||
self.size_label = QLabel(f"{self.tr('Installed size')}: {round(self.size / (1024 ** 3), 2)} GB")
|
self.size_label = QLabel(f"{self.tr('Installed size')}: {round(self.size / (1024 ** 3), 2)} GB")
|
||||||
self.childLayout.addWidget(self.title_widget)
|
self.childLayout.addWidget(self.title_widget)
|
||||||
self.childLayout.addWidget(self.launch_button)
|
self.childLayout.addWidget(self.launch_button)
|
||||||
|
|
|
@ -18,9 +18,6 @@ class IconWidgetUninstalled(BaseUninstalledWidget):
|
||||||
def __init__(self, game: Game, core: LegendaryCore, pixmap):
|
def __init__(self, game: Game, core: LegendaryCore, pixmap):
|
||||||
super(IconWidgetUninstalled, self).__init__(game, core, pixmap)
|
super(IconWidgetUninstalled, self).__init__(game, core, pixmap)
|
||||||
self.layout = QVBoxLayout()
|
self.layout = QVBoxLayout()
|
||||||
self.core = core
|
|
||||||
self.game = game
|
|
||||||
self.pixmap = pixmap
|
|
||||||
|
|
||||||
if self.pixmap:
|
if self.pixmap:
|
||||||
w = 200
|
w = 200
|
|
@ -14,6 +14,13 @@ class ListWidgetUninstalled(BaseUninstalledWidget):
|
||||||
super(ListWidgetUninstalled, self).__init__(game, core, pixmap)
|
super(ListWidgetUninstalled, self).__init__(game, core, pixmap)
|
||||||
self.layout = QHBoxLayout()
|
self.layout = QHBoxLayout()
|
||||||
|
|
||||||
|
if self.pixmap:
|
||||||
|
w = 200
|
||||||
|
self.pixmap = self.pixmap.scaled(w, int(w * 4 / 3))
|
||||||
|
self.image = QLabel()
|
||||||
|
self.image.setPixmap(self.pixmap)
|
||||||
|
self.layout.addWidget(self.image)
|
||||||
|
|
||||||
self.child_layout = QVBoxLayout()
|
self.child_layout = QVBoxLayout()
|
||||||
|
|
||||||
self.title_label = QLabel(f"<h2>{self.game.app_title}</h2>")
|
self.title_label = QLabel(f"<h2>{self.game.app_title}</h2>")
|
Loading…
Reference in a new issue