Add Epic Overlay Settings in Legendary Settings + Update Legendary submodule
This commit is contained in:
parent
de6c06906e
commit
0cea43f0d1
|
@ -3,10 +3,12 @@ import platform
|
|||
from multiprocessing import Queue as MPQueue
|
||||
|
||||
from PyQt5.QtCore import Qt, QObject, QRunnable, QThreadPool, pyqtSignal, pyqtSlot
|
||||
from PyQt5.QtGui import QCloseEvent
|
||||
from PyQt5.QtGui import QCloseEvent, QKeyEvent
|
||||
from PyQt5.QtWidgets import QDialog, QFileDialog, QCheckBox, QMessageBox
|
||||
|
||||
from legendary.core import LegendaryCore
|
||||
from legendary.models.downloading import ConditionCheckResult
|
||||
from legendary.models.game import Game
|
||||
from legendary.utils.selective_dl import games
|
||||
from rare import shared
|
||||
from rare.ui.components.dialogs.install_dialog import Ui_InstallDialog
|
||||
|
@ -19,7 +21,7 @@ class InstallDialog(QDialog, Ui_InstallDialog):
|
|||
result_ready = pyqtSignal(InstallQueueItemModel)
|
||||
|
||||
def __init__(
|
||||
self, dl_item: InstallQueueItemModel, update=False, silent=False, parent=None
|
||||
self, dl_item: InstallQueueItemModel, update=False, silent=False, parent=None
|
||||
):
|
||||
super(InstallDialog, self).__init__(parent)
|
||||
self.setupUi(self)
|
||||
|
@ -30,7 +32,9 @@ class InstallDialog(QDialog, Ui_InstallDialog):
|
|||
self.dl_item = dl_item
|
||||
self.dl_item.status_q = MPQueue()
|
||||
self.app_name = self.dl_item.options.app_name
|
||||
self.game = self.core.get_game(self.app_name)
|
||||
self.game = self.core.get_game(self.app_name) \
|
||||
if not self.dl_item.options.overlay \
|
||||
else Game(app_name=self.app_name, app_title="Epic Overlay")
|
||||
self.update = update
|
||||
self.silent = silent
|
||||
|
||||
|
@ -46,8 +50,11 @@ class InstallDialog(QDialog, Ui_InstallDialog):
|
|||
self.setWindowTitle(f'{self.windowTitle()} - {header} "{self.game.app_title}"')
|
||||
|
||||
default_path = os.path.expanduser("~/legendary")
|
||||
|
||||
if self.core.lgd.config.has_option("Legendary", "install_dir"):
|
||||
default_path = self.core.lgd.config.get("Legendary", "install_dir")
|
||||
if self.dl_item.options.overlay:
|
||||
default_path = os.path.expanduser("~/legendary/.overlay")
|
||||
|
||||
self.install_dir_edit = PathEdit(
|
||||
path=default_path,
|
||||
|
@ -82,8 +89,8 @@ class InstallDialog(QDialog, Ui_InstallDialog):
|
|||
),
|
||||
)
|
||||
if (
|
||||
self.platform_combo_box.currentText() == "Mac"
|
||||
and platform.system() != "Darwin"
|
||||
self.platform_combo_box.currentText() == "Mac"
|
||||
and platform.system() != "Darwin"
|
||||
)
|
||||
else None
|
||||
)
|
||||
|
@ -125,6 +132,13 @@ class InstallDialog(QDialog, Ui_InstallDialog):
|
|||
|
||||
self.install_button.setEnabled(False)
|
||||
|
||||
if self.dl_item.options.overlay:
|
||||
self.platform_label.setVisible(False)
|
||||
self.platform_combo_box.setVisible(False)
|
||||
self.ignore_space_info_label.setVisible(False)
|
||||
self.ignore_space_check.setVisible(False)
|
||||
self.ignore_space_label.setVisible(False)
|
||||
|
||||
self.cancel_button.clicked.connect(self.cancel_clicked)
|
||||
self.verify_button.clicked.connect(self.verify_clicked)
|
||||
self.install_button.clicked.connect(self.install_clicked)
|
||||
|
@ -144,6 +158,7 @@ class InstallDialog(QDialog, Ui_InstallDialog):
|
|||
self.dl_item.options.base_path = (
|
||||
self.install_dir_edit.text() if not self.update else None
|
||||
)
|
||||
|
||||
self.dl_item.options.max_workers = self.max_workers_spin.value()
|
||||
self.dl_item.options.force = self.force_download_check.isChecked()
|
||||
self.dl_item.options.ignore_space_req = self.ignore_space_check.isChecked()
|
||||
|
@ -157,7 +172,7 @@ class InstallDialog(QDialog, Ui_InstallDialog):
|
|||
|
||||
def get_download_info(self):
|
||||
self.dl_item.download = None
|
||||
info_worker = InstallInfoWorker(self.core, self.dl_item)
|
||||
info_worker = InstallInfoWorker(self.core, self.dl_item, self.game)
|
||||
info_worker.setAutoDelete(True)
|
||||
info_worker.signals.result.connect(self.on_worker_result)
|
||||
info_worker.signals.failed.connect(self.on_worker_failed)
|
||||
|
@ -250,6 +265,10 @@ class InstallDialog(QDialog, Ui_InstallDialog):
|
|||
self.result_ready.emit(self.dl_item)
|
||||
a0.accept()
|
||||
|
||||
def keyPressEvent(self, e: QKeyEvent) -> None:
|
||||
if e.key() == Qt.Key_Escape:
|
||||
self.cancel_clicked()
|
||||
|
||||
|
||||
class InstallInfoWorkerSignals(QObject):
|
||||
result = pyqtSignal(InstallDownloadModel)
|
||||
|
@ -258,45 +277,73 @@ class InstallInfoWorkerSignals(QObject):
|
|||
|
||||
|
||||
class InstallInfoWorker(QRunnable):
|
||||
def __init__(self, core: LegendaryCore, dl_item: InstallQueueItemModel):
|
||||
def __init__(self, core: LegendaryCore, dl_item: InstallQueueItemModel, game: Game = None):
|
||||
super(InstallInfoWorker, self).__init__()
|
||||
self.signals = InstallInfoWorkerSignals()
|
||||
self.core = core
|
||||
self.dl_item = dl_item
|
||||
self.is_overlay_install = self.dl_item.options.overlay
|
||||
self.game = game
|
||||
|
||||
@pyqtSlot()
|
||||
def run(self):
|
||||
try:
|
||||
download = InstallDownloadModel(
|
||||
*self.core.prepare_download(
|
||||
app_name=self.dl_item.options.app_name,
|
||||
base_path=self.dl_item.options.base_path,
|
||||
force=self.dl_item.options.force,
|
||||
no_install=self.dl_item.options.no_install,
|
||||
status_q=self.dl_item.status_q,
|
||||
# max_shm=,
|
||||
max_workers=self.dl_item.options.max_workers,
|
||||
# game_folder=,
|
||||
# disable_patching=,
|
||||
# override_manifest=,
|
||||
# override_old_manifest=,
|
||||
# override_base_url=,
|
||||
platform=self.dl_item.options.platform,
|
||||
# file_prefix_filter=,
|
||||
# file_exclude_filter=,
|
||||
# file_install_tag=,
|
||||
# dl_optimizations=,
|
||||
# dl_timeout=,
|
||||
repair=self.dl_item.options.repair,
|
||||
# repair_use_latest=,
|
||||
ignore_space_req=self.dl_item.options.ignore_space_req,
|
||||
# disable_delta=,
|
||||
# override_delta_manifest=,
|
||||
# reset_sdl=,
|
||||
sdl_prompt=lambda app_name, title: self.dl_item.options.sdl_list,
|
||||
if not self.is_overlay_install:
|
||||
download = InstallDownloadModel(
|
||||
*self.core.prepare_download(
|
||||
app_name=self.dl_item.options.app_name,
|
||||
base_path=self.dl_item.options.base_path,
|
||||
force=self.dl_item.options.force,
|
||||
no_install=self.dl_item.options.no_install,
|
||||
status_q=self.dl_item.status_q,
|
||||
# max_shm=,
|
||||
max_workers=self.dl_item.options.max_workers,
|
||||
# game_folder=,
|
||||
# disable_patching=,
|
||||
# override_manifest=,
|
||||
# override_old_manifest=,
|
||||
# override_base_url=,
|
||||
platform=self.dl_item.options.platform,
|
||||
# file_prefix_filter=,
|
||||
# file_exclude_filter=,
|
||||
# file_install_tag=,
|
||||
# dl_optimizations=,
|
||||
# dl_timeout=,
|
||||
repair=self.dl_item.options.repair,
|
||||
# repair_use_latest=,
|
||||
ignore_space_req=self.dl_item.options.ignore_space_req,
|
||||
# disable_delta=,
|
||||
# override_delta_manifest=,
|
||||
# reset_sdl=,
|
||||
sdl_prompt=lambda app_name, title: self.dl_item.options.sdl_list,
|
||||
)
|
||||
)
|
||||
)
|
||||
if not download.res.failures:
|
||||
|
||||
else:
|
||||
if not os.path.exists(path := self.dl_item.options.base_path):
|
||||
os.makedirs(path)
|
||||
if len(os.listdir(self.dl_item.options.base_path)) != 0:
|
||||
new_path = os.path.join(self.dl_item.options.base_path, "overlay")
|
||||
os.mkdir(new_path)
|
||||
|
||||
dlm, analysis, igame = self.core.prepare_overlay_install(
|
||||
path=self.dl_item.options.base_path,
|
||||
status_queue=self.dl_item.status_q,
|
||||
max_workers=self.dl_item.options.max_workers,
|
||||
force=self.dl_item.options.force
|
||||
)
|
||||
|
||||
download = InstallDownloadModel(
|
||||
dlmanager=dlm,
|
||||
analysis=analysis,
|
||||
game=self.game,
|
||||
igame=igame,
|
||||
repair=False,
|
||||
repair_file="",
|
||||
res=ConditionCheckResult() # empty
|
||||
)
|
||||
|
||||
if not download.res or not download.res.failures:
|
||||
self.signals.result.emit(download)
|
||||
else:
|
||||
self.signals.failed.emit(
|
||||
|
|
|
@ -13,6 +13,7 @@ from PyQt5.QtWidgets import QMessageBox
|
|||
|
||||
from legendary.core import LegendaryCore
|
||||
from legendary.models.downloading import UIUpdate, WriterTask
|
||||
from rare import shared
|
||||
from rare.utils.models import InstallQueueItemModel
|
||||
|
||||
logger = getLogger("Download")
|
||||
|
@ -31,6 +32,7 @@ class DownloadThread(QThread):
|
|||
self.igame = queue_item.download.igame
|
||||
self.repair = queue_item.download.repair
|
||||
self.repair_file = queue_item.download.repair_file
|
||||
self.queue_item = queue_item
|
||||
self._kill = False
|
||||
|
||||
def run(self):
|
||||
|
@ -143,6 +145,12 @@ class DownloadThread(QThread):
|
|||
logger.info(f"Download finished in {start_time - end_t}s")
|
||||
game = self.core.get_game(self.igame.app_name)
|
||||
|
||||
if self.queue_item.options.overlay:
|
||||
shared.signals.overlay_installation_finished.emit()
|
||||
self.core.finish_overlay_install(self.igame)
|
||||
self.status.emit("finish")
|
||||
return
|
||||
|
||||
if not self.no_install:
|
||||
postinstall = self.core.install_game(self.igame)
|
||||
if postinstall:
|
||||
|
|
|
@ -133,6 +133,8 @@ class GamesTab(QStackedWidget, Ui_GamesTab):
|
|||
|
||||
def installation_started(self, app_name: str):
|
||||
game = self.core.get_game(app_name, False)
|
||||
if not game:
|
||||
return
|
||||
if game.is_dlc:
|
||||
return
|
||||
self.installing_widget.set_game(app_name)
|
||||
|
|
188
rare/components/tabs/settings/eos.py
Normal file
188
rare/components/tabs/settings/eos.py
Normal file
|
@ -0,0 +1,188 @@
|
|||
import os
|
||||
import platform
|
||||
from logging import getLogger
|
||||
from typing import List
|
||||
|
||||
from PyQt5.QtWidgets import QGroupBox, QFormLayout, QMessageBox
|
||||
|
||||
from legendary.utils import eos
|
||||
from rare import shared
|
||||
from rare.components.dialogs.install_dialog import InstallDialog
|
||||
from rare.ui.components.tabs.settings.eos_widget import Ui_EosWidget
|
||||
from rare.utils.models import InstallOptionsModel
|
||||
|
||||
logger = getLogger("EOS")
|
||||
|
||||
|
||||
class InstallOverlayDialog(InstallDialog):
|
||||
def __init__(self):
|
||||
super(InstallOverlayDialog, self).__init__()
|
||||
|
||||
self.layout = QFormLayout()
|
||||
|
||||
|
||||
def get_wine_prefixes() -> List[str]:
|
||||
prefixes = [os.path.expanduser("~/.wine")]
|
||||
for i in shared.core.get_installed_list():
|
||||
env = shared.core.get_app_environment(i.app_name)
|
||||
if pfx := env.get("WINEPREFIX"):
|
||||
if pfx not in prefixes:
|
||||
prefixes.append(pfx)
|
||||
if steam_pfx := env.get("STEAM_COMPAT_DATA_PATH"):
|
||||
if steam_pfx not in prefixes:
|
||||
prefixes.append(os.path.join(steam_pfx, "pfx"))
|
||||
return prefixes
|
||||
|
||||
|
||||
# TODO Update Button
|
||||
|
||||
|
||||
class EosWidget(QGroupBox, Ui_EosWidget):
|
||||
def __init__(self):
|
||||
super(EosWidget, self).__init__()
|
||||
self.setupUi(self)
|
||||
self.core = shared.core
|
||||
|
||||
self.prefix_enabled = False
|
||||
|
||||
self.info_stack.addWidget(self.installed_info_gb)
|
||||
self.info_stack.addWidget(self.install_overlay_gb)
|
||||
|
||||
self.enabled_cb.stateChanged.connect(self.change_enable)
|
||||
self.uninstall_button.clicked.connect(self.uninstall_overlay)
|
||||
|
||||
self.update_button.setVisible(False)
|
||||
self.overlay = self.core.lgd.get_overlay_install_info()
|
||||
|
||||
shared.signals.overlay_installation_finished.connect(self.overlay_installation_finished)
|
||||
|
||||
self.update_check_button.clicked.connect(self.check_for_update)
|
||||
self.install_button.clicked.connect(self.install_overlay)
|
||||
|
||||
if self.overlay: # installed
|
||||
self.installed_version_lbl.setText(self.overlay.version)
|
||||
self.installed_path_lbl.setText(self.overlay.install_path)
|
||||
else:
|
||||
self.info_stack.setCurrentIndex(1)
|
||||
self.enable_gb.setDisabled(True)
|
||||
|
||||
if platform.system() == "Windows":
|
||||
self.current_prefix = None
|
||||
self.select_pfx_combo.setVisible(False)
|
||||
else:
|
||||
self.current_prefix = os.path.expanduser("~/.wine")
|
||||
for pfx in get_wine_prefixes():
|
||||
self.select_pfx_combo.addItem(pfx.replace(os.path.expanduser("~/"), "~/"))
|
||||
self.select_pfx_combo.currentIndexChanged.connect(self.update_select_combo)
|
||||
self.update_select_combo(None)
|
||||
|
||||
reg_paths = eos.query_registry_entries(self.current_prefix)
|
||||
enabled = False
|
||||
if reg_paths['overlay_path'] and self.core.is_overlay_install(reg_paths['overlay_path']):
|
||||
enabled = True
|
||||
|
||||
self.enabled_cb.setChecked(enabled)
|
||||
self.enabled_info_label.setText("")
|
||||
|
||||
def check_for_update(self):
|
||||
self.core.check_for_overlay_updates()
|
||||
if self.core.overlay_update_available:
|
||||
self.update_button.setVisible(True)
|
||||
|
||||
def overlay_installation_finished(self):
|
||||
self.overlay = self.core.lgd.get_overlay_install_info()
|
||||
|
||||
if not self.overlay:
|
||||
logger.error("Something went wrong, when installing overlay")
|
||||
QMessageBox.warning(self, "Error", self.tr("Something went wrong, when installing overlay"))
|
||||
return
|
||||
|
||||
self.info_stack.setCurrentIndex(0)
|
||||
self.installed_version_lbl.setText(self.overlay.version)
|
||||
self.installed_path_lbl.setText(self.overlay.install_path)
|
||||
|
||||
self.enable_gb.setEnabled(True)
|
||||
|
||||
def update_select_combo(self, i: None):
|
||||
if i is None:
|
||||
i = self.select_pfx_combo.currentIndex()
|
||||
prefix = self.select_pfx_combo.itemText(i).replace("~/", os.path.expanduser("~/"))
|
||||
self.current_prefix = prefix
|
||||
reg_paths = eos.query_registry_entries(self.current_prefix)
|
||||
|
||||
overlay_enabled = False
|
||||
if reg_paths['overlay_path'] and self.core.is_overlay_install(reg_paths['overlay_path']):
|
||||
overlay_enabled = True
|
||||
self.enabled_cb.setChecked(overlay_enabled)
|
||||
|
||||
def change_enable(self):
|
||||
enabled = self.enabled_cb.isChecked()
|
||||
if not enabled:
|
||||
eos.remove_registry_entries(self.current_prefix)
|
||||
logger.info("Disabled Epic Overlay")
|
||||
self.enabled_info_label.setText(self.tr("Disabled"))
|
||||
else:
|
||||
if not self.overlay:
|
||||
available_installs = self.core.search_overlay_installs(self.current_prefix)
|
||||
if not available_installs:
|
||||
logger.error('No EOS overlay installs found!')
|
||||
return
|
||||
path = available_installs[0]
|
||||
else:
|
||||
path = self.overlay.install_path
|
||||
|
||||
if not self.core.is_overlay_install(path):
|
||||
logger.error(f'Not a valid Overlay installation: {path}')
|
||||
self.select_pfx_combo.removeItem(self.select_pfx_combo.currentIndex())
|
||||
return
|
||||
|
||||
path = os.path.normpath(path)
|
||||
reg_paths = eos.query_registry_entries(self.current_prefix)
|
||||
if old_path := reg_paths["overlay_path"]:
|
||||
if os.path.normpath(old_path) == path:
|
||||
logger.info(f'Overlay already enabled, nothing to do.')
|
||||
return
|
||||
else:
|
||||
logger.info(f'Updating overlay registry entries from "{old_path}" to "{path}"')
|
||||
eos.remove_registry_entries(self.current_prefix)
|
||||
eos.add_registry_entries(path, self.current_prefix)
|
||||
self.enabled_info_label.setText(self.tr("Enabled"))
|
||||
logger.info(f'Enabled overlay at: {path}')
|
||||
|
||||
def update_checkbox(self):
|
||||
reg_paths = eos.query_registry_entries(self.current_prefix)
|
||||
enabled = False
|
||||
if reg_paths['overlay_path'] and self.core.is_overlay_install(reg_paths['overlay_path']):
|
||||
enabled = True
|
||||
self.enabled_cb.setChecked(enabled)
|
||||
|
||||
def install_overlay(self):
|
||||
options = InstallOptionsModel(app_name="", base_path=os.path.expanduser("~/legendary/.overlay"),
|
||||
platform="Windows", overlay=True)
|
||||
|
||||
shared.signals.install_game.emit(options)
|
||||
|
||||
def uninstall_overlay(self):
|
||||
if not self.core.is_overlay_installed():
|
||||
logger.error('No legendary-managed overlay installation found.')
|
||||
self.info_stack.setCurrentIndex(1)
|
||||
return
|
||||
|
||||
if QMessageBox.No == QMessageBox.question(
|
||||
self, "Uninstall Overlay", self.tr("Do you want to uninstall overlay?"),
|
||||
QMessageBox.Yes | QMessageBox.No, QMessageBox.No
|
||||
):
|
||||
return
|
||||
if platform.system() == "Windows":
|
||||
eos.remove_registry_entries(None)
|
||||
else:
|
||||
for prefix in [self.select_pfx_combo.itemText(i) for i in range(self.select_pfx_combo.count())]:
|
||||
try:
|
||||
eos.remove_registry_entries(os.path.expanduser(prefix))
|
||||
except:
|
||||
pass
|
||||
|
||||
self.core.remove_overlay_install()
|
||||
self.info_stack.setCurrentIndex(1)
|
||||
|
||||
self.enable_gb.setDisabled(True)
|
|
@ -6,6 +6,7 @@ from PyQt5.QtCore import QRunnable, QObject, pyqtSignal, QThreadPool
|
|||
from PyQt5.QtWidgets import QSizePolicy, QWidget, QFileDialog, QMessageBox
|
||||
|
||||
import rare.shared as shared
|
||||
from rare.components.tabs.settings.eos import EosWidget
|
||||
from rare.components.tabs.settings.ubisoft_activation import UbiActivationHelper
|
||||
from rare.ui.components.tabs.settings.legendary import Ui_LegendarySettings
|
||||
from rare.utils.extra_widgets import PathEdit, IndicatorLineEdit
|
||||
|
@ -84,6 +85,9 @@ class LegendarySettings(QWidget, Ui_LegendarySettings):
|
|||
self.locale_layout.addWidget(self.locale_edit)
|
||||
|
||||
self.ubi_helper = UbiActivationHelper(self.ubisoft_gb)
|
||||
self.eos_widget = EosWidget()
|
||||
self.layout().replaceWidget(self.eos_placeholder, self.eos_widget)
|
||||
self.eos_placeholder.deleteLater()
|
||||
|
||||
self.refresh_game_meta_btn.clicked.connect(self.refresh_game_meta)
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit d371c0b3c48a422ff7e6c966af649a1502300c2d
|
||||
Subproject commit 454e62f536d3527bfedd87407116ee6e44fcec3d
|
142
rare/ui/components/tabs/settings/eos_widget.py
Normal file
142
rare/ui/components/tabs/settings/eos_widget.py
Normal file
|
@ -0,0 +1,142 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'rare/ui/components/tabs/settings/eos_widget.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.6
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_EosWidget(object):
|
||||
def setupUi(self, EosWidget):
|
||||
EosWidget.setObjectName("EosWidget")
|
||||
EosWidget.resize(1128, 319)
|
||||
EosWidget.setWindowTitle("GroupBox")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(EosWidget)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.info_stack = QtWidgets.QStackedWidget(EosWidget)
|
||||
self.info_stack.setObjectName("info_stack")
|
||||
self.horizontalLayout.addWidget(self.info_stack)
|
||||
self.enable_gb = QtWidgets.QGroupBox(EosWidget)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.enable_gb.sizePolicy().hasHeightForWidth())
|
||||
self.enable_gb.setSizePolicy(sizePolicy)
|
||||
self.enable_gb.setObjectName("enable_gb")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.enable_gb)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.select_pfx_combo = QtWidgets.QComboBox(self.enable_gb)
|
||||
self.select_pfx_combo.setObjectName("select_pfx_combo")
|
||||
self.verticalLayout.addWidget(self.select_pfx_combo, 0, QtCore.Qt.AlignTop)
|
||||
self.enabled_cb = QtWidgets.QCheckBox(self.enable_gb)
|
||||
self.enabled_cb.setObjectName("enabled_cb")
|
||||
self.verticalLayout.addWidget(self.enabled_cb)
|
||||
self.enabled_info_label = QtWidgets.QLabel(self.enable_gb)
|
||||
font = QtGui.QFont()
|
||||
font.setItalic(True)
|
||||
self.enabled_info_label.setFont(font)
|
||||
self.enabled_info_label.setText("")
|
||||
self.enabled_info_label.setObjectName("enabled_info_label")
|
||||
self.verticalLayout.addWidget(self.enabled_info_label)
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.verticalLayout.addItem(spacerItem)
|
||||
self.horizontalLayout.addWidget(self.enable_gb)
|
||||
self.installed_info_gb = QtWidgets.QGroupBox(EosWidget)
|
||||
self.installed_info_gb.setObjectName("installed_info_gb")
|
||||
self.formLayout = QtWidgets.QFormLayout(self.installed_info_gb)
|
||||
self.formLayout.setObjectName("formLayout")
|
||||
self.installed_version_info_lbl = QtWidgets.QLabel(self.installed_info_gb)
|
||||
self.installed_version_info_lbl.setObjectName("installed_version_info_lbl")
|
||||
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.installed_version_info_lbl)
|
||||
self.installed_version_lbl = QtWidgets.QLabel(self.installed_info_gb)
|
||||
self.installed_version_lbl.setText("TextLabel")
|
||||
self.installed_version_lbl.setObjectName("installed_version_lbl")
|
||||
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.installed_version_lbl)
|
||||
self.installed_path_info_lbl = QtWidgets.QLabel(self.installed_info_gb)
|
||||
self.installed_path_info_lbl.setObjectName("installed_path_info_lbl")
|
||||
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.installed_path_info_lbl)
|
||||
self.installed_path_lbl = QtWidgets.QLabel(self.installed_info_gb)
|
||||
self.installed_path_lbl.setText("TextLabel")
|
||||
self.installed_path_lbl.setObjectName("installed_path_lbl")
|
||||
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.installed_path_lbl)
|
||||
self.update_available_info_label = QtWidgets.QLabel(self.installed_info_gb)
|
||||
self.update_available_info_label.setObjectName("update_available_info_label")
|
||||
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.update_available_info_label)
|
||||
self.update_check_button = QtWidgets.QPushButton(self.installed_info_gb)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.update_check_button.sizePolicy().hasHeightForWidth())
|
||||
self.update_check_button.setSizePolicy(sizePolicy)
|
||||
self.update_check_button.setMaximumSize(QtCore.QSize(150, 16777215))
|
||||
self.update_check_button.setObjectName("update_check_button")
|
||||
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.update_check_button)
|
||||
self.update_button = QtWidgets.QPushButton(self.installed_info_gb)
|
||||
self.update_button.setObjectName("update_button")
|
||||
self.formLayout.setWidget(3, QtWidgets.QFormLayout.SpanningRole, self.update_button)
|
||||
self.uninstall_info_label = QtWidgets.QLabel(self.installed_info_gb)
|
||||
self.uninstall_info_label.setObjectName("uninstall_info_label")
|
||||
self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.uninstall_info_label)
|
||||
self.uninstall_button = QtWidgets.QPushButton(self.installed_info_gb)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.uninstall_button.sizePolicy().hasHeightForWidth())
|
||||
self.uninstall_button.setSizePolicy(sizePolicy)
|
||||
self.uninstall_button.setMaximumSize(QtCore.QSize(150, 16777215))
|
||||
self.uninstall_button.setObjectName("uninstall_button")
|
||||
self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.uninstall_button)
|
||||
self.horizontalLayout.addWidget(self.installed_info_gb)
|
||||
self.install_overlay_gb = QtWidgets.QGroupBox(EosWidget)
|
||||
self.install_overlay_gb.setObjectName("install_overlay_gb")
|
||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.install_overlay_gb)
|
||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||
self.label = QtWidgets.QLabel(self.install_overlay_gb)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
|
||||
self.label.setSizePolicy(sizePolicy)
|
||||
self.label.setObjectName("label")
|
||||
self.verticalLayout_4.addWidget(self.label)
|
||||
self.install_button = QtWidgets.QPushButton(self.install_overlay_gb)
|
||||
self.install_button.setObjectName("install_button")
|
||||
self.verticalLayout_4.addWidget(self.install_button)
|
||||
self.horizontalLayout.addWidget(self.install_overlay_gb)
|
||||
|
||||
self.retranslateUi(EosWidget)
|
||||
self.info_stack.setCurrentIndex(-1)
|
||||
QtCore.QMetaObject.connectSlotsByName(EosWidget)
|
||||
|
||||
def retranslateUi(self, EosWidget):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
EosWidget.setTitle(_translate("EosWidget", "Epic Overlay settings"))
|
||||
self.enable_gb.setTitle(_translate("EosWidget", "Enable / Disable"))
|
||||
self.enabled_cb.setText(_translate("EosWidget", "Activated"))
|
||||
self.installed_info_gb.setTitle(_translate("EosWidget", "Installed Info"))
|
||||
self.installed_version_info_lbl.setText(_translate("EosWidget", "Installed version: "))
|
||||
self.installed_path_info_lbl.setText(_translate("EosWidget", "Installed path"))
|
||||
self.update_available_info_label.setText(_translate("EosWidget", "Updates"))
|
||||
self.update_check_button.setText(_translate("EosWidget", "Check for Update"))
|
||||
self.update_button.setText(_translate("EosWidget", "Update"))
|
||||
self.uninstall_info_label.setText(_translate("EosWidget", "Uninstall"))
|
||||
self.uninstall_button.setText(_translate("EosWidget", "Uninstall"))
|
||||
self.install_overlay_gb.setTitle(_translate("EosWidget", "Install Overlay"))
|
||||
self.label.setText(_translate("EosWidget", "No overlays are installed"))
|
||||
self.install_button.setText(_translate("EosWidget", "Install"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
EosWidget = QtWidgets.QGroupBox()
|
||||
ui = Ui_EosWidget()
|
||||
ui.setupUi(EosWidget)
|
||||
EosWidget.show()
|
||||
sys.exit(app.exec_())
|
206
rare/ui/components/tabs/settings/eos_widget.ui
Normal file
206
rare/ui/components/tabs/settings/eos_widget.ui
Normal file
|
@ -0,0 +1,206 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>EosWidget</class>
|
||||
<widget class="QGroupBox" name="EosWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1128</width>
|
||||
<height>319</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string notr="true">GroupBox</string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Epic Overlay settings</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QStackedWidget" name="info_stack">
|
||||
<property name="currentIndex">
|
||||
<number>-1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="enable_gb">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Enable / Disable</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item alignment="Qt::AlignTop">
|
||||
<widget class="QComboBox" name="select_pfx_combo"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="enabled_cb">
|
||||
<property name="text">
|
||||
<string>Activated</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="enabled_info_label">
|
||||
<property name="font">
|
||||
<font>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="installed_info_gb">
|
||||
<property name="title">
|
||||
<string>Installed Info</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="installed_version_info_lbl">
|
||||
<property name="text">
|
||||
<string>Installed version:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="installed_version_lbl">
|
||||
<property name="text">
|
||||
<string notr="true">TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="installed_path_info_lbl">
|
||||
<property name="text">
|
||||
<string>Installed path</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="installed_path_lbl">
|
||||
<property name="text">
|
||||
<string notr="true">TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="update_available_info_label">
|
||||
<property name="text">
|
||||
<string>Updates</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QPushButton" name="update_check_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Check for Update</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QPushButton" name="update_button">
|
||||
<property name="text">
|
||||
<string>Update</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="uninstall_info_label">
|
||||
<property name="text">
|
||||
<string>Uninstall</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QPushButton" name="uninstall_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>150</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Uninstall</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="install_overlay_gb">
|
||||
<property name="title">
|
||||
<string>Install Overlay</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>No overlays are installed</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="install_button">
|
||||
<property name="text">
|
||||
<string>Install</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -14,7 +14,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
|
|||
class Ui_LegendarySettings(object):
|
||||
def setupUi(self, LegendarySettings):
|
||||
LegendarySettings.setObjectName("LegendarySettings")
|
||||
LegendarySettings.resize(564, 374)
|
||||
LegendarySettings.resize(905, 568)
|
||||
LegendarySettings.setWindowTitle("LegendarySettings")
|
||||
self.gridLayout = QtWidgets.QGridLayout(LegendarySettings)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
|
@ -26,11 +26,13 @@ class Ui_LegendarySettings(object):
|
|||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.locale_group.sizePolicy().hasHeightForWidth())
|
||||
self.locale_group.setSizePolicy(sizePolicy)
|
||||
self.locale_group.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
|
||||
self.locale_group.setObjectName("locale_group")
|
||||
self.locale_layout = QtWidgets.QVBoxLayout(self.locale_group)
|
||||
self.locale_layout.setObjectName("locale_layout")
|
||||
self.right_layout.addWidget(self.locale_group)
|
||||
self.cleanup_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||
self.cleanup_group.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
|
||||
self.cleanup_group.setObjectName("cleanup_group")
|
||||
self.cleanup_layout = QtWidgets.QVBoxLayout(self.cleanup_group)
|
||||
self.cleanup_layout.setObjectName("cleanup_layout")
|
||||
|
@ -45,19 +47,16 @@ class Ui_LegendarySettings(object):
|
|||
self.cleanup_layout.addWidget(self.refresh_game_meta_btn)
|
||||
self.right_layout.addWidget(self.cleanup_group)
|
||||
self.gridLayout.addLayout(self.right_layout, 0, 1, 1, 1)
|
||||
self.ubisoft_gb = QtWidgets.QGroupBox(LegendarySettings)
|
||||
self.ubisoft_gb.setObjectName("ubisoft_gb")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.ubisoft_gb)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.gridLayout.addWidget(self.ubisoft_gb, 1, 0, 1, 2)
|
||||
self.left_layout = QtWidgets.QVBoxLayout()
|
||||
self.left_layout.setObjectName("left_layout")
|
||||
self.install_dir_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||
self.install_dir_group.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
|
||||
self.install_dir_group.setObjectName("install_dir_group")
|
||||
self.install_dir_layout = QtWidgets.QVBoxLayout(self.install_dir_group)
|
||||
self.install_dir_layout.setObjectName("install_dir_layout")
|
||||
self.left_layout.addWidget(self.install_dir_group)
|
||||
self.download_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||
self.download_group.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
|
||||
self.download_group.setObjectName("download_group")
|
||||
self.download_layout = QtWidgets.QFormLayout(self.download_group)
|
||||
self.download_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
||||
|
@ -129,8 +128,18 @@ class Ui_LegendarySettings(object):
|
|||
self.download_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.disable_https_check)
|
||||
self.left_layout.addWidget(self.download_group)
|
||||
self.gridLayout.addLayout(self.left_layout, 0, 0, 1, 1)
|
||||
self.ubisoft_gb = QtWidgets.QGroupBox(LegendarySettings)
|
||||
self.ubisoft_gb.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
|
||||
self.ubisoft_gb.setObjectName("ubisoft_gb")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.ubisoft_gb)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.gridLayout.addWidget(self.ubisoft_gb, 2, 0, 1, 2)
|
||||
self.eos_placeholder = QtWidgets.QGroupBox(LegendarySettings)
|
||||
self.eos_placeholder.setTitle("GroupBox")
|
||||
self.eos_placeholder.setObjectName("eos_placeholder")
|
||||
self.gridLayout.addWidget(self.eos_placeholder, 3, 0, 1, 2)
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.gridLayout.addItem(spacerItem, 2, 0, 1, 2)
|
||||
self.gridLayout.addItem(spacerItem, 4, 0, 1, 2)
|
||||
|
||||
self.retranslateUi(LegendarySettings)
|
||||
QtCore.QMetaObject.connectSlotsByName(LegendarySettings)
|
||||
|
@ -142,7 +151,6 @@ class Ui_LegendarySettings(object):
|
|||
self.clean_keep_manifests_button.setText(_translate("LegendarySettings", "Clean, but keep manifests"))
|
||||
self.clean_button.setText(_translate("LegendarySettings", "Remove everything"))
|
||||
self.refresh_game_meta_btn.setText(_translate("LegendarySettings", "Refresh game meta"))
|
||||
self.ubisoft_gb.setTitle(_translate("LegendarySettings", "Link Ubisoft Games"))
|
||||
self.install_dir_group.setTitle(_translate("LegendarySettings", "Default Installation Directory"))
|
||||
self.download_group.setTitle(_translate("LegendarySettings", "Download Settings"))
|
||||
self.max_workers_label.setText(_translate("LegendarySettings", "Max Workers"))
|
||||
|
@ -153,6 +161,7 @@ class Ui_LegendarySettings(object):
|
|||
self.preferred_cdn_label.setText(_translate("LegendarySettings", "Preferred CDN"))
|
||||
self.preferred_cdn_line.setPlaceholderText(_translate("LegendarySettings", "Default"))
|
||||
self.disable_https_label.setText(_translate("LegendarySettings", "Disable HTTPS"))
|
||||
self.ubisoft_gb.setTitle(_translate("LegendarySettings", "Link Ubisoft Games"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
<widget class="QWidget" name="LegendarySettings">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>564</width>
|
||||
<height>374</height>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>905</width>
|
||||
<height>568</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -17,84 +17,88 @@
|
|||
<item row="0" column="1">
|
||||
<layout class="QVBoxLayout" name="right_layout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="locale_group">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Locale</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="locale_layout"/>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="locale_group">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Locale</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="locale_layout"/>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="cleanup_group">
|
||||
<property name="title">
|
||||
<string>Cleanup</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="cleanup_layout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="clean_keep_manifests_button">
|
||||
<property name="text">
|
||||
<string>Clean, but keep manifests</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="clean_button">
|
||||
<property name="text">
|
||||
<string>Remove everything</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="refresh_game_meta_btn">
|
||||
<property name="text">
|
||||
<string>Refresh game meta</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
<widget class="QGroupBox" name="cleanup_group">
|
||||
<property name="title">
|
||||
<string>Cleanup</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="cleanup_layout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="clean_keep_manifests_button">
|
||||
<property name="text">
|
||||
<string>Clean, but keep manifests</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="clean_button">
|
||||
<property name="text">
|
||||
<string>Remove everything</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="refresh_game_meta_btn">
|
||||
<property name="text">
|
||||
<string>Refresh game meta</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="ubisoft_gb">
|
||||
<property name="title">
|
||||
<string>Link Ubisoft Games</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout"/>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="left_layout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="install_dir_group">
|
||||
<property name="title">
|
||||
<string>Default Installation Directory</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="install_dir_layout"/>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="install_dir_group">
|
||||
<property name="title">
|
||||
<string>Default Installation Directory</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="install_dir_layout"/>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="download_group">
|
||||
<property name="title">
|
||||
<string>Download Settings</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="download_layout">
|
||||
<property name="labelAlignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="max_workers_label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
<widget class="QGroupBox" name="download_group">
|
||||
<property name="title">
|
||||
<string>Download Settings</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="download_layout">
|
||||
<property name="labelAlignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="max_workers_label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
|
@ -209,28 +213,46 @@
|
|||
<item row="3" column="1">
|
||||
<widget class="QCheckBox" name="disable_https_check">
|
||||
<property name="text">
|
||||
<string/>
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="ubisoft_gb">
|
||||
<property name="title">
|
||||
<string>Link Ubisoft Games</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout"/>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="eos_placeholder">
|
||||
<property name="title">
|
||||
<string notr="true">GroupBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
|
|
@ -24,6 +24,7 @@ class InstallOptionsModel:
|
|||
update: bool = False
|
||||
silent: bool = False
|
||||
platform: str = ""
|
||||
overlay: bool = False
|
||||
|
||||
def set_no_install(self, enabled: bool) -> None:
|
||||
self.no_install = enabled
|
||||
|
@ -134,6 +135,8 @@ class Signals(QObject):
|
|||
install_game = pyqtSignal(InstallOptionsModel)
|
||||
installation_finished = pyqtSignal(bool, str)
|
||||
|
||||
overlay_installation_finished = pyqtSignal()
|
||||
|
||||
update_gamelist = pyqtSignal(list)
|
||||
game_uninstalled = pyqtSignal(str)
|
||||
|
||||
|
|
Loading…
Reference in a new issue