Move EGL Sync page into the main LegendarySettings page and make it useful. (WIP)
Move GameInfo to its own file. Use get_pixmap in GameDlcWidget to get the pixmap. Remove unused function from RareSettings. Convert About to FormLayout.
This commit is contained in:
parent
7a9daad2b1
commit
228c3ab03e
10 changed files with 924 additions and 907 deletions
|
@ -114,6 +114,7 @@ class InstallDialog(QDialog, Ui_InstallDialog):
|
||||||
self.dl_item.options.sdl_list = ['']
|
self.dl_item.options.sdl_list = ['']
|
||||||
for cb in self.sdl_list_checks:
|
for cb in self.sdl_list_checks:
|
||||||
if data := cb.isChecked():
|
if data := cb.isChecked():
|
||||||
|
# noinspection PyTypeChecker
|
||||||
self.dl_item.options.sdl_list.extend(data)
|
self.dl_item.options.sdl_list.extend(data)
|
||||||
|
|
||||||
def get_download_info(self):
|
def get_download_info(self):
|
||||||
|
|
|
@ -1,22 +1,12 @@
|
||||||
import json
|
from PyQt5.QtCore import Qt
|
||||||
import os
|
|
||||||
import platform
|
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal
|
|
||||||
from PyQt5.QtGui import QKeyEvent
|
from PyQt5.QtGui import QKeyEvent
|
||||||
from PyQt5.QtWidgets import QWidget, QTabWidget, QMessageBox
|
from PyQt5.QtWidgets import QWidget, QTabWidget
|
||||||
from qtawesome import icon
|
from qtawesome import icon
|
||||||
|
|
||||||
from legendary.core import LegendaryCore
|
|
||||||
from legendary.models.game import Game, InstalledGame
|
|
||||||
from rare import data_dir
|
|
||||||
from rare.components.tabs.games.game_info.game_dlc import GameDlc
|
from rare.components.tabs.games.game_info.game_dlc import GameDlc
|
||||||
|
from rare.components.tabs.games.game_info.game_info import GameInfo
|
||||||
from rare.components.tabs.games.game_info.game_settings import GameSettings
|
from rare.components.tabs.games.game_info.game_settings import GameSettings
|
||||||
from rare.ui.components.tabs.games.game_info.game_info import Ui_GameInfo
|
|
||||||
from rare.utils.extra_widgets import SideTabBar
|
from rare.utils.extra_widgets import SideTabBar
|
||||||
from rare.utils.legendary_utils import VerifyThread
|
|
||||||
from rare.utils.steam_grades import SteamWorker
|
|
||||||
from rare.utils.utils import get_size, get_pixmap
|
|
||||||
|
|
||||||
|
|
||||||
class InfoTabs(QTabWidget):
|
class InfoTabs(QTabWidget):
|
||||||
|
@ -58,113 +48,3 @@ class InfoTabs(QTabWidget):
|
||||||
def keyPressEvent(self, e: QKeyEvent):
|
def keyPressEvent(self, e: QKeyEvent):
|
||||||
if e.key() == Qt.Key_Escape:
|
if e.key() == Qt.Key_Escape:
|
||||||
self.parent().layout.setCurrentIndex(0)
|
self.parent().layout.setCurrentIndex(0)
|
||||||
|
|
||||||
|
|
||||||
class GameInfo(QWidget, Ui_GameInfo):
|
|
||||||
igame: InstalledGame
|
|
||||||
game: Game
|
|
||||||
uninstall_game = pyqtSignal(str)
|
|
||||||
update_list = pyqtSignal(str)
|
|
||||||
verify_game = pyqtSignal(str)
|
|
||||||
verify_threads = {}
|
|
||||||
|
|
||||||
def __init__(self, core: LegendaryCore, parent):
|
|
||||||
super(GameInfo, self).__init__(parent=parent)
|
|
||||||
self.setupUi(self)
|
|
||||||
self.core = core
|
|
||||||
|
|
||||||
|
|
||||||
self.ratings = {"platinum": self.tr("Platinum"),
|
|
||||||
"gold": self.tr("Gold"),
|
|
||||||
"silver": self.tr("Silver"),
|
|
||||||
"bronze": self.tr("Bronze"),
|
|
||||||
"fail": self.tr("Could not get grade"),
|
|
||||||
"pending": self.tr("Not enough reports")}
|
|
||||||
if os.path.exists(p := os.path.join(data_dir, "game_list.json")):
|
|
||||||
self.grade_table = json.load(open(p))
|
|
||||||
else:
|
|
||||||
self.grade_table = {}
|
|
||||||
|
|
||||||
if platform.system() == "Windows":
|
|
||||||
self.lbl_grade.setVisible(False)
|
|
||||||
self.grade.setVisible(False)
|
|
||||||
|
|
||||||
if platform.system() != "Windows":
|
|
||||||
self.steam_worker = SteamWorker(self.core)
|
|
||||||
self.steam_worker.rating_signal.connect(self.grade.setText)
|
|
||||||
|
|
||||||
self.game_actions_stack.setCurrentIndex(0)
|
|
||||||
self.game_actions_stack.resize(self.game_actions_stack.minimumSize())
|
|
||||||
|
|
||||||
self.uninstall_button.clicked.connect(self.uninstall)
|
|
||||||
self.verify_button.clicked.connect(self.verify)
|
|
||||||
self.repair_button.clicked.connect(self.repair)
|
|
||||||
|
|
||||||
def uninstall(self):
|
|
||||||
self.uninstall_game.emit(self.game.app_name)
|
|
||||||
self.update_list.emit(self.game.app_name)
|
|
||||||
|
|
||||||
def repair(self):
|
|
||||||
repair_file = os.path.join(self.core.lgd.get_tmp_path(), f'{self.game.app_name}.repair')
|
|
||||||
if not os.path.exists(repair_file):
|
|
||||||
QMessageBox.warning(self, "Warning", self.tr(
|
|
||||||
"Repair file does not exist or game does not need a repair. Please verify game first"))
|
|
||||||
return
|
|
||||||
self.verify_game.emit(self.game.app_name)
|
|
||||||
|
|
||||||
def verify(self):
|
|
||||||
self.verify_widget.setCurrentIndex(1)
|
|
||||||
verify_thread = VerifyThread(self.core, self.game.app_name)
|
|
||||||
verify_thread.status.connect(self.verify_satistics)
|
|
||||||
verify_thread.summary.connect(self.finish_verify)
|
|
||||||
verify_thread.start()
|
|
||||||
self.verify_progress.setValue(0)
|
|
||||||
self.verify_threads[self.game.app_name] = verify_thread
|
|
||||||
|
|
||||||
def verify_satistics(self, progress):
|
|
||||||
# checked, max, app_name
|
|
||||||
if progress[2] == self.game.app_name:
|
|
||||||
self.verify_progress.setValue(progress[0] * 100 / progress[1])
|
|
||||||
|
|
||||||
def finish_verify(self, failed):
|
|
||||||
failed, missing, app_name = failed
|
|
||||||
if failed == 0 and missing == 0:
|
|
||||||
QMessageBox.information(self, "Summary",
|
|
||||||
"Game was verified successfully. No missing or corrupt files found")
|
|
||||||
else:
|
|
||||||
ans = QMessageBox.question(self, "Summary", self.tr(
|
|
||||||
'Verification failed, {} file(s) corrupted, {} file(s) are missing. Do you want to repair them?').format(
|
|
||||||
failed, missing), QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
|
|
||||||
if ans == QMessageBox.Yes:
|
|
||||||
self.verify_game.emit(self.game.app_name)
|
|
||||||
self.verify_widget.setCurrentIndex(0)
|
|
||||||
self.verify_threads.pop(app_name)
|
|
||||||
|
|
||||||
def update_game(self, app_name):
|
|
||||||
self.game = self.core.get_game(app_name)
|
|
||||||
self.igame = self.core.get_installed_game(app_name)
|
|
||||||
self.game_title.setText(f"<h2>{self.game.app_title}</h2>")
|
|
||||||
|
|
||||||
pixmap = get_pixmap(app_name)
|
|
||||||
w = 200
|
|
||||||
pixmap = pixmap.scaled(w, int(w * 4 / 3))
|
|
||||||
self.image.setPixmap(pixmap)
|
|
||||||
|
|
||||||
self.app_name.setText(self.game.app_name)
|
|
||||||
self.version.setText(self.game.app_version)
|
|
||||||
self.dev.setText(self.game.metadata["developer"])
|
|
||||||
self.install_size.setText(get_size(self.igame.install_size))
|
|
||||||
self.install_path.setText(self.igame.install_path)
|
|
||||||
|
|
||||||
if platform.system() != "Windows":
|
|
||||||
self.grade.setText(self.tr("Loading"))
|
|
||||||
self.steam_worker.set_app_name(app_name)
|
|
||||||
self.steam_worker.start()
|
|
||||||
|
|
||||||
if len(self.verify_threads.keys()) == 0 or not self.verify_threads.get(app_name):
|
|
||||||
self.verify_widget.setCurrentIndex(0)
|
|
||||||
elif self.verify_threads.get(app_name):
|
|
||||||
self.verify_widget.setCurrentIndex(1)
|
|
||||||
self.verify_progress.setValue(
|
|
||||||
self.verify_threads[app_name].num / self.verify_threads[app_name].total * 100
|
|
||||||
)
|
|
||||||
|
|
|
@ -1,15 +1,11 @@
|
||||||
import os
|
from PyQt5.QtCore import pyqtSignal
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, QSettings, QSize
|
|
||||||
from PyQt5.QtGui import QPixmap
|
|
||||||
from PyQt5.QtWidgets import QFrame, QWidget, QMessageBox
|
from PyQt5.QtWidgets import QFrame, QWidget, QMessageBox
|
||||||
|
|
||||||
from legendary.core import LegendaryCore
|
from legendary.core import LegendaryCore
|
||||||
from legendary.models.game import Game
|
from legendary.models.game import Game
|
||||||
from rare import data_dir
|
|
||||||
from rare.utils.utils import download_image
|
|
||||||
from rare.ui.components.tabs.games.game_info.game_dlc import Ui_GameDlc
|
from rare.ui.components.tabs.games.game_info.game_dlc import Ui_GameDlc
|
||||||
from rare.ui.components.tabs.games.game_info.game_dlc_widget import Ui_GameDlcWidget
|
from rare.ui.components.tabs.games.game_info.game_dlc_widget import Ui_GameDlcWidget
|
||||||
|
from rare.utils.utils import get_pixmap
|
||||||
|
|
||||||
|
|
||||||
class GameDlc(QWidget, Ui_GameDlc):
|
class GameDlc(QWidget, Ui_GameDlc):
|
||||||
|
@ -72,32 +68,9 @@ class GameDlcWidget(QFrame, Ui_GameDlcWidget):
|
||||||
super(GameDlcWidget, self).__init__(parent=parent)
|
super(GameDlcWidget, self).__init__(parent=parent)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
self.dlc = dlc
|
self.dlc = dlc
|
||||||
image_dir = QSettings().value("img_dir", os.path.join(data_dir, "images"))
|
|
||||||
|
|
||||||
if installed:
|
pixmap = get_pixmap(dlc.app_name)
|
||||||
if os.path.exists(os.path.join(image_dir, dlc.app_name, "FinalArt.png")):
|
self.image.setPixmap(pixmap.scaledToHeight(pixmap.height() * 0.5))
|
||||||
pixmap = QPixmap(os.path.join(image_dir, dlc.app_name, "FinalArt.png"))
|
|
||||||
elif os.path.exists(os.path.join(image_dir, dlc.app_name, "DieselGameBoxTall.png")):
|
|
||||||
pixmap = QPixmap(os.path.join(image_dir, dlc.app_name, "DieselGameBoxTall.png"))
|
|
||||||
elif os.path.exists(os.path.join(image_dir, dlc.app_name, "DieselGameBoxLogo.png")):
|
|
||||||
pixmap = QPixmap(os.path.join(image_dir, dlc.app_name, "DieselGameBoxLogo.png"))
|
|
||||||
else:
|
|
||||||
print(f"No Image found: {dlc.app_title}")
|
|
||||||
pixmap = None
|
|
||||||
if not pixmap or pixmap.isNull():
|
|
||||||
print(dlc.app_title + " has corrupt Image")
|
|
||||||
download_image(dlc, force=True)
|
|
||||||
pixmap = QPixmap(f"{image_dir}/{dlc.app_name}/UninstalledArt.png")
|
|
||||||
else:
|
|
||||||
if os.path.exists(f"{image_dir}/{dlc.app_name}/UninstalledArt.png"):
|
|
||||||
pixmap = QPixmap(f"{image_dir}/{dlc.app_name}/DieselGameBoxTall.png")
|
|
||||||
else:
|
|
||||||
pixmap = None
|
|
||||||
if not pixmap or pixmap.isNull():
|
|
||||||
print(dlc.app_title + " has corrupt Image")
|
|
||||||
download_image(dlc, force=True)
|
|
||||||
pixmap = QPixmap(f"{image_dir}/{dlc.app_name}/UninstalledArt.png")
|
|
||||||
self.image.setPixmap(pixmap.scaledToHeight(pixmap.height()*0.5))
|
|
||||||
|
|
||||||
self.dlc_name.setText(dlc.app_title)
|
self.dlc_name.setText(dlc.app_title)
|
||||||
self.version.setText(dlc.app_version)
|
self.version.setText(dlc.app_version)
|
||||||
|
|
122
rare/components/tabs/games/game_info/game_info.py
Normal file
122
rare/components/tabs/games/game_info/game_info.py
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import platform
|
||||||
|
|
||||||
|
from PyQt5.QtCore import pyqtSignal
|
||||||
|
from PyQt5.QtWidgets import QWidget, QMessageBox
|
||||||
|
|
||||||
|
from legendary.core import LegendaryCore
|
||||||
|
from legendary.models.game import Game, InstalledGame
|
||||||
|
from rare.ui.components.tabs.games.game_info.game_info import Ui_GameInfo
|
||||||
|
from rare import data_dir
|
||||||
|
from rare.utils.legendary_utils import VerifyThread
|
||||||
|
from rare.utils.steam_grades import SteamWorker
|
||||||
|
from rare.utils.utils import get_size, get_pixmap
|
||||||
|
|
||||||
|
|
||||||
|
class GameInfo(QWidget, Ui_GameInfo):
|
||||||
|
igame: InstalledGame
|
||||||
|
game: Game
|
||||||
|
uninstall_game = pyqtSignal(str)
|
||||||
|
update_list = pyqtSignal(str)
|
||||||
|
verify_game = pyqtSignal(str)
|
||||||
|
verify_threads = {}
|
||||||
|
|
||||||
|
def __init__(self, core: LegendaryCore, parent):
|
||||||
|
super(GameInfo, self).__init__(parent=parent)
|
||||||
|
self.setupUi(self)
|
||||||
|
self.core = core
|
||||||
|
|
||||||
|
self.ratings = {"platinum": self.tr("Platinum"),
|
||||||
|
"gold": self.tr("Gold"),
|
||||||
|
"silver": self.tr("Silver"),
|
||||||
|
"bronze": self.tr("Bronze"),
|
||||||
|
"fail": self.tr("Could not get grade"),
|
||||||
|
"pending": self.tr("Not enough reports")}
|
||||||
|
if os.path.exists(p := os.path.join(data_dir, "game_list.json")):
|
||||||
|
self.grade_table = json.load(open(p))
|
||||||
|
else:
|
||||||
|
self.grade_table = {}
|
||||||
|
|
||||||
|
if platform.system() == "Windows":
|
||||||
|
self.lbl_grade.setVisible(False)
|
||||||
|
self.grade.setVisible(False)
|
||||||
|
else:
|
||||||
|
self.steam_worker = SteamWorker(self.core)
|
||||||
|
self.steam_worker.rating_signal.connect(self.grade.setText)
|
||||||
|
|
||||||
|
self.game_actions_stack.setCurrentIndex(0)
|
||||||
|
self.game_actions_stack.resize(self.game_actions_stack.minimumSize())
|
||||||
|
|
||||||
|
self.uninstall_button.clicked.connect(self.uninstall)
|
||||||
|
self.verify_button.clicked.connect(self.verify)
|
||||||
|
self.repair_button.clicked.connect(self.repair)
|
||||||
|
|
||||||
|
def uninstall(self):
|
||||||
|
self.uninstall_game.emit(self.game.app_name)
|
||||||
|
self.update_list.emit(self.game.app_name)
|
||||||
|
|
||||||
|
def repair(self):
|
||||||
|
repair_file = os.path.join(self.core.lgd.get_tmp_path(), f'{self.game.app_name}.repair')
|
||||||
|
if not os.path.exists(repair_file):
|
||||||
|
QMessageBox.warning(self, "Warning", self.tr(
|
||||||
|
"Repair file does not exist or game does not need a repair. Please verify game first"))
|
||||||
|
return
|
||||||
|
self.verify_game.emit(self.game.app_name)
|
||||||
|
|
||||||
|
def verify(self):
|
||||||
|
self.verify_widget.setCurrentIndex(1)
|
||||||
|
verify_thread = VerifyThread(self.core, self.game.app_name)
|
||||||
|
verify_thread.status.connect(self.verify_satistics)
|
||||||
|
verify_thread.summary.connect(self.finish_verify)
|
||||||
|
verify_thread.start()
|
||||||
|
self.verify_progress.setValue(0)
|
||||||
|
self.verify_threads[self.game.app_name] = verify_thread
|
||||||
|
|
||||||
|
def verify_satistics(self, progress):
|
||||||
|
# checked, max, app_name
|
||||||
|
if progress[2] == self.game.app_name:
|
||||||
|
self.verify_progress.setValue(progress[0] * 100 / progress[1])
|
||||||
|
|
||||||
|
def finish_verify(self, failed):
|
||||||
|
failed, missing, app_name = failed
|
||||||
|
if failed == 0 and missing == 0:
|
||||||
|
QMessageBox.information(self, "Summary",
|
||||||
|
"Game was verified successfully. No missing or corrupt files found")
|
||||||
|
else:
|
||||||
|
ans = QMessageBox.question(self, "Summary", self.tr(
|
||||||
|
'Verification failed, {} file(s) corrupted, {} file(s) are missing. Do you want to repair them?').format(
|
||||||
|
failed, missing), QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
|
||||||
|
if ans == QMessageBox.Yes:
|
||||||
|
self.verify_game.emit(self.game.app_name)
|
||||||
|
self.verify_widget.setCurrentIndex(0)
|
||||||
|
self.verify_threads.pop(app_name)
|
||||||
|
|
||||||
|
def update_game(self, app_name):
|
||||||
|
self.game = self.core.get_game(app_name)
|
||||||
|
self.igame = self.core.get_installed_game(app_name)
|
||||||
|
self.game_title.setText(f'<h2>{self.game.app_title}</h2>')
|
||||||
|
|
||||||
|
pixmap = get_pixmap(app_name)
|
||||||
|
w = 200
|
||||||
|
pixmap = pixmap.scaled(w, int(w * 4 / 3))
|
||||||
|
self.image.setPixmap(pixmap)
|
||||||
|
|
||||||
|
self.app_name.setText(self.game.app_name)
|
||||||
|
self.version.setText(self.game.app_version)
|
||||||
|
self.dev.setText(self.game.metadata["developer"])
|
||||||
|
self.install_size.setText(get_size(self.igame.install_size))
|
||||||
|
self.install_path.setText(self.igame.install_path)
|
||||||
|
|
||||||
|
if platform.system() != "Windows":
|
||||||
|
self.grade.setText(self.tr("Loading"))
|
||||||
|
self.steam_worker.set_app_name(app_name)
|
||||||
|
self.steam_worker.start()
|
||||||
|
|
||||||
|
if len(self.verify_threads.keys()) == 0 or not self.verify_threads.get(app_name):
|
||||||
|
self.verify_widget.setCurrentIndex(0)
|
||||||
|
elif self.verify_threads.get(app_name):
|
||||||
|
self.verify_widget.setCurrentIndex(1)
|
||||||
|
self.verify_progress.setValue(
|
||||||
|
self.verify_threads[app_name].num / self.verify_threads[app_name].total * 100
|
||||||
|
)
|
|
@ -2,20 +2,20 @@ import os.path
|
||||||
import platform
|
import platform
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
|
||||||
from PyQt5.QtWidgets import QFileDialog, QMessageBox, QStackedWidget, QVBoxLayout, QDialog, QCheckBox, QLabel, \
|
from PyQt5.QtWidgets import QFileDialog, QMessageBox, QVBoxLayout, QDialog, QCheckBox, QLabel, \
|
||||||
QHBoxLayout, QPushButton, QGroupBox, QWidget
|
QHBoxLayout, QPushButton, QGroupBox, QWidget
|
||||||
|
|
||||||
from legendary.core import LegendaryCore
|
from legendary.core import LegendaryCore
|
||||||
from rare.ui.components.tabs.settings.legendary import Ui_legendary_settings
|
from rare.ui.components.tabs.settings.legendary import Ui_LegendarySettings
|
||||||
from rare.utils.extra_widgets import PathEdit
|
from rare.utils.extra_widgets import PathEdit
|
||||||
from rare.utils.utils import get_size
|
from rare.utils.utils import get_size
|
||||||
|
|
||||||
logger = getLogger("LegendarySettings")
|
logger = getLogger("LegendarySettings")
|
||||||
|
|
||||||
|
|
||||||
class LegendarySettings(QStackedWidget, Ui_legendary_settings):
|
class LegendarySettings(QWidget, Ui_LegendarySettings):
|
||||||
def __init__(self, core: LegendaryCore):
|
def __init__(self, core: LegendaryCore, parent=None):
|
||||||
super(LegendarySettings, self).__init__()
|
super(LegendarySettings, self).__init__(parent=parent)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
|
||||||
self.core = core
|
self.core = core
|
||||||
|
@ -24,22 +24,22 @@ class LegendarySettings(QStackedWidget, Ui_legendary_settings):
|
||||||
self.install_dir = PathEdit(core.get_default_install_dir(),
|
self.install_dir = PathEdit(core.get_default_install_dir(),
|
||||||
file_type=QFileDialog.DirectoryOnly,
|
file_type=QFileDialog.DirectoryOnly,
|
||||||
save_func=self.save_path)
|
save_func=self.save_path)
|
||||||
self.layout_install_dir.addWidget(self.install_dir)
|
self.install_dir_layout.addWidget(self.install_dir)
|
||||||
|
|
||||||
# Max Workers
|
# Max Workers
|
||||||
max_workers = self.core.lgd.config["Legendary"].getint("max_workers", fallback=0)
|
max_workers = self.core.lgd.config['Legendary'].getint('max_workers', fallback=0)
|
||||||
self.max_worker_spin.setValue(max_workers)
|
self.max_worker_spin.setValue(max_workers)
|
||||||
self.max_worker_spin.valueChanged.connect(self.max_worker_save)
|
self.max_worker_spin.valueChanged.connect(self.max_worker_save)
|
||||||
# Max memory
|
# Max memory
|
||||||
max_memory = self.core.lgd.config["Legendary"].getint("max_memory", fallback=0)
|
max_memory = self.core.lgd.config['Legendary'].getint('max_memory', fallback=0)
|
||||||
self.max_memory_spin.setValue(max_memory)
|
self.max_memory_spin.setValue(max_memory)
|
||||||
self.max_memory_spin.valueChanged.connect(self.max_memory_save)
|
self.max_memory_spin.valueChanged.connect(self.max_memory_save)
|
||||||
# Preferred CDN
|
# Preferred CDN
|
||||||
preferred_cdn = self.core.lgd.config["Legendary"].get("preferred_cdn", fallback="")
|
preferred_cdn = self.core.lgd.config['Legendary'].get('preferred_cdn', fallback="")
|
||||||
self.preferred_cdn_line.setText(preferred_cdn)
|
self.preferred_cdn_line.setText(preferred_cdn)
|
||||||
self.preferred_cdn_line.textChanged.connect(self.preferred_cdn_save)
|
self.preferred_cdn_line.textChanged.connect(self.preferred_cdn_save)
|
||||||
# Disable HTTPS
|
# Disable HTTPS
|
||||||
disable_https = self.core.lgd.config["Legendary"].getboolean("disable_https", fallback=False)
|
disable_https = self.core.lgd.config['Legendary'].getboolean('disable_https', fallback=False)
|
||||||
self.disable_https_check.setChecked(disable_https)
|
self.disable_https_check.setChecked(disable_https)
|
||||||
self.disable_https_check.stateChanged.connect(self.disable_https_save)
|
self.disable_https_check.stateChanged.connect(self.disable_https_save)
|
||||||
|
|
||||||
|
@ -50,11 +50,8 @@ class LegendarySettings(QStackedWidget, Ui_legendary_settings):
|
||||||
self.clean_keep_manifests_button.clicked.connect(
|
self.clean_keep_manifests_button.clicked.connect(
|
||||||
lambda: self.cleanup(True)
|
lambda: self.cleanup(True)
|
||||||
)
|
)
|
||||||
self.setCurrentIndex(0)
|
|
||||||
|
|
||||||
self.back_button.clicked.connect(lambda: self.setCurrentIndex(0))
|
self.manifest_path_info.setText(self.tr("EGL path is at C:\\ProgramData\\Epic\\EpicGamesLauncher\\Data\\Manifests"))
|
||||||
|
|
||||||
self.path_info.setText(self.tr("EGL path is at C:\\ProgramData\\Epic\\EpicGamesLauncher\\Data\\Manifests"))
|
|
||||||
path = os.path.expanduser("~/")
|
path = os.path.expanduser("~/")
|
||||||
if self.core.egl.programdata_path:
|
if self.core.egl.programdata_path:
|
||||||
path = self.core.egl.programdata_path
|
path = self.core.egl.programdata_path
|
||||||
|
@ -65,14 +62,14 @@ class LegendarySettings(QStackedWidget, Ui_legendary_settings):
|
||||||
if os.path.exists(p := os.path.join(i, "drive_c/ProgramData/Epic/EpicGamesLauncher/Data/Manifests")):
|
if os.path.exists(p := os.path.join(i, "drive_c/ProgramData/Epic/EpicGamesLauncher/Data/Manifests")):
|
||||||
path = p
|
path = p
|
||||||
|
|
||||||
self.path_edit = PathEdit(path, QFileDialog.DirectoryOnly, save_func=self.save_egl_path)
|
self.manifest_path_edit = PathEdit(path, QFileDialog.DirectoryOnly, save_func=self.save_egl_path)
|
||||||
self.pathedit_placeholder.addWidget(self.path_edit)
|
self.manifest_path_layout.addWidget(self.manifest_path_edit)
|
||||||
if platform.system() != "Windows":
|
if platform.system() != "Windows":
|
||||||
self.core.lgd.config.set("Legendary", "egl_programdata")
|
self.core.lgd.config.set('Legendary', 'egl_programdata', path)
|
||||||
self.core.egl.programdata_path = path
|
self.core.egl.programdata_path = path
|
||||||
|
|
||||||
self.importable_widgets = []
|
self.importable_widgets = list()
|
||||||
self.exportable_widgets = []
|
self.exportable_widgets = list()
|
||||||
|
|
||||||
if self.core.egl_sync_enabled:
|
if self.core.egl_sync_enabled:
|
||||||
self.egl_sync_button.setText(self.tr("Disable sync"))
|
self.egl_sync_button.setText(self.tr("Disable sync"))
|
||||||
|
@ -86,7 +83,7 @@ class LegendarySettings(QStackedWidget, Ui_legendary_settings):
|
||||||
|
|
||||||
def enable_sync(self):
|
def enable_sync(self):
|
||||||
if not self.core.egl.programdata_path:
|
if not self.core.egl.programdata_path:
|
||||||
if os.path.exists(path := self.path_edit.text()):
|
if os.path.exists(path := self.manifest_path_edit.text()):
|
||||||
self.core.lgd.config.set("Legendary", "egl_programdata", path)
|
self.core.lgd.config.set("Legendary", "egl_programdata", path)
|
||||||
self.core.lgd.save_config()
|
self.core.lgd.save_config()
|
||||||
self.core.egl.programdata_path = path
|
self.core.egl.programdata_path = path
|
||||||
|
@ -98,16 +95,18 @@ class LegendarySettings(QStackedWidget, Ui_legendary_settings):
|
||||||
self.enable_sync_button.setDisabled(True)
|
self.enable_sync_button.setDisabled(True)
|
||||||
|
|
||||||
def export_all(self):
|
def export_all(self):
|
||||||
for w in self.exportable_widgets:
|
for ew in self.exportable_widgets:
|
||||||
w.export_game()
|
ew.export_game()
|
||||||
|
self.exportable_widgets.clear()
|
||||||
|
|
||||||
def import_all(self):
|
def import_all(self):
|
||||||
for w in self.importable_widgets:
|
for iw in self.importable_widgets:
|
||||||
w.import_game()
|
iw.import_game()
|
||||||
|
self.importable_widgets.clear()
|
||||||
|
|
||||||
def save_egl_path(self):
|
def save_egl_path(self):
|
||||||
self.core.lgd.config.set("Legendary", "egl_programdata", self.path_edit.text())
|
self.core.lgd.config.set("Legendary", "egl_programdata", self.manifest_path_edit.text())
|
||||||
self.core.egl.programdata_path = self.path_edit.text()
|
self.core.egl.programdata_path = self.manifest_path_edit.text()
|
||||||
self.core.lgd.save_config()
|
self.core.lgd.save_config()
|
||||||
self.update_egl_widget()
|
self.update_egl_widget()
|
||||||
|
|
||||||
|
@ -131,42 +130,49 @@ class LegendarySettings(QStackedWidget, Ui_legendary_settings):
|
||||||
# enable sync
|
# enable sync
|
||||||
self.enable_sync_button.setDisabled(False)
|
self.enable_sync_button.setDisabled(False)
|
||||||
self.update_egl_widget()
|
self.update_egl_widget()
|
||||||
self.setCurrentIndex(1)
|
|
||||||
|
|
||||||
def update_egl_widget(self):
|
def update_egl_widget(self):
|
||||||
self.exportable_widgets = []
|
self.import_scroll.setVisible(bool(self.core.egl.programdata_path))
|
||||||
QWidget().setLayout(self.exportable_games.layout())
|
self.export_scroll.setVisible(bool(self.core.egl.programdata_path))
|
||||||
QWidget().setLayout(self.importable_games.layout())
|
self.export_all_button.setDisabled(not bool(self.core.egl.programdata_path))
|
||||||
importable_layout = QVBoxLayout()
|
self.import_all_button.setDisabled(not bool(self.core.egl.programdata_path))
|
||||||
self.importable_games.setLayout(importable_layout)
|
|
||||||
exportable_layout = QVBoxLayout()
|
|
||||||
self.exportable_games.setLayout(exportable_layout)
|
|
||||||
if not self.core.egl.programdata_path:
|
if not self.core.egl.programdata_path:
|
||||||
self.importable_games.setVisible(False)
|
|
||||||
self.exportable_games.setVisible(False)
|
|
||||||
self.export_all_button.setVisible(False)
|
|
||||||
self.import_all_button.setVisible(False)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
self.importable_games.setVisible(True)
|
if self.exportable_widgets:
|
||||||
self.exportable_games.setVisible(True)
|
for ew in self.exportable_widgets:
|
||||||
self.export_all_button.setVisible(True)
|
# FIXME: Handle this using signals to properly update the list on python's side
|
||||||
self.import_all_button.setVisible(True)
|
try:
|
||||||
|
ew.deleteLater()
|
||||||
|
except RuntimeError as e:
|
||||||
|
print(e)
|
||||||
|
self.exportable_widgets.clear()
|
||||||
|
exportable_games = self.core.egl_get_exportable()
|
||||||
|
for igame in exportable_games:
|
||||||
|
ew = EGLSyncWidget(igame, True, self.core)
|
||||||
|
self.exportable_widgets.append(ew)
|
||||||
|
self.exportable_layout.addWidget(ew)
|
||||||
|
self.export_group.setEnabled(bool(exportable_games))
|
||||||
|
self.export_all_button.setEnabled(bool(exportable_games))
|
||||||
|
self.export_label.setVisible(not bool(exportable_games))
|
||||||
|
|
||||||
for igame in self.core.egl_get_exportable():
|
if self.importable_widgets:
|
||||||
w = EGLSyncWidget(igame, True, self.core)
|
for iw in self.importable_widgets:
|
||||||
self.importable_widgets.append(w)
|
# FIXME: Handle this using signals to properly update the list on python's side
|
||||||
self.exportable_games.layout().addWidget(w)
|
try:
|
||||||
if len(self.core.egl_get_exportable()) == 0:
|
iw.deleteLater()
|
||||||
self.exportable_games.layout().addWidget(QLabel(self.tr("No games to export")))
|
except RuntimeError as e:
|
||||||
|
print(e)
|
||||||
self.importable_widgets = []
|
self.importable_widgets.clear()
|
||||||
for game in self.core.egl_get_importable():
|
importable_games = self.core.egl_get_importable()
|
||||||
w = EGLSyncWidget(game, False, self.core)
|
for game in importable_games:
|
||||||
self.importable_widgets.append(w)
|
iw = EGLSyncWidget(game, False, self.core)
|
||||||
self.importable_games.layout().addWidget(w)
|
self.importable_widgets.append(iw)
|
||||||
if len(self.core.egl_get_importable()) == 0:
|
self.importable_layout.addWidget(iw)
|
||||||
self.importable_games.layout().addWidget(QLabel(self.tr("No games to import")))
|
self.import_group.setEnabled(bool(importable_games))
|
||||||
|
self.import_all_button.setEnabled(bool(importable_games))
|
||||||
|
self.import_label.setVisible(not bool(importable_games))
|
||||||
|
|
||||||
def save_path(self):
|
def save_path(self):
|
||||||
self.core.lgd.config["Legendary"]["install_dir"] = self.install_dir.text()
|
self.core.lgd.config["Legendary"]["install_dir"] = self.install_dir.text()
|
||||||
|
@ -192,7 +198,7 @@ class LegendarySettings(QStackedWidget, Ui_legendary_settings):
|
||||||
|
|
||||||
def preferred_cdn_save(self, cdn: str):
|
def preferred_cdn_save(self, cdn: str):
|
||||||
if cdn:
|
if cdn:
|
||||||
self.core.lgd.config.set("Legendary", "preferred_cdn", cdn.strip(" "))
|
self.core.lgd.config.set("Legendary", "preferred_cdn", cdn.strip())
|
||||||
else:
|
else:
|
||||||
self.core.lgd.config.remove_option("Legendary", "preferred_cdn")
|
self.core.lgd.config.remove_option("Legendary", "preferred_cdn")
|
||||||
self.core.lgd.save_config()
|
self.core.lgd.save_config()
|
||||||
|
@ -228,8 +234,8 @@ class LegendarySettings(QStackedWidget, Ui_legendary_settings):
|
||||||
class DisableSyncDialog(QDialog):
|
class DisableSyncDialog(QDialog):
|
||||||
info = 1, False
|
info = 1, False
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self, parent=None):
|
||||||
super(DisableSyncDialog, self).__init__()
|
super(DisableSyncDialog, self).__init__(parent=parent)
|
||||||
self.layout = QVBoxLayout()
|
self.layout = QVBoxLayout()
|
||||||
|
|
||||||
self.question = QLabel(self.tr("Do you really want to disable sync with Epic Games Store"))
|
self.question = QLabel(self.tr("Do you really want to disable sync with Epic Games Store"))
|
||||||
|
@ -268,8 +274,8 @@ class DisableSyncDialog(QDialog):
|
||||||
|
|
||||||
|
|
||||||
class EGLSyncWidget(QGroupBox):
|
class EGLSyncWidget(QGroupBox):
|
||||||
def __init__(self, game, export: bool, core: LegendaryCore):
|
def __init__(self, game, export: bool, core: LegendaryCore, parent=None):
|
||||||
super(EGLSyncWidget, self).__init__()
|
super(EGLSyncWidget, self).__init__(parent=parent)
|
||||||
self.layout = QVBoxLayout()
|
self.layout = QVBoxLayout()
|
||||||
self.export = export
|
self.export = export
|
||||||
self.core = core
|
self.core = core
|
||||||
|
@ -292,6 +298,12 @@ class EGLSyncWidget(QGroupBox):
|
||||||
|
|
||||||
def export_game(self):
|
def export_game(self):
|
||||||
self.core.egl_export(self.game.app_name)
|
self.core.egl_export(self.game.app_name)
|
||||||
|
# FIXME: on update_egl_widget this is going to crash because
|
||||||
|
# FIXME: the item is not removed from the list in the python's side
|
||||||
|
self.deleteLater()
|
||||||
|
|
||||||
def import_game(self):
|
def import_game(self):
|
||||||
self.core.egl_import(self.game.app_name)
|
self.core.egl_import(self.game.app_name)
|
||||||
|
# FIXME: on update_egl_widget this is going to crash because
|
||||||
|
# FIXME: the item is not removed from the list in the python's side
|
||||||
|
self.deleteLater()
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
import shutil
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
@ -8,7 +7,7 @@ from logging import getLogger
|
||||||
from PyQt5.QtCore import QSettings, Qt
|
from PyQt5.QtCore import QSettings, Qt
|
||||||
from PyQt5.QtWidgets import QWidget
|
from PyQt5.QtWidgets import QWidget
|
||||||
|
|
||||||
from rare import cache_dir, data_dir
|
from rare import cache_dir
|
||||||
from rare.components.tabs.settings.rpc_settings import RPCSettings
|
from rare.components.tabs.settings.rpc_settings import RPCSettings
|
||||||
from rare.ui.components.tabs.settings.rare import Ui_RareSettings
|
from rare.ui.components.tabs.settings.rare import Ui_RareSettings
|
||||||
from rare.utils import utils
|
from rare.utils import utils
|
||||||
|
@ -40,7 +39,6 @@ class RareSettings(QWidget, Ui_RareSettings):
|
||||||
]
|
]
|
||||||
|
|
||||||
self.settings = QSettings()
|
self.settings = QSettings()
|
||||||
self.img_dir_path = self.settings.value("img_dir", os.path.join(data_dir, "images"), type=str)
|
|
||||||
language = self.settings.value("language", get_lang(), type=str)
|
language = self.settings.value("language", get_lang(), type=str)
|
||||||
self.logdir = os.path.join(cache_dir, "logs")
|
self.logdir = os.path.join(cache_dir, "logs")
|
||||||
|
|
||||||
|
@ -192,26 +190,6 @@ class RareSettings(QWidget, Ui_RareSettings):
|
||||||
self.settings.setValue("language", languages[i][0])
|
self.settings.setValue("language", languages[i][0])
|
||||||
self.interface_info.setVisible(True)
|
self.interface_info.setVisible(True)
|
||||||
|
|
||||||
def update_path(self):
|
|
||||||
old_path = self.img_dir_path
|
|
||||||
new_path = self.img_dir.text()
|
|
||||||
|
|
||||||
if old_path != new_path:
|
|
||||||
if not os.path.exists(new_path):
|
|
||||||
os.makedirs(new_path)
|
|
||||||
elif len(os.listdir(new_path)) > 0:
|
|
||||||
logger.warning("New directory is not empty")
|
|
||||||
return
|
|
||||||
logger.info("Move Images")
|
|
||||||
for i in os.listdir(old_path):
|
|
||||||
try:
|
|
||||||
shutil.move(os.path.join(old_path, i), os.path.join(new_path, i))
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
os.rmdir(old_path)
|
|
||||||
self.img_dir_path = new_path
|
|
||||||
self.settings.setValue("img_dir", new_path)
|
|
||||||
|
|
||||||
def init_checkboxes(self, checkboxes):
|
def init_checkboxes(self, checkboxes):
|
||||||
for cb in checkboxes:
|
for cb in checkboxes:
|
||||||
widget, option, default = cb
|
widget, option, default = cb
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'about.ui'
|
# Form implementation generated from reading ui file 'rare/ui/components/tabs/settings/about.ui'
|
||||||
#
|
#
|
||||||
# Created by: PyQt5 UI code generator 5.15.4
|
# Created by: PyQt5 UI code generator 5.15.4
|
||||||
#
|
#
|
||||||
|
@ -14,80 +14,82 @@ from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
class Ui_About(object):
|
class Ui_About(object):
|
||||||
def setupUi(self, About):
|
def setupUi(self, About):
|
||||||
About.setObjectName("About")
|
About.setObjectName("About")
|
||||||
About.resize(499, 396)
|
About.resize(722, 345)
|
||||||
self.gridLayout = QtWidgets.QGridLayout(About)
|
self.about_layout = QtWidgets.QFormLayout(About)
|
||||||
self.gridLayout.setObjectName("gridLayout")
|
self.about_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
||||||
self.open_browser = QtWidgets.QPushButton(About)
|
self.about_layout.setObjectName("about_layout")
|
||||||
self.open_browser.setObjectName("open_browser")
|
self.title = QtWidgets.QLabel(About)
|
||||||
self.gridLayout.addWidget(self.open_browser, 4, 1, 1, 1)
|
self.title.setObjectName("title")
|
||||||
|
self.about_layout.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.title)
|
||||||
self.version_label = QtWidgets.QLabel(About)
|
self.version_label = QtWidgets.QLabel(About)
|
||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setBold(True)
|
font.setBold(True)
|
||||||
font.setWeight(75)
|
font.setWeight(75)
|
||||||
self.version_label.setFont(font)
|
self.version_label.setFont(font)
|
||||||
self.version_label.setObjectName("version_label")
|
self.version_label.setObjectName("version_label")
|
||||||
self.gridLayout.addWidget(self.version_label, 2, 0, 1, 1, QtCore.Qt.AlignRight)
|
self.about_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.version_label)
|
||||||
self.license_label = QtWidgets.QLabel(About)
|
self.version = QtWidgets.QLabel(About)
|
||||||
font = QtGui.QFont()
|
self.version.setText("error")
|
||||||
font.setBold(True)
|
self.version.setObjectName("version")
|
||||||
font.setWeight(75)
|
self.about_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.version)
|
||||||
self.license_label.setFont(font)
|
|
||||||
self.license_label.setObjectName("license_label")
|
|
||||||
self.gridLayout.addWidget(self.license_label, 7, 0, 1, 1, QtCore.Qt.AlignRight)
|
|
||||||
self.lgd_dev_label = QtWidgets.QLabel(About)
|
|
||||||
font = QtGui.QFont()
|
|
||||||
font.setBold(True)
|
|
||||||
font.setWeight(75)
|
|
||||||
self.lgd_dev_label.setFont(font)
|
|
||||||
self.lgd_dev_label.setObjectName("lgd_dev_label")
|
|
||||||
self.gridLayout.addWidget(self.lgd_dev_label, 6, 0, 1, 1, QtCore.Qt.AlignRight)
|
|
||||||
self.dev = QtWidgets.QLabel(About)
|
|
||||||
self.dev.setText("<a href=\'https://github.com/Dummerle\'>Dummerle</a>")
|
|
||||||
self.dev.setOpenExternalLinks(True)
|
|
||||||
self.dev.setObjectName("dev")
|
|
||||||
self.gridLayout.addWidget(self.dev, 5, 1, 1, 1)
|
|
||||||
self.update_label = QtWidgets.QLabel(About)
|
self.update_label = QtWidgets.QLabel(About)
|
||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setBold(True)
|
font.setBold(True)
|
||||||
font.setWeight(75)
|
font.setWeight(75)
|
||||||
self.update_label.setFont(font)
|
self.update_label.setFont(font)
|
||||||
self.update_label.setObjectName("update_label")
|
self.update_label.setObjectName("update_label")
|
||||||
self.gridLayout.addWidget(self.update_label, 3, 0, 1, 1, QtCore.Qt.AlignRight)
|
self.about_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.update_label)
|
||||||
self.version = QtWidgets.QLabel(About)
|
self.update = QtWidgets.QLabel(About)
|
||||||
self.version.setText("error")
|
self.update.setText("error")
|
||||||
self.version.setObjectName("version")
|
self.update.setObjectName("update")
|
||||||
self.gridLayout.addWidget(self.version, 2, 1, 1, 1)
|
self.about_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.update)
|
||||||
|
self.open_browser = QtWidgets.QPushButton(About)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.open_browser.sizePolicy().hasHeightForWidth())
|
||||||
|
self.open_browser.setSizePolicy(sizePolicy)
|
||||||
|
self.open_browser.setObjectName("open_browser")
|
||||||
|
self.about_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.open_browser)
|
||||||
self.dev_label = QtWidgets.QLabel(About)
|
self.dev_label = QtWidgets.QLabel(About)
|
||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setBold(True)
|
font.setBold(True)
|
||||||
font.setWeight(75)
|
font.setWeight(75)
|
||||||
self.dev_label.setFont(font)
|
self.dev_label.setFont(font)
|
||||||
self.dev_label.setObjectName("dev_label")
|
self.dev_label.setObjectName("dev_label")
|
||||||
self.gridLayout.addWidget(self.dev_label, 5, 0, 1, 1, QtCore.Qt.AlignRight)
|
self.about_layout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.dev_label)
|
||||||
self.license = QtWidgets.QLabel(About)
|
self.dev = QtWidgets.QLabel(About)
|
||||||
self.license.setObjectName("license")
|
self.dev.setText("<a href=\'https://github.com/Dummerle\'>Dummerle</a>")
|
||||||
self.gridLayout.addWidget(self.license, 7, 1, 1, 1)
|
self.dev.setOpenExternalLinks(True)
|
||||||
self.update = QtWidgets.QLabel(About)
|
self.dev.setObjectName("dev")
|
||||||
self.update.setText("error")
|
self.about_layout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.dev)
|
||||||
self.update.setObjectName("update")
|
self.lgd_dev_label = QtWidgets.QLabel(About)
|
||||||
self.gridLayout.addWidget(self.update, 3, 1, 1, 1)
|
font = QtGui.QFont()
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.lgd_dev_label.setFont(font)
|
||||||
|
self.lgd_dev_label.setObjectName("lgd_dev_label")
|
||||||
|
self.about_layout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.lgd_dev_label)
|
||||||
self.lgd_dev = QtWidgets.QLabel(About)
|
self.lgd_dev = QtWidgets.QLabel(About)
|
||||||
self.lgd_dev.setText("<a href=\'https://github.com/derrod/\'>derrod</a>")
|
self.lgd_dev.setText("<a href=\'https://github.com/derrod/\'>derrod</a>")
|
||||||
self.lgd_dev.setOpenExternalLinks(True)
|
self.lgd_dev.setOpenExternalLinks(True)
|
||||||
self.lgd_dev.setObjectName("lgd_dev")
|
self.lgd_dev.setObjectName("lgd_dev")
|
||||||
self.gridLayout.addWidget(self.lgd_dev, 6, 1, 1, 1)
|
self.about_layout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.lgd_dev)
|
||||||
|
self.license_label = QtWidgets.QLabel(About)
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.license_label.setFont(font)
|
||||||
|
self.license_label.setObjectName("license_label")
|
||||||
|
self.about_layout.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.license_label)
|
||||||
|
self.license = QtWidgets.QLabel(About)
|
||||||
|
self.license.setObjectName("license")
|
||||||
|
self.about_layout.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.license)
|
||||||
self.info_text = QtWidgets.QLabel(About)
|
self.info_text = QtWidgets.QLabel(About)
|
||||||
self.info_text.setWordWrap(True)
|
self.info_text.setWordWrap(True)
|
||||||
self.info_text.setOpenExternalLinks(True)
|
self.info_text.setOpenExternalLinks(True)
|
||||||
self.info_text.setObjectName("info_text")
|
self.info_text.setObjectName("info_text")
|
||||||
self.gridLayout.addWidget(self.info_text, 14, 0, 1, 3)
|
self.about_layout.setWidget(7, QtWidgets.QFormLayout.SpanningRole, self.info_text)
|
||||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
|
||||||
self.gridLayout.addItem(spacerItem, 15, 0, 1, 3)
|
|
||||||
self.title = QtWidgets.QLabel(About)
|
|
||||||
self.title.setObjectName("title")
|
|
||||||
self.gridLayout.addWidget(self.title, 1, 0, 1, 3)
|
|
||||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
|
||||||
self.gridLayout.addItem(spacerItem1, 2, 2, 6, 1)
|
|
||||||
|
|
||||||
self.retranslateUi(About)
|
self.retranslateUi(About)
|
||||||
QtCore.QMetaObject.connectSlotsByName(About)
|
QtCore.QMetaObject.connectSlotsByName(About)
|
||||||
|
@ -95,23 +97,22 @@ class Ui_About(object):
|
||||||
def retranslateUi(self, About):
|
def retranslateUi(self, About):
|
||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
About.setWindowTitle(_translate("About", "About"))
|
About.setWindowTitle(_translate("About", "About"))
|
||||||
self.open_browser.setText(_translate("About", "Download latest release"))
|
|
||||||
self.version_label.setText(_translate("About", "Version"))
|
|
||||||
self.license_label.setText(_translate("About", "License"))
|
|
||||||
self.lgd_dev_label.setText(_translate("About", "Legendary Developer"))
|
|
||||||
self.dev.setToolTip(_translate("About", "Github"))
|
|
||||||
self.update_label.setText(_translate("About", "Update available"))
|
|
||||||
self.dev_label.setText(_translate("About", "Rare Developer"))
|
|
||||||
self.license.setText(_translate("About", "GNU General Public License v3.0"))
|
|
||||||
self.lgd_dev.setToolTip(_translate("About", "Github"))
|
|
||||||
self.info_text.setText(_translate("About",
|
|
||||||
"This is a beta version, so you can get bugs. If you get a bug, please report it by creating an Issue on <a href=\'https://github.com/Dummerle/Rare/issues\'>Github</a>. You can also contact me on Discord (Dummerle#7419). Or you can join the <a href=\'https://discord.gg/YvmABK9YSk\'>Discord server</a>"))
|
|
||||||
self.title.setText(_translate("About", "<h2>About</h2>"))
|
self.title.setText(_translate("About", "<h2>About</h2>"))
|
||||||
|
self.version_label.setText(_translate("About", "Version"))
|
||||||
|
self.update_label.setText(_translate("About", "Update available"))
|
||||||
|
self.open_browser.setText(_translate("About", "Download latest release"))
|
||||||
|
self.dev_label.setText(_translate("About", "Rare Developer"))
|
||||||
|
self.dev.setToolTip(_translate("About", "Github"))
|
||||||
|
self.lgd_dev_label.setText(_translate("About", "Legendary Developer"))
|
||||||
|
self.lgd_dev.setToolTip(_translate("About", "Github"))
|
||||||
|
self.license_label.setText(_translate("About", "License"))
|
||||||
|
self.license.setText(_translate("About", "GNU General Public License v3.0"))
|
||||||
|
self.info_text.setText(_translate("About", "This is a beta version, so you can get bugs. If you get a bug, please report it by creating an Issue on <a href=\'https://github.com/Dummerle/Rare/issues\'>Github</a>. You can also contact me on Discord (Dummerle#7419). Or you can join the <a href=\'https://discord.gg/YvmABK9YSk\'>Discord server</a>\n"
|
||||||
|
""))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
About = QtWidgets.QWidget()
|
About = QtWidgets.QWidget()
|
||||||
ui = Ui_About()
|
ui = Ui_About()
|
||||||
|
|
|
@ -1,190 +1,170 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>About</class>
|
<class>About</class>
|
||||||
<widget class="QWidget" name="About">
|
<widget class="QWidget" name="About">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>499</width>
|
<width>722</width>
|
||||||
<height>396</height>
|
<height>345</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>About</string>
|
<string>About</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QFormLayout" name="about_layout">
|
||||||
<item row="4" column="1">
|
<property name="labelAlignment">
|
||||||
<widget class="QPushButton" name="open_browser">
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
<property name="text">
|
</property>
|
||||||
<string>Download latest release</string>
|
<item row="0" column="0" colspan="2">
|
||||||
</property>
|
<widget class="QLabel" name="title">
|
||||||
</widget>
|
<property name="text">
|
||||||
</item>
|
<string><h2>About</h2></string>
|
||||||
<item row="2" column="0" alignment="Qt::AlignRight">
|
</property>
|
||||||
<widget class="QLabel" name="version_label">
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Version</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="7" column="0" alignment="Qt::AlignRight">
|
|
||||||
<widget class="QLabel" name="license_label">
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>License</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="0" alignment="Qt::AlignRight">
|
|
||||||
<widget class="QLabel" name="lgd_dev_label">
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Legendary Developer</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="1">
|
|
||||||
<widget class="QLabel" name="dev">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Github</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true"><a href='https://github.com/Dummerle'>Dummerle</a></string>
|
|
||||||
</property>
|
|
||||||
<property name="openExternalLinks">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0" alignment="Qt::AlignRight">
|
|
||||||
<widget class="QLabel" name="update_label">
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Update available</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLabel" name="version">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">error</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="0" alignment="Qt::AlignRight">
|
|
||||||
<widget class="QLabel" name="dev_label">
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Rare Developer</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="7" column="1">
|
|
||||||
<widget class="QLabel" name="license">
|
|
||||||
<property name="text">
|
|
||||||
<string>GNU General Public License v3.0</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QLabel" name="update">
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true">error</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="1">
|
|
||||||
<widget class="QLabel" name="lgd_dev">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Github</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string notr="true"><a href='https://github.com/derrod/'>derrod</a></string>
|
|
||||||
</property>
|
|
||||||
<property name="openExternalLinks">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="14" column="0" colspan="3">
|
|
||||||
<widget class="QLabel" name="info_text">
|
|
||||||
<property name="text">
|
|
||||||
<string>This is a beta version, so you can get bugs. If you get a bug, please report it by
|
|
||||||
creating an Issue on <a href='https://github.com/Dummerle/Rare/issues'>Github</a>.
|
|
||||||
You can also contact me on Discord (Dummerle#7419). Or you can join the <a
|
|
||||||
href='https://discord.gg/YvmABK9YSk'>Discord server</a>
|
|
||||||
</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="openExternalLinks">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="15" column="0" colspan="3">
|
|
||||||
<spacer name="about_vspacer">
|
|
||||||
<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="1" column="0" colspan="3">
|
|
||||||
<widget class="QLabel" name="title">
|
|
||||||
<property name="text">
|
|
||||||
<string><h2>About</h2></string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="2" rowspan="6">
|
|
||||||
<spacer name="about_hspacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
</item>
|
||||||
<connections/>
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="version_label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Version</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLabel" name="version">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">error</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="update_label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Update available</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLabel" name="update">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">error</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QPushButton" name="open_browser">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Download latest release</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="dev_label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Rare Developer</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QLabel" name="dev">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Github</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true"><a href='https://github.com/Dummerle'>Dummerle</a></string>
|
||||||
|
</property>
|
||||||
|
<property name="openExternalLinks">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QLabel" name="lgd_dev_label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Legendary Developer</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="1">
|
||||||
|
<widget class="QLabel" name="lgd_dev">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Github</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true"><a href='https://github.com/derrod/'>derrod</a></string>
|
||||||
|
</property>
|
||||||
|
<property name="openExternalLinks">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QLabel" name="license_label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>License</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QLabel" name="license">
|
||||||
|
<property name="text">
|
||||||
|
<string>GNU General Public License v3.0</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="0" colspan="2">
|
||||||
|
<widget class="QLabel" name="info_text">
|
||||||
|
<property name="text">
|
||||||
|
<string>This is a beta version, so you can get bugs. If you get a bug, please report it by creating an Issue on <a href='https://github.com/Dummerle/Rare/issues'>Github</a>. You can also contact me on Discord (Dummerle#7419). Or you can join the <a href='https://discord.gg/YvmABK9YSk'>Discord server</a>
|
||||||
|
</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="openExternalLinks">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|
|
@ -11,22 +11,20 @@
|
||||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
|
|
||||||
class Ui_legendary_settings(object):
|
class Ui_LegendarySettings(object):
|
||||||
def setupUi(self, legendary_settings):
|
def setupUi(self, LegendarySettings):
|
||||||
legendary_settings.setObjectName("legendary_settings")
|
LegendarySettings.setObjectName("LegendarySettings")
|
||||||
legendary_settings.resize(810, 535)
|
LegendarySettings.resize(796, 732)
|
||||||
self.settings = QtWidgets.QWidget()
|
self.settings_layout = QtWidgets.QHBoxLayout(LegendarySettings)
|
||||||
self.settings.setObjectName("settings")
|
|
||||||
self.settings_layout = QtWidgets.QHBoxLayout(self.settings)
|
|
||||||
self.settings_layout.setObjectName("settings_layout")
|
self.settings_layout.setObjectName("settings_layout")
|
||||||
self.left_layout = QtWidgets.QVBoxLayout()
|
self.left_layout = QtWidgets.QVBoxLayout()
|
||||||
self.left_layout.setObjectName("left_layout")
|
self.left_layout.setObjectName("left_layout")
|
||||||
self.install_dir_group = QtWidgets.QGroupBox(self.settings)
|
self.install_dir_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||||
self.install_dir_group.setObjectName("install_dir_group")
|
self.install_dir_group.setObjectName("install_dir_group")
|
||||||
self.layout_install_dir = QtWidgets.QVBoxLayout(self.install_dir_group)
|
self.install_dir_layout = QtWidgets.QVBoxLayout(self.install_dir_group)
|
||||||
self.layout_install_dir.setObjectName("layout_install_dir")
|
self.install_dir_layout.setObjectName("install_dir_layout")
|
||||||
self.left_layout.addWidget(self.install_dir_group)
|
self.left_layout.addWidget(self.install_dir_group)
|
||||||
self.download_group = QtWidgets.QGroupBox(self.settings)
|
self.download_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||||
self.download_group.setObjectName("download_group")
|
self.download_group.setObjectName("download_group")
|
||||||
self.download_layout = QtWidgets.QFormLayout(self.download_group)
|
self.download_layout = QtWidgets.QFormLayout(self.download_group)
|
||||||
self.download_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
self.download_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
|
||||||
|
@ -48,7 +46,7 @@ class Ui_legendary_settings(object):
|
||||||
sizePolicy.setHeightForWidth(self.max_worker_spin.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(self.max_worker_spin.sizePolicy().hasHeightForWidth())
|
||||||
self.max_worker_spin.setSizePolicy(sizePolicy)
|
self.max_worker_spin.setSizePolicy(sizePolicy)
|
||||||
self.max_worker_spin.setMinimum(0)
|
self.max_worker_spin.setMinimum(0)
|
||||||
self.max_worker_spin.setMaximum(128)
|
self.max_worker_spin.setMaximum(16)
|
||||||
self.max_worker_spin.setProperty("value", 4)
|
self.max_worker_spin.setProperty("value", 4)
|
||||||
self.max_worker_spin.setObjectName("max_worker_spin")
|
self.max_worker_spin.setObjectName("max_worker_spin")
|
||||||
self.max_workers_layout.addWidget(self.max_worker_spin)
|
self.max_workers_layout.addWidget(self.max_worker_spin)
|
||||||
|
@ -97,123 +95,152 @@ class Ui_legendary_settings(object):
|
||||||
self.disable_https_check.setObjectName("disable_https_check")
|
self.disable_https_check.setObjectName("disable_https_check")
|
||||||
self.download_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.disable_https_check)
|
self.download_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.disable_https_check)
|
||||||
self.left_layout.addWidget(self.download_group)
|
self.left_layout.addWidget(self.download_group)
|
||||||
|
self.egl_sync_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||||
|
self.egl_sync_group.setObjectName("egl_sync_group")
|
||||||
|
self.egl_sync_layout = QtWidgets.QVBoxLayout(self.egl_sync_group)
|
||||||
|
self.egl_sync_layout.setObjectName("egl_sync_layout")
|
||||||
|
self.manifest_path_layout = QtWidgets.QVBoxLayout()
|
||||||
|
self.manifest_path_layout.setObjectName("manifest_path_layout")
|
||||||
|
self.egl_sync_layout.addLayout(self.manifest_path_layout)
|
||||||
|
self.manifest_path_info = QtWidgets.QLabel(self.egl_sync_group)
|
||||||
|
self.manifest_path_info.setObjectName("manifest_path_info")
|
||||||
|
self.egl_sync_layout.addWidget(self.manifest_path_info)
|
||||||
|
self.export_import_layout = QtWidgets.QHBoxLayout()
|
||||||
|
self.export_import_layout.setObjectName("export_import_layout")
|
||||||
|
self.export_group = QtWidgets.QGroupBox(self.egl_sync_group)
|
||||||
|
self.export_group.setObjectName("export_group")
|
||||||
|
self.export_layout = QtWidgets.QVBoxLayout(self.export_group)
|
||||||
|
self.export_layout.setObjectName("export_layout")
|
||||||
|
self.export_label = QtWidgets.QLabel(self.export_group)
|
||||||
|
self.export_label.setObjectName("export_label")
|
||||||
|
self.export_layout.addWidget(self.export_label)
|
||||||
|
self.export_scroll = QtWidgets.QScrollArea(self.export_group)
|
||||||
|
self.export_scroll.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustIgnored)
|
||||||
|
self.export_scroll.setWidgetResizable(True)
|
||||||
|
self.export_scroll.setObjectName("export_scroll")
|
||||||
|
self.export_contents = QtWidgets.QWidget()
|
||||||
|
self.export_contents.setGeometry(QtCore.QRect(0, 0, 264, 16))
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.export_contents.sizePolicy().hasHeightForWidth())
|
||||||
|
self.export_contents.setSizePolicy(sizePolicy)
|
||||||
|
self.export_contents.setObjectName("export_contents")
|
||||||
|
self.exportable_layout = QtWidgets.QVBoxLayout(self.export_contents)
|
||||||
|
self.exportable_layout.setObjectName("exportable_layout")
|
||||||
|
self.export_scroll.setWidget(self.export_contents)
|
||||||
|
self.export_layout.addWidget(self.export_scroll)
|
||||||
|
self.export_all_button = QtWidgets.QPushButton(self.export_group)
|
||||||
|
self.export_all_button.setObjectName("export_all_button")
|
||||||
|
self.export_layout.addWidget(self.export_all_button, 0, QtCore.Qt.AlignRight)
|
||||||
|
self.export_import_layout.addWidget(self.export_group)
|
||||||
|
self.import_group = QtWidgets.QGroupBox(self.egl_sync_group)
|
||||||
|
self.import_group.setObjectName("import_group")
|
||||||
|
self.import_layout = QtWidgets.QVBoxLayout(self.import_group)
|
||||||
|
self.import_layout.setObjectName("import_layout")
|
||||||
|
self.import_label = QtWidgets.QLabel(self.import_group)
|
||||||
|
self.import_label.setObjectName("import_label")
|
||||||
|
self.import_layout.addWidget(self.import_label)
|
||||||
|
self.import_scroll = QtWidgets.QScrollArea(self.import_group)
|
||||||
|
self.import_scroll.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustIgnored)
|
||||||
|
self.import_scroll.setWidgetResizable(True)
|
||||||
|
self.import_scroll.setObjectName("import_scroll")
|
||||||
|
self.import_contents = QtWidgets.QWidget()
|
||||||
|
self.import_contents.setGeometry(QtCore.QRect(0, 0, 264, 16))
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.import_contents.sizePolicy().hasHeightForWidth())
|
||||||
|
self.import_contents.setSizePolicy(sizePolicy)
|
||||||
|
self.import_contents.setObjectName("import_contents")
|
||||||
|
self.importable_layout = QtWidgets.QVBoxLayout(self.import_contents)
|
||||||
|
self.importable_layout.setObjectName("importable_layout")
|
||||||
|
self.import_scroll.setWidget(self.import_contents)
|
||||||
|
self.import_layout.addWidget(self.import_scroll)
|
||||||
|
self.import_all_button = QtWidgets.QPushButton(self.import_group)
|
||||||
|
self.import_all_button.setObjectName("import_all_button")
|
||||||
|
self.import_layout.addWidget(self.import_all_button, 0, QtCore.Qt.AlignRight)
|
||||||
|
self.export_import_layout.addWidget(self.import_group)
|
||||||
|
self.egl_sync_layout.addLayout(self.export_import_layout)
|
||||||
|
self.enable_sync_group = QtWidgets.QGroupBox(self.egl_sync_group)
|
||||||
|
self.enable_sync_group.setObjectName("enable_sync_group")
|
||||||
|
self.enable_sync_layout = QtWidgets.QHBoxLayout(self.enable_sync_group)
|
||||||
|
self.enable_sync_layout.setObjectName("enable_sync_layout")
|
||||||
|
self.sync_once_button = QtWidgets.QPushButton(self.enable_sync_group)
|
||||||
|
self.sync_once_button.setObjectName("sync_once_button")
|
||||||
|
self.enable_sync_layout.addWidget(self.sync_once_button, 0, QtCore.Qt.AlignRight)
|
||||||
|
self.enable_sync_button = QtWidgets.QPushButton(self.enable_sync_group)
|
||||||
|
self.enable_sync_button.setObjectName("enable_sync_button")
|
||||||
|
self.enable_sync_layout.addWidget(self.enable_sync_button, 0, QtCore.Qt.AlignRight)
|
||||||
|
self.egl_sync_layout.addWidget(self.enable_sync_group)
|
||||||
|
self.left_layout.addWidget(self.egl_sync_group)
|
||||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||||
self.left_layout.addItem(spacerItem)
|
self.left_layout.addItem(spacerItem)
|
||||||
self.settings_layout.addLayout(self.left_layout)
|
self.settings_layout.addLayout(self.left_layout)
|
||||||
self.right_layout = QtWidgets.QVBoxLayout()
|
self.right_layout = QtWidgets.QVBoxLayout()
|
||||||
self.right_layout.setObjectName("right_layout")
|
self.right_layout.setObjectName("right_layout")
|
||||||
self.cleanup_group = QtWidgets.QGroupBox(self.settings)
|
self.cleanup_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||||
self.cleanup_group.setObjectName("cleanup_group")
|
self.cleanup_group.setObjectName("cleanup_group")
|
||||||
self.layout_clean = QtWidgets.QVBoxLayout(self.cleanup_group)
|
self.cleanup_layout = QtWidgets.QVBoxLayout(self.cleanup_group)
|
||||||
self.layout_clean.setObjectName("layout_clean")
|
self.cleanup_layout.setObjectName("cleanup_layout")
|
||||||
self.clean_keep_manifests_button = QtWidgets.QPushButton(self.cleanup_group)
|
self.clean_keep_manifests_button = QtWidgets.QPushButton(self.cleanup_group)
|
||||||
self.clean_keep_manifests_button.setObjectName("clean_keep_manifests_button")
|
self.clean_keep_manifests_button.setObjectName("clean_keep_manifests_button")
|
||||||
self.layout_clean.addWidget(self.clean_keep_manifests_button)
|
self.cleanup_layout.addWidget(self.clean_keep_manifests_button)
|
||||||
self.clean_button = QtWidgets.QPushButton(self.cleanup_group)
|
self.clean_button = QtWidgets.QPushButton(self.cleanup_group)
|
||||||
self.clean_button.setObjectName("clean_button")
|
self.clean_button.setObjectName("clean_button")
|
||||||
self.layout_clean.addWidget(self.clean_button)
|
self.cleanup_layout.addWidget(self.clean_button)
|
||||||
self.right_layout.addWidget(self.cleanup_group)
|
self.right_layout.addWidget(self.cleanup_group)
|
||||||
self.egl_sync = QtWidgets.QGroupBox(self.settings)
|
self.egl_sync = QtWidgets.QGroupBox(LegendarySettings)
|
||||||
self.egl_sync.setObjectName("egl_sync")
|
self.egl_sync.setObjectName("egl_sync")
|
||||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.egl_sync)
|
self.egl_sync_layout_3 = QtWidgets.QVBoxLayout(self.egl_sync)
|
||||||
self.verticalLayout.setObjectName("verticalLayout")
|
self.egl_sync_layout_3.setObjectName("egl_sync_layout_3")
|
||||||
self.egl_sync_button = QtWidgets.QPushButton(self.egl_sync)
|
self.egl_sync_button = QtWidgets.QPushButton(self.egl_sync)
|
||||||
self.egl_sync_button.setObjectName("egl_sync_button")
|
self.egl_sync_button.setObjectName("egl_sync_button")
|
||||||
self.verticalLayout.addWidget(self.egl_sync_button)
|
self.egl_sync_layout_3.addWidget(self.egl_sync_button)
|
||||||
self.right_layout.addWidget(self.egl_sync)
|
self.right_layout.addWidget(self.egl_sync)
|
||||||
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||||
self.right_layout.addItem(spacerItem1)
|
self.right_layout.addItem(spacerItem1)
|
||||||
self.settings_layout.addLayout(self.right_layout)
|
self.settings_layout.addLayout(self.right_layout)
|
||||||
legendary_settings.addWidget(self.settings)
|
|
||||||
self.egl_sync_page = QtWidgets.QWidget()
|
|
||||||
self.egl_sync_page.setObjectName("egl_sync_page")
|
|
||||||
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.egl_sync_page)
|
|
||||||
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
|
||||||
self.back_button = QtWidgets.QPushButton(self.egl_sync_page)
|
|
||||||
self.back_button.setObjectName("back_button")
|
|
||||||
self.verticalLayout_2.addWidget(self.back_button)
|
|
||||||
self.title = QtWidgets.QLabel(self.egl_sync_page)
|
|
||||||
self.title.setObjectName("title")
|
|
||||||
self.verticalLayout_2.addWidget(self.title)
|
|
||||||
self.pathedit_placeholder = QtWidgets.QVBoxLayout()
|
|
||||||
self.pathedit_placeholder.setObjectName("pathedit_placeholder")
|
|
||||||
self.verticalLayout_2.addLayout(self.pathedit_placeholder)
|
|
||||||
self.path_info = QtWidgets.QLabel(self.egl_sync_page)
|
|
||||||
self.path_info.setObjectName("path_info")
|
|
||||||
self.verticalLayout_2.addWidget(self.path_info)
|
|
||||||
self.layout_export_import = QtWidgets.QGridLayout()
|
|
||||||
self.layout_export_import.setObjectName("layout_export_import")
|
|
||||||
self.exportable_games = QtWidgets.QGroupBox(self.egl_sync_page)
|
|
||||||
self.exportable_games.setObjectName("exportable_games")
|
|
||||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.exportable_games)
|
|
||||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
|
||||||
self.layout_export_import.addWidget(self.exportable_games, 0, 0, 1, 1)
|
|
||||||
self.importable_games = QtWidgets.QGroupBox(self.egl_sync_page)
|
|
||||||
self.importable_games.setObjectName("importable_games")
|
|
||||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.importable_games)
|
|
||||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
|
||||||
self.layout_export_import.addWidget(self.importable_games, 0, 1, 1, 1)
|
|
||||||
self.export_all_button = QtWidgets.QPushButton(self.egl_sync_page)
|
|
||||||
self.export_all_button.setObjectName("export_all_button")
|
|
||||||
self.layout_export_import.addWidget(self.export_all_button, 1, 0, 1, 1)
|
|
||||||
self.import_all_button = QtWidgets.QPushButton(self.egl_sync_page)
|
|
||||||
self.import_all_button.setObjectName("import_all_button")
|
|
||||||
self.layout_export_import.addWidget(self.import_all_button, 1, 1, 1, 1)
|
|
||||||
self.verticalLayout_2.addLayout(self.layout_export_import)
|
|
||||||
self.groupBox = QtWidgets.QGroupBox(self.egl_sync_page)
|
|
||||||
self.groupBox.setObjectName("groupBox")
|
|
||||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.groupBox)
|
|
||||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
|
||||||
self.sync_once_button = QtWidgets.QPushButton(self.groupBox)
|
|
||||||
self.sync_once_button.setObjectName("sync_once_button")
|
|
||||||
self.horizontalLayout.addWidget(self.sync_once_button)
|
|
||||||
self.enable_sync_button = QtWidgets.QPushButton(self.groupBox)
|
|
||||||
self.enable_sync_button.setObjectName("enable_sync_button")
|
|
||||||
self.horizontalLayout.addWidget(self.enable_sync_button)
|
|
||||||
self.verticalLayout_2.addWidget(self.groupBox)
|
|
||||||
spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
|
||||||
self.verticalLayout_2.addItem(spacerItem2)
|
|
||||||
legendary_settings.addWidget(self.egl_sync_page)
|
|
||||||
|
|
||||||
self.retranslateUi(legendary_settings)
|
self.retranslateUi(LegendarySettings)
|
||||||
legendary_settings.setCurrentIndex(0)
|
QtCore.QMetaObject.connectSlotsByName(LegendarySettings)
|
||||||
QtCore.QMetaObject.connectSlotsByName(legendary_settings)
|
|
||||||
|
|
||||||
def retranslateUi(self, legendary_settings):
|
def retranslateUi(self, LegendarySettings):
|
||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
legendary_settings.setWindowTitle(_translate("legendary_settings", "LegendarySettings"))
|
LegendarySettings.setWindowTitle(_translate("LegendarySettings", "LegendarySettings"))
|
||||||
self.install_dir_group.setTitle(_translate("legendary_settings", "Default Installation Directory"))
|
self.install_dir_group.setTitle(_translate("LegendarySettings", "Default Installation Directory"))
|
||||||
self.download_group.setTitle(_translate("legendary_settings", "Download Settings"))
|
self.download_group.setTitle(_translate("LegendarySettings", "Download Settings"))
|
||||||
self.max_workers_label.setText(_translate("legendary_settings", "Max Workers"))
|
self.max_workers_label.setText(_translate("LegendarySettings", "Max Workers"))
|
||||||
self.max_workers_info_label.setText(_translate("legendary_settings", "Less is slower (0: Default)"))
|
self.max_workers_info_label.setText(_translate("LegendarySettings", "Less is slower (0: Default)"))
|
||||||
self.max_memory_label.setText(_translate("legendary_settings", "Max Memory"))
|
self.max_memory_label.setText(_translate("LegendarySettings", "Max Memory"))
|
||||||
self.max_memory_spin.setSuffix(_translate("legendary_settings", "MiB"))
|
self.max_memory_spin.setSuffix(_translate("LegendarySettings", "MiB"))
|
||||||
self.max_memory_info_label.setText(_translate("legendary_settings", "Less is slower (0: Default)"))
|
self.max_memory_info_label.setText(_translate("LegendarySettings", "Less is slower (0: Default)"))
|
||||||
self.preferred_cdn_label.setText(_translate("legendary_settings", "Preferred CDN"))
|
self.preferred_cdn_label.setText(_translate("LegendarySettings", "Preferred CDN"))
|
||||||
self.preferred_cdn_line.setPlaceholderText(_translate("legendary_settings", "Default"))
|
self.preferred_cdn_line.setPlaceholderText(_translate("LegendarySettings", "Default"))
|
||||||
self.disable_https_label.setText(_translate("legendary_settings", "Disable HTTPS"))
|
self.disable_https_label.setText(_translate("LegendarySettings", "Disable HTTPS"))
|
||||||
self.cleanup_group.setTitle(_translate("legendary_settings", "Cleanup"))
|
self.egl_sync_group.setTitle(_translate("LegendarySettings", "Sync with Epic Games Launcher"))
|
||||||
self.clean_keep_manifests_button.setText(_translate("legendary_settings", "Clean, but keep manifests"))
|
self.manifest_path_info.setText(_translate("LegendarySettings", "TextLabel"))
|
||||||
self.clean_button.setText(_translate("legendary_settings", "Remove everything"))
|
self.export_group.setTitle(_translate("LegendarySettings", "Exportable Games"))
|
||||||
self.egl_sync.setTitle(_translate("legendary_settings", "EGL Sync"))
|
self.export_label.setText(_translate("LegendarySettings", "No games to export to EGS"))
|
||||||
self.egl_sync_button.setText(_translate("legendary_settings", "Sync Settings"))
|
self.export_all_button.setText(_translate("LegendarySettings", "Export all Games"))
|
||||||
self.back_button.setText(_translate("legendary_settings", "Back"))
|
self.import_group.setTitle(_translate("LegendarySettings", "Importable"))
|
||||||
self.title.setText(_translate("legendary_settings", "<h2>Sync Games with Epic Games Store</h2>"))
|
self.import_label.setText(_translate("LegendarySettings", "No games to import from EGS"))
|
||||||
self.path_info.setText(_translate("legendary_settings", "TextLabel"))
|
self.import_all_button.setText(_translate("LegendarySettings", "Import all Games"))
|
||||||
self.exportable_games.setTitle(_translate("legendary_settings", "Exportable Games"))
|
self.enable_sync_group.setTitle(_translate("LegendarySettings", "Enable Sync"))
|
||||||
self.importable_games.setTitle(_translate("legendary_settings", "Importable"))
|
self.sync_once_button.setText(_translate("LegendarySettings", "Sync once"))
|
||||||
self.export_all_button.setText(_translate("legendary_settings", "Export all Games"))
|
self.enable_sync_button.setText(_translate("LegendarySettings", "Enable automatic sync"))
|
||||||
self.import_all_button.setText(_translate("legendary_settings", "Import all Games"))
|
self.cleanup_group.setTitle(_translate("LegendarySettings", "Cleanup"))
|
||||||
self.groupBox.setTitle(_translate("legendary_settings", "Enable Sync"))
|
self.clean_keep_manifests_button.setText(_translate("LegendarySettings", "Clean, but keep manifests"))
|
||||||
self.sync_once_button.setText(_translate("legendary_settings", "Sync once"))
|
self.clean_button.setText(_translate("LegendarySettings", "Remove everything"))
|
||||||
self.enable_sync_button.setText(_translate("legendary_settings", "Enable automatic sync"))
|
self.egl_sync.setTitle(_translate("LegendarySettings", "EGL Sync"))
|
||||||
|
self.egl_sync_button.setText(_translate("LegendarySettings", "Sync Settings"))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import sys
|
import sys
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
legendary_settings = QtWidgets.QStackedWidget()
|
LegendarySettings = QtWidgets.QWidget()
|
||||||
ui = Ui_legendary_settings()
|
ui = Ui_LegendarySettings()
|
||||||
ui.setupUi(legendary_settings)
|
ui.setupUi(LegendarySettings)
|
||||||
legendary_settings.show()
|
LegendarySettings.show()
|
||||||
sys.exit(app.exec_())
|
sys.exit(app.exec_())
|
||||||
|
|
|
@ -1,340 +1,383 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>legendary_settings</class>
|
<class>LegendarySettings</class>
|
||||||
<widget class="QStackedWidget" name="legendary_settings">
|
<widget class="QWidget" name="LegendarySettings">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>810</width>
|
<width>796</width>
|
||||||
<height>535</height>
|
<height>732</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>LegendarySettings</string>
|
<string>LegendarySettings</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<layout class="QHBoxLayout" name="settings_layout">
|
||||||
<number>0</number>
|
<item>
|
||||||
</property>
|
<layout class="QVBoxLayout" name="left_layout">
|
||||||
<widget class="QWidget" name="settings">
|
<item>
|
||||||
<layout class="QHBoxLayout" name="settings_layout">
|
<widget class="QGroupBox" name="install_dir_group">
|
||||||
<item>
|
<property name="title">
|
||||||
<layout class="QVBoxLayout" name="left_layout">
|
<string>Default Installation Directory</string>
|
||||||
<item>
|
</property>
|
||||||
<widget class="QGroupBox" name="install_dir_group">
|
<layout class="QVBoxLayout" name="install_dir_layout"/>
|
||||||
<property name="title">
|
</widget>
|
||||||
<string>Default Installation Directory</string>
|
</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>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="layout_install_dir"/>
|
<item row="0" column="0">
|
||||||
</widget>
|
<widget class="QLabel" name="max_workers_label">
|
||||||
</item>
|
<property name="sizePolicy">
|
||||||
<item>
|
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||||
<widget class="QGroupBox" name="download_group">
|
<horstretch>0</horstretch>
|
||||||
<property name="title">
|
<verstretch>0</verstretch>
|
||||||
<string>Download Settings</string>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QFormLayout" name="download_layout">
|
<property name="text">
|
||||||
<property name="labelAlignment">
|
<string>Max Workers</string>
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
</property>
|
||||||
</property>
|
</widget>
|
||||||
<item row="0" column="0">
|
</item>
|
||||||
<widget class="QLabel" name="max_workers_label">
|
<item row="0" column="1">
|
||||||
<property name="sizePolicy">
|
<layout class="QHBoxLayout" name="max_workers_layout">
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
<item>
|
||||||
<horstretch>0</horstretch>
|
<widget class="QSpinBox" name="max_worker_spin">
|
||||||
<verstretch>0</verstretch>
|
<property name="sizePolicy">
|
||||||
</sizepolicy>
|
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||||
</property>
|
<horstretch>0</horstretch>
|
||||||
<property name="text">
|
<verstretch>0</verstretch>
|
||||||
<string>Max Workers</string>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="minimum">
|
||||||
</item>
|
<number>0</number>
|
||||||
<item row="0" column="1">
|
</property>
|
||||||
<layout class="QHBoxLayout" name="max_workers_layout">
|
<property name="maximum">
|
||||||
<item>
|
<number>16</number>
|
||||||
<widget class="QSpinBox" name="max_worker_spin">
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="value">
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
<number>4</number>
|
||||||
<horstretch>0</horstretch>
|
</property>
|
||||||
<verstretch>0</verstretch>
|
</widget>
|
||||||
</sizepolicy>
|
</item>
|
||||||
</property>
|
<item>
|
||||||
<property name="minimum">
|
<widget class="QLabel" name="max_workers_info_label">
|
||||||
<number>0</number>
|
<property name="font">
|
||||||
</property>
|
<font>
|
||||||
<property name="maximum">
|
<italic>true</italic>
|
||||||
<number>128</number>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="value">
|
<property name="text">
|
||||||
<number>4</number>
|
<string>Less is slower (0: Default)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="max_memory_label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Max Memory</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<layout class="QHBoxLayout" name="max_memory_layout">
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="max_memory_spin">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string>MiB</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>10240</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>128</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>1024</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="max_memory_info_label">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<italic>true</italic>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Less is slower (0: Default)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="preferred_cdn_label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Preferred CDN</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLineEdit" name="preferred_cdn_line">
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>Default</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="disable_https_label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Disable HTTPS</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QCheckBox" name="disable_https_check">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="egl_sync_group">
|
||||||
|
<property name="title">
|
||||||
|
<string>Sync with Epic Games Launcher</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="egl_sync_layout">
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="manifest_path_layout"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="manifest_path_info">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="export_import_layout">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="export_group">
|
||||||
|
<property name="title">
|
||||||
|
<string>Exportable Games</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="export_layout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="export_label">
|
||||||
|
<property name="text">
|
||||||
|
<string>No games to export to EGS</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QScrollArea" name="export_scroll">
|
||||||
|
<property name="sizeAdjustPolicy">
|
||||||
|
<enum>QAbstractScrollArea::AdjustIgnored</enum>
|
||||||
|
</property>
|
||||||
|
<property name="widgetResizable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="export_contents">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>264</width>
|
||||||
|
<height>16</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="exportable_layout"/>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item alignment="Qt::AlignRight">
|
||||||
|
<widget class="QPushButton" name="export_all_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Export all Games</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="import_group">
|
||||||
|
<property name="title">
|
||||||
|
<string>Importable</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="import_layout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="import_label">
|
||||||
|
<property name="text">
|
||||||
|
<string>No games to import from EGS</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QScrollArea" name="import_scroll">
|
||||||
|
<property name="sizeAdjustPolicy">
|
||||||
|
<enum>QAbstractScrollArea::AdjustIgnored</enum>
|
||||||
|
</property>
|
||||||
|
<property name="widgetResizable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="import_contents">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>264</width>
|
||||||
|
<height>16</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="importable_layout"/>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item alignment="Qt::AlignRight">
|
||||||
|
<widget class="QPushButton" name="import_all_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Import all Games</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="enable_sync_group">
|
||||||
|
<property name="title">
|
||||||
|
<string>Enable Sync</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="enable_sync_layout">
|
||||||
|
<item alignment="Qt::AlignRight">
|
||||||
|
<widget class="QPushButton" name="sync_once_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Sync once</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item alignment="Qt::AlignRight">
|
||||||
<widget class="QLabel" name="max_workers_info_label">
|
<widget class="QPushButton" name="enable_sync_button">
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<italic>true</italic>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Less is slower (0: Default)</string>
|
<string>Enable automatic sync</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</widget>
|
||||||
<item row="1" column="0">
|
</item>
|
||||||
<widget class="QLabel" name="max_memory_label">
|
</layout>
|
||||||
<property name="text">
|
</widget>
|
||||||
<string>Max Memory</string>
|
</item>
|
||||||
</property>
|
<item>
|
||||||
</widget>
|
<spacer name="left_vspacer">
|
||||||
</item>
|
<property name="orientation">
|
||||||
<item row="1" column="1">
|
<enum>Qt::Vertical</enum>
|
||||||
<layout class="QHBoxLayout" name="max_memory_layout">
|
</property>
|
||||||
<item>
|
<property name="sizeHint" stdset="0">
|
||||||
<widget class="QSpinBox" name="max_memory_spin">
|
<size>
|
||||||
<property name="sizePolicy">
|
<width>20</width>
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
<height>40</height>
|
||||||
<horstretch>0</horstretch>
|
</size>
|
||||||
<verstretch>0</verstretch>
|
</property>
|
||||||
</sizepolicy>
|
</spacer>
|
||||||
</property>
|
</item>
|
||||||
<property name="suffix">
|
</layout>
|
||||||
<string>MiB</string>
|
</item>
|
||||||
</property>
|
<item>
|
||||||
<property name="minimum">
|
<layout class="QVBoxLayout" name="right_layout">
|
||||||
<number>0</number>
|
<item>
|
||||||
</property>
|
<widget class="QGroupBox" name="cleanup_group">
|
||||||
<property name="maximum">
|
<property name="title">
|
||||||
<number>10240</number>
|
<string>Cleanup</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="singleStep">
|
<layout class="QVBoxLayout" name="cleanup_layout">
|
||||||
<number>128</number>
|
<item>
|
||||||
</property>
|
<widget class="QPushButton" name="clean_keep_manifests_button">
|
||||||
<property name="value">
|
<property name="text">
|
||||||
<number>1024</number>
|
<string>Clean, but keep manifests</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="max_memory_info_label">
|
<widget class="QPushButton" name="clean_button">
|
||||||
<property name="font">
|
<property name="text">
|
||||||
<font>
|
<string>Remove everything</string>
|
||||||
<italic>true</italic>
|
</property>
|
||||||
</font>
|
</widget>
|
||||||
</property>
|
</item>
|
||||||
<property name="text">
|
</layout>
|
||||||
<string>Less is slower (0: Default)</string>
|
</widget>
|
||||||
</property>
|
</item>
|
||||||
</widget>
|
<item>
|
||||||
</item>
|
<widget class="QGroupBox" name="egl_sync">
|
||||||
</layout>
|
<property name="title">
|
||||||
</item>
|
<string>EGL Sync</string>
|
||||||
<item row="2" column="0">
|
</property>
|
||||||
<widget class="QLabel" name="preferred_cdn_label">
|
<layout class="QVBoxLayout" name="egl_sync_layout_3">
|
||||||
<property name="text">
|
<item>
|
||||||
<string>Preferred CDN</string>
|
<widget class="QPushButton" name="egl_sync_button">
|
||||||
</property>
|
<property name="text">
|
||||||
</widget>
|
<string>Sync Settings</string>
|
||||||
</item>
|
</property>
|
||||||
<item row="2" column="1">
|
</widget>
|
||||||
<widget class="QLineEdit" name="preferred_cdn_line">
|
</item>
|
||||||
<property name="placeholderText">
|
</layout>
|
||||||
<string>Default</string>
|
</widget>
|
||||||
</property>
|
</item>
|
||||||
</widget>
|
<item>
|
||||||
</item>
|
<spacer name="right_vspacer">
|
||||||
<item row="3" column="0">
|
<property name="orientation">
|
||||||
<widget class="QLabel" name="disable_https_label">
|
<enum>Qt::Vertical</enum>
|
||||||
<property name="text">
|
</property>
|
||||||
<string>Disable HTTPS</string>
|
<property name="sizeHint" stdset="0">
|
||||||
</property>
|
<size>
|
||||||
</widget>
|
<width>20</width>
|
||||||
</item>
|
<height>40</height>
|
||||||
<item row="3" column="1">
|
</size>
|
||||||
<widget class="QCheckBox" name="disable_https_check">
|
</property>
|
||||||
<property name="text">
|
</spacer>
|
||||||
<string/>
|
</item>
|
||||||
</property>
|
</layout>
|
||||||
</widget>
|
</item>
|
||||||
</item>
|
</layout>
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="left_vspacer">
|
|
||||||
<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>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QVBoxLayout" name="right_layout">
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="cleanup_group">
|
|
||||||
<property name="title">
|
|
||||||
<string>Cleanup</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="layout_clean">
|
|
||||||
<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>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="egl_sync">
|
|
||||||
<property name="title">
|
|
||||||
<string>EGL Sync</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="egl_sync_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Sync Settings</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="right_vspacer">
|
|
||||||
<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>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="egl_sync_page">
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="back_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Back</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="title">
|
|
||||||
<property name="text">
|
|
||||||
<string><h2>Sync Games with Epic Games Store</h2></string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QVBoxLayout" name="pathedit_placeholder"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="path_info">
|
|
||||||
<property name="text">
|
|
||||||
<string>TextLabel</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QGridLayout" name="layout_export_import">
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QGroupBox" name="exportable_games">
|
|
||||||
<property name="title">
|
|
||||||
<string>Exportable Games</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3"/>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QGroupBox" name="importable_games">
|
|
||||||
<property name="title">
|
|
||||||
<string>Importable</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_4"/>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QPushButton" name="export_all_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Export all Games</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QPushButton" name="import_all_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Import all Games</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="groupBox">
|
|
||||||
<property name="title">
|
|
||||||
<string>Enable Sync</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="sync_once_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Sync once</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="enable_sync_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Enable automatic sync</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</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>
|
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
|
Loading…
Reference in a new issue