Adjust BrowserLogin
to use IndicatorLineEdit
Adjust Locale in `LegendarySettings` to use `IndicatorLineEdit` Adjust `InstallDialog` to conform with new `PathEdit` `edit_func` specification This commit temporarily removes `EGLSync` from `LegendarySettings` as it is being worked on.
This commit is contained in:
parent
c1e750138f
commit
463443796d
9 changed files with 371 additions and 882 deletions
|
@ -140,10 +140,11 @@ class InstallDialog(QDialog, Ui_InstallDialog):
|
||||||
self.get_options()
|
self.get_options()
|
||||||
self.get_download_info()
|
self.get_download_info()
|
||||||
|
|
||||||
def option_changed(self):
|
def option_changed(self, path):
|
||||||
self.options_changed = True
|
self.options_changed = True
|
||||||
self.install_button.setEnabled(False)
|
self.install_button.setEnabled(False)
|
||||||
self.verify_button.setEnabled(not self.worker_running)
|
self.verify_button.setEnabled(not self.worker_running)
|
||||||
|
return True, path
|
||||||
|
|
||||||
def cancel_clicked(self):
|
def cancel_clicked(self):
|
||||||
self.dl_item.download = None
|
self.dl_item.download = None
|
||||||
|
|
|
@ -2,7 +2,7 @@ from dataclasses import dataclass
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt
|
from PyQt5.QtCore import Qt
|
||||||
from PyQt5.QtWidgets import QDialog
|
from PyQt5.QtWidgets import QDialog, QMessageBox
|
||||||
|
|
||||||
from legendary.core import LegendaryCore
|
from legendary.core import LegendaryCore
|
||||||
from rare.components.dialogs.login.browser_login import BrowserLogin
|
from rare.components.dialogs.login.browser_login import BrowserLogin
|
||||||
|
@ -35,7 +35,7 @@ class LoginDialog(QDialog, Ui_LoginDialog):
|
||||||
self.login_stack.insertWidget(self.pages.browser, self.browser_page)
|
self.login_stack.insertWidget(self.pages.browser, self.browser_page)
|
||||||
self.browser_page.success.connect(self.login_successful)
|
self.browser_page.success.connect(self.login_successful)
|
||||||
self.browser_page.changed.connect(
|
self.browser_page.changed.connect(
|
||||||
self.next_button.setEnabled
|
lambda: self.next_button.setEnabled(self.browser_page.is_valid())
|
||||||
)
|
)
|
||||||
self.import_page = ImportLogin(self.core, self.login_stack)
|
self.import_page = ImportLogin(self.core, self.login_stack)
|
||||||
self.login_stack.insertWidget(self.pages.import_egl, self.import_page)
|
self.login_stack.insertWidget(self.pages.import_egl, self.import_page)
|
||||||
|
@ -76,8 +76,6 @@ class LoginDialog(QDialog, Ui_LoginDialog):
|
||||||
self.browser_page.do_login()
|
self.browser_page.do_login()
|
||||||
elif self.login_stack.currentIndex() == self.pages.import_egl:
|
elif self.login_stack.currentIndex() == self.pages.import_egl:
|
||||||
self.import_page.do_login()
|
self.import_page.do_login()
|
||||||
else:
|
|
||||||
self.close()
|
|
||||||
|
|
||||||
def login(self):
|
def login(self):
|
||||||
self.exec_()
|
self.exec_()
|
||||||
|
@ -94,3 +92,5 @@ class LoginDialog(QDialog, Ui_LoginDialog):
|
||||||
logger.error(str(e))
|
logger.error(str(e))
|
||||||
self.next_button.setEnabled(False)
|
self.next_button.setEnabled(False)
|
||||||
self.logged_in = False
|
self.logged_in = False
|
||||||
|
QMessageBox.warning(self, "Error", str(e))
|
||||||
|
|
||||||
|
|
|
@ -4,16 +4,17 @@ from logging import getLogger
|
||||||
from PyQt5.QtCore import pyqtSignal, QUrl
|
from PyQt5.QtCore import pyqtSignal, QUrl
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt5.QtGui import QDesktopServices
|
||||||
from PyQt5.QtWidgets import QWidget
|
from PyQt5.QtWidgets import QWidget
|
||||||
|
|
||||||
from legendary.core import LegendaryCore
|
from legendary.core import LegendaryCore
|
||||||
|
|
||||||
from rare.ui.components.dialogs.login.browser_login import Ui_BrowserLogin
|
from rare.ui.components.dialogs.login.browser_login import Ui_BrowserLogin
|
||||||
|
from rare.utils.extra_widgets import IndicatorLineEdit
|
||||||
|
|
||||||
logger = getLogger("BrowserLogin")
|
logger = getLogger("BrowserLogin")
|
||||||
|
|
||||||
|
|
||||||
class BrowserLogin(QWidget, Ui_BrowserLogin):
|
class BrowserLogin(QWidget, Ui_BrowserLogin):
|
||||||
success = pyqtSignal()
|
success = pyqtSignal()
|
||||||
changed = pyqtSignal(bool)
|
changed = pyqtSignal()
|
||||||
login_url = "https://www.epicgames.com/id/login?redirectUrl=https%3A%2F%2Fwww.epicgames.com%2Fid%2Fapi%2Fredirect"
|
login_url = "https://www.epicgames.com/id/login?redirectUrl=https%3A%2F%2Fwww.epicgames.com%2Fid%2Fapi%2Fredirect"
|
||||||
|
|
||||||
def __init__(self, core: LegendaryCore, parent=None):
|
def __init__(self, core: LegendaryCore, parent=None):
|
||||||
|
@ -22,34 +23,37 @@ class BrowserLogin(QWidget, Ui_BrowserLogin):
|
||||||
|
|
||||||
self.core = core
|
self.core = core
|
||||||
|
|
||||||
|
self.sid_edit = IndicatorLineEdit(
|
||||||
|
ph_text=self.tr("Insert SID here"),
|
||||||
|
edit_func=self.text_changed,
|
||||||
|
parent=self
|
||||||
|
)
|
||||||
|
self.sid_layout.addWidget(self.sid_edit)
|
||||||
|
|
||||||
self.open_button.clicked.connect(self.open_browser)
|
self.open_button.clicked.connect(self.open_browser)
|
||||||
self.sid_edit.textChanged.connect(self.text_changed)
|
self.sid_edit.textChanged.connect(self.changed.emit)
|
||||||
|
|
||||||
def is_valid(self, text: str):
|
def is_valid(self):
|
||||||
|
return self.sid_edit.is_valid
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def text_changed(text) -> tuple[bool, str]:
|
||||||
if text:
|
if text:
|
||||||
return len(text) == 32
|
text = text.strip()
|
||||||
else:
|
if text.startswith("{") and text.endswith("}"):
|
||||||
return len(self.sid_edit.text()) == 32
|
|
||||||
|
|
||||||
def text_changed(self, text):
|
|
||||||
if not self.is_valid(text):
|
|
||||||
try:
|
try:
|
||||||
sid = json.loads(text).get("sid")
|
text = json.loads(text).get("sid")
|
||||||
if sid and self.is_valid(sid):
|
|
||||||
self.sid_edit.setText(sid)
|
|
||||||
self.status_label.setText(self.tr("Parsed sid from pasted text"))
|
|
||||||
except json.JSONDecodeError:
|
except json.JSONDecodeError:
|
||||||
self.changed.emit(False)
|
return False, text
|
||||||
|
elif '"' in text:
|
||||||
|
text = text.strip('"')
|
||||||
|
return len(text) == 32, text
|
||||||
else:
|
else:
|
||||||
self.changed.emit(True)
|
return False, text
|
||||||
|
|
||||||
def do_login(self):
|
def do_login(self):
|
||||||
self.status_label.setText(self.tr("Logging in..."))
|
self.status_label.setText(self.tr("Logging in..."))
|
||||||
sid = self.sid_edit.text()
|
sid = self.sid_edit.text()
|
||||||
# when the text copied
|
|
||||||
if sid.startswith("{") and sid.endswith("}"):
|
|
||||||
sid = json.loads(sid)["sid"]
|
|
||||||
try:
|
try:
|
||||||
token = self.core.auth_sid(sid)
|
token = self.core.auth_sid(sid)
|
||||||
if self.core.auth_code(token):
|
if self.core.auth_code(token):
|
||||||
|
|
|
@ -3,22 +3,19 @@ import platform
|
||||||
import re
|
import re
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
|
||||||
from PyQt5.QtWidgets import QFileDialog, QMessageBox, QVBoxLayout, QDialog, QCheckBox, QLabel, \
|
from PyQt5.QtWidgets import QSizePolicy, QWidget, QFileDialog, QMessageBox
|
||||||
QHBoxLayout, QPushButton, QGroupBox, QWidget
|
|
||||||
from qtawesome import icon
|
|
||||||
|
|
||||||
from legendary.core import LegendaryCore
|
import rare.shared as shared
|
||||||
from rare import shared
|
|
||||||
from rare.ui.components.tabs.settings.legendary import Ui_LegendarySettings
|
from rare.ui.components.tabs.settings.legendary import Ui_LegendarySettings
|
||||||
from rare.utils.extra_widgets import PathEdit
|
from rare.utils.extra_widgets import PathEdit, IndicatorLineEdit
|
||||||
from rare.utils.utils import get_size
|
from rare.utils.utils import get_size
|
||||||
|
|
||||||
logger = getLogger("LegendarySettings")
|
logger = getLogger("LegendarySettings")
|
||||||
|
|
||||||
|
|
||||||
class LegendarySettings(QWidget, Ui_LegendarySettings):
|
class LegendarySettings(QWidget, Ui_LegendarySettings):
|
||||||
def __init__(self):
|
def __init__(self, parent=None):
|
||||||
super(LegendarySettings, self).__init__()
|
super(LegendarySettings, self).__init__(parent=parent)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
|
||||||
self.core = shared.legendary_core
|
self.core = shared.legendary_core
|
||||||
|
@ -26,7 +23,7 @@ class LegendarySettings(QWidget, Ui_LegendarySettings):
|
||||||
# Default installation directory
|
# Default installation directory
|
||||||
self.install_dir = PathEdit(self.core.get_default_install_dir(),
|
self.install_dir = PathEdit(self.core.get_default_install_dir(),
|
||||||
file_type=QFileDialog.DirectoryOnly,
|
file_type=QFileDialog.DirectoryOnly,
|
||||||
save_func=self.save_path)
|
save_func=self.path_save)
|
||||||
self.install_dir_layout.addWidget(self.install_dir)
|
self.install_dir_layout.addWidget(self.install_dir)
|
||||||
|
|
||||||
# Max Workers
|
# Max Workers
|
||||||
|
@ -54,159 +51,40 @@ class LegendarySettings(QWidget, Ui_LegendarySettings):
|
||||||
lambda: self.cleanup(True)
|
lambda: self.cleanup(True)
|
||||||
)
|
)
|
||||||
|
|
||||||
self.manifest_path_info.setText(
|
self.locale_edit = IndicatorLineEdit(
|
||||||
self.tr("EGL path is at C:\\ProgramData\\Epic\\EpicGamesLauncher\\Data\\Manifests"))
|
f"{self.core.language_code}-{self.core.country_code}",
|
||||||
path = os.path.expanduser("~/")
|
edit_func=self.locale_chck,
|
||||||
if self.core.egl.programdata_path:
|
save_func=self.locale_save,
|
||||||
path = self.core.egl.programdata_path
|
horiz_policy=QSizePolicy.Minimum,
|
||||||
|
parent=self
|
||||||
|
)
|
||||||
|
self.locale_layout.addWidget(self.locale_edit)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def locale_chck(text: str) -> tuple[bool, str]:
|
||||||
|
if text:
|
||||||
|
if re.match("^[a-zA-Z]{2,3}_[a-zA-Z]{2,3}$", text):
|
||||||
|
language, country = text.split("_")
|
||||||
|
text = "-".join([language.lower(), country.upper()])
|
||||||
|
return bool(re.match("^[a-z]{2,3}-[A-Z]{2,3}$", text)), text
|
||||||
else:
|
else:
|
||||||
possible_wine_prefixes = [os.path.expanduser("~/.wine"),
|
return True, text
|
||||||
os.path.expanduser("~/Games/epic-games-store")]
|
|
||||||
for i in possible_wine_prefixes:
|
|
||||||
if os.path.exists(p := os.path.join(i, "drive_c/ProgramData/Epic/EpicGamesLauncher/Data/Manifests")):
|
|
||||||
path = p
|
|
||||||
|
|
||||||
self.manifest_path_edit = PathEdit(path, QFileDialog.DirectoryOnly, save_func=self.save_egl_path)
|
def locale_save(self, text: str):
|
||||||
self.manifest_path_layout.addWidget(self.manifest_path_edit)
|
if text:
|
||||||
if platform.system() != "Windows":
|
self.core.egs.language_code, self.core.egs.country_code = text.split("-")
|
||||||
self.core.lgd.config.set('Legendary', 'egl_programdata', path)
|
|
||||||
self.core.egl.programdata_path = path
|
|
||||||
|
|
||||||
self.importable_widgets = list()
|
|
||||||
self.exportable_widgets = list()
|
|
||||||
|
|
||||||
if self.core.egl_sync_enabled:
|
|
||||||
self.egl_sync_button.setText(self.tr("Disable sync"))
|
|
||||||
else:
|
|
||||||
self.egl_sync_button.setText(self.tr("Enable Sync"))
|
|
||||||
|
|
||||||
self.egl_sync_button.clicked.connect(self.sync)
|
|
||||||
|
|
||||||
self.enable_sync_button.clicked.connect(self.enable_sync)
|
|
||||||
self.sync_once_button.clicked.connect(self.core.egl_sync)
|
|
||||||
|
|
||||||
self.locale_lineedit.setText(f"{self.core.language_code}-{self.core.country_code}")
|
|
||||||
|
|
||||||
self.locale_lineedit.textChanged.connect(self.save_locale)
|
|
||||||
|
|
||||||
def save_locale(self, text: str):
|
|
||||||
if re.match("^[a-z]{2,3}-[A-Z]{2,3}$", text):
|
|
||||||
self.core.egs.language_code = text.split("-")[0]
|
|
||||||
self.core.egs.country_code = text.split("-")[1]
|
|
||||||
self.core.lgd.config.set("Legendary", "locale", text)
|
self.core.lgd.config.set("Legendary", "locale", text)
|
||||||
self.core.lgd.save_config()
|
else:
|
||||||
self.indicator_label.setPixmap(icon("ei.ok-sign", color="green").pixmap(16, 16))
|
|
||||||
elif re.match("^[a-zA-Z]{2,3}[-_][a-zA-Z]{2,3}$", text):
|
|
||||||
text = text.replace("_", "-")
|
|
||||||
# changing text triggers text changed signal
|
|
||||||
self.locale_lineedit.setText(text.split("-")[0].lower() + "-" + text.split("-")[1].upper())
|
|
||||||
elif text == "":
|
|
||||||
if self.core.lgd.config.has_option("Legendary", "locale"):
|
if self.core.lgd.config.has_option("Legendary", "locale"):
|
||||||
self.core.lgd.config.remove_option("Legendary", "locale")
|
self.core.lgd.config.remove_option("Legendary", "locale")
|
||||||
self.core.lgd.save_config()
|
self.core.lgd.save_config()
|
||||||
self.indicator_label.setPixmap(icon("ei.ok-sign", color="green").pixmap(16, 16))
|
|
||||||
else:
|
|
||||||
self.indicator_label.setPixmap(icon("fa.warning", color="red").pixmap(16, 16))
|
|
||||||
|
|
||||||
def enable_sync(self):
|
def path_save(self, text: str):
|
||||||
if not self.core.egl.programdata_path:
|
self.core.lgd.config["Legendary"]["install_dir"] = text
|
||||||
if os.path.exists(path := self.manifest_path_edit.text()):
|
if not text and "install_dir" in self.core.lgd.config["Legendary"].keys():
|
||||||
self.core.lgd.config.set("Legendary", "egl_programdata", path)
|
|
||||||
self.core.lgd.save_config()
|
|
||||||
self.core.egl.programdata_path = path
|
|
||||||
|
|
||||||
self.core.lgd.config.set('Legendary', 'egl_sync', "true")
|
|
||||||
self.core.egl_sync()
|
|
||||||
self.core.lgd.save_config()
|
|
||||||
self.egl_sync_button.setText(self.tr("Disable Sync"))
|
|
||||||
self.enable_sync_button.setDisabled(True)
|
|
||||||
|
|
||||||
def export_all(self):
|
|
||||||
for ew in self.exportable_widgets:
|
|
||||||
ew.export_game()
|
|
||||||
self.exportable_widgets.clear()
|
|
||||||
|
|
||||||
def import_all(self):
|
|
||||||
for iw in self.importable_widgets:
|
|
||||||
iw.import_game()
|
|
||||||
self.importable_widgets.clear()
|
|
||||||
|
|
||||||
def save_egl_path(self):
|
|
||||||
self.core.lgd.config.set("Legendary", "egl_programdata", self.manifest_path_edit.text())
|
|
||||||
self.core.egl.programdata_path = self.manifest_path_edit.text()
|
|
||||||
self.core.lgd.save_config()
|
|
||||||
self.update_egl_widget()
|
|
||||||
|
|
||||||
def sync(self):
|
|
||||||
if self.core.egl_sync_enabled:
|
|
||||||
# disable sync
|
|
||||||
info = DisableSyncDialog().get_information()
|
|
||||||
if info[0] == 0:
|
|
||||||
if info[1]:
|
|
||||||
self.core.lgd.config.remove_option('Legendary', 'egl_sync')
|
|
||||||
else:
|
|
||||||
self.core.lgd.config.remove_option('Legendary', 'egl_programdata')
|
|
||||||
self.core.lgd.config.remove_option('Legendary', 'egl_sync')
|
|
||||||
# remove EGL GUIDs from all games, DO NOT remove .egstore folders because that would fuck things up.
|
|
||||||
for igame in self.core.get_installed_list():
|
|
||||||
igame.egl_guid = ''
|
|
||||||
self.core.install_game(igame)
|
|
||||||
self.core.lgd.save_config()
|
|
||||||
self.egl_sync_button.setText(self.tr("Enable Sync"))
|
|
||||||
else:
|
|
||||||
# enable sync
|
|
||||||
self.enable_sync_button.setDisabled(False)
|
|
||||||
self.update_egl_widget()
|
|
||||||
|
|
||||||
def update_egl_widget(self):
|
|
||||||
self.import_scroll.setVisible(bool(self.core.egl.programdata_path))
|
|
||||||
self.export_scroll.setVisible(bool(self.core.egl.programdata_path))
|
|
||||||
self.export_all_button.setDisabled(not bool(self.core.egl.programdata_path))
|
|
||||||
self.import_all_button.setDisabled(not bool(self.core.egl.programdata_path))
|
|
||||||
|
|
||||||
if not self.core.egl.programdata_path:
|
|
||||||
return
|
|
||||||
|
|
||||||
if self.exportable_widgets:
|
|
||||||
for ew in self.exportable_widgets:
|
|
||||||
# FIXME: Handle this using signals to properly update the list on python's side
|
|
||||||
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))
|
|
||||||
|
|
||||||
if self.importable_widgets:
|
|
||||||
for iw in self.importable_widgets:
|
|
||||||
# FIXME: Handle this using signals to properly update the list on python's side
|
|
||||||
try:
|
|
||||||
iw.deleteLater()
|
|
||||||
except RuntimeError as e:
|
|
||||||
print(e)
|
|
||||||
self.importable_widgets.clear()
|
|
||||||
importable_games = self.core.egl_get_importable()
|
|
||||||
for game in importable_games:
|
|
||||||
iw = EGLSyncWidget(game, False, self.core)
|
|
||||||
self.importable_widgets.append(iw)
|
|
||||||
self.importable_layout.addWidget(iw)
|
|
||||||
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):
|
|
||||||
self.core.lgd.config["Legendary"]["install_dir"] = self.install_dir.text()
|
|
||||||
if self.install_dir.text() == "" and "install_dir" in self.core.lgd.config["Legendary"].keys():
|
|
||||||
self.core.lgd.config["Legendary"].pop("install_dir")
|
self.core.lgd.config["Legendary"].pop("install_dir")
|
||||||
else:
|
else:
|
||||||
logger.info("Set config install_dir to " + self.install_dir.text())
|
logger.info("Set config install_dir to " + text)
|
||||||
self.core.lgd.save_config()
|
self.core.lgd.save_config()
|
||||||
|
|
||||||
def max_worker_save(self, workers: str):
|
def max_worker_save(self, workers: str):
|
||||||
|
@ -256,81 +134,3 @@ class LegendarySettings(QWidget, Ui_LegendarySettings):
|
||||||
get_size(before - after)))
|
get_size(before - after)))
|
||||||
else:
|
else:
|
||||||
QMessageBox.information(self, "Cleanup", "Nothing to clean")
|
QMessageBox.information(self, "Cleanup", "Nothing to clean")
|
||||||
|
|
||||||
|
|
||||||
class DisableSyncDialog(QDialog):
|
|
||||||
info = 1, False
|
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
|
||||||
super(DisableSyncDialog, self).__init__(parent=parent)
|
|
||||||
self.layout = QVBoxLayout()
|
|
||||||
|
|
||||||
self.question = QLabel(self.tr("Do you really want to disable sync with Epic Games Store"))
|
|
||||||
self.layout.addWidget(self.question)
|
|
||||||
|
|
||||||
self.remove_metadata = QCheckBox(self.tr("Remove metadata from installed games"))
|
|
||||||
self.layout.addWidget(self.remove_metadata)
|
|
||||||
|
|
||||||
self.button_layout = QHBoxLayout()
|
|
||||||
self.button_layout.addStretch(1)
|
|
||||||
|
|
||||||
self.ok_button = QPushButton(self.tr("Ok"))
|
|
||||||
self.cancel_button = QPushButton(self.tr("Cancel"))
|
|
||||||
|
|
||||||
self.ok_button.clicked.connect(self.ok)
|
|
||||||
self.cancel_button.clicked.connect(self.cancel)
|
|
||||||
|
|
||||||
self.button_layout.addWidget(self.ok_button)
|
|
||||||
self.button_layout.addWidget(self.cancel_button)
|
|
||||||
|
|
||||||
self.layout.addStretch(1)
|
|
||||||
self.layout.addLayout(self.button_layout)
|
|
||||||
|
|
||||||
self.setLayout(self.layout)
|
|
||||||
|
|
||||||
def ok(self):
|
|
||||||
self.info = 0, self.remove_metadata.isChecked()
|
|
||||||
self.close()
|
|
||||||
|
|
||||||
def cancel(self):
|
|
||||||
self.close()
|
|
||||||
|
|
||||||
def get_information(self):
|
|
||||||
self.exec_()
|
|
||||||
return self.info
|
|
||||||
|
|
||||||
|
|
||||||
class EGLSyncWidget(QGroupBox):
|
|
||||||
def __init__(self, game, export: bool, core: LegendaryCore, parent=None):
|
|
||||||
super(EGLSyncWidget, self).__init__(parent=parent)
|
|
||||||
self.layout = QVBoxLayout()
|
|
||||||
self.export = export
|
|
||||||
self.core = core
|
|
||||||
self.game = game
|
|
||||||
if export:
|
|
||||||
self.app_title_label = QLabel(game.title)
|
|
||||||
else:
|
|
||||||
title = self.core.get_game(game.app_name).app_title
|
|
||||||
self.app_title_label = QLabel(title)
|
|
||||||
self.layout.addWidget(self.app_title_label)
|
|
||||||
self.button = QPushButton(self.tr("Export") if export else self.tr("Import"))
|
|
||||||
|
|
||||||
if export:
|
|
||||||
self.button.clicked.connect(self.export_game)
|
|
||||||
else:
|
|
||||||
self.button.clicked.connect(self.import_game)
|
|
||||||
|
|
||||||
self.layout.addWidget(self.button)
|
|
||||||
self.setLayout(self.layout)
|
|
||||||
|
|
||||||
def export_game(self):
|
|
||||||
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):
|
|
||||||
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,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'browser_login.ui'
|
# Form implementation generated from reading ui file 'rare/ui/components/dialogs/login/browser_login.ui'
|
||||||
#
|
#
|
||||||
# Created by: PyQt5 UI code generator 5.15.4
|
# Created by: PyQt5 UI code generator 5.15.4
|
||||||
#
|
#
|
||||||
|
@ -14,7 +14,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
class Ui_BrowserLogin(object):
|
class Ui_BrowserLogin(object):
|
||||||
def setupUi(self, BrowserLogin):
|
def setupUi(self, BrowserLogin):
|
||||||
BrowserLogin.setObjectName("BrowserLogin")
|
BrowserLogin.setObjectName("BrowserLogin")
|
||||||
BrowserLogin.resize(246, 130)
|
BrowserLogin.resize(382, 178)
|
||||||
BrowserLogin.setWindowTitle("BrowserLogin")
|
BrowserLogin.setWindowTitle("BrowserLogin")
|
||||||
self.browser_layout = QtWidgets.QGridLayout(BrowserLogin)
|
self.browser_layout = QtWidgets.QGridLayout(BrowserLogin)
|
||||||
self.browser_layout.setObjectName("browser_layout")
|
self.browser_layout.setObjectName("browser_layout")
|
||||||
|
@ -28,9 +28,6 @@ class Ui_BrowserLogin(object):
|
||||||
self.title_label.setFont(font)
|
self.title_label.setFont(font)
|
||||||
self.title_label.setObjectName("title_label")
|
self.title_label.setObjectName("title_label")
|
||||||
self.browser_layout.addWidget(self.title_label, 0, 0, 1, 2, QtCore.Qt.AlignTop)
|
self.browser_layout.addWidget(self.title_label, 0, 0, 1, 2, QtCore.Qt.AlignTop)
|
||||||
self.sid_edit = QtWidgets.QLineEdit(BrowserLogin)
|
|
||||||
self.sid_edit.setObjectName("sid_edit")
|
|
||||||
self.browser_layout.addWidget(self.sid_edit, 1, 1, 1, 1)
|
|
||||||
self.info_label = QtWidgets.QLabel(BrowserLogin)
|
self.info_label = QtWidgets.QLabel(BrowserLogin)
|
||||||
font = QtGui.QFont()
|
font = QtGui.QFont()
|
||||||
font.setItalic(True)
|
font.setItalic(True)
|
||||||
|
@ -47,6 +44,9 @@ class Ui_BrowserLogin(object):
|
||||||
self.status_label.setText("")
|
self.status_label.setText("")
|
||||||
self.status_label.setObjectName("status_label")
|
self.status_label.setObjectName("status_label")
|
||||||
self.browser_layout.addWidget(self.status_label, 2, 1, 1, 1)
|
self.browser_layout.addWidget(self.status_label, 2, 1, 1, 1)
|
||||||
|
self.sid_layout = QtWidgets.QHBoxLayout()
|
||||||
|
self.sid_layout.setObjectName("sid_layout")
|
||||||
|
self.browser_layout.addLayout(self.sid_layout, 1, 1, 1, 1)
|
||||||
|
|
||||||
self.retranslateUi(BrowserLogin)
|
self.retranslateUi(BrowserLogin)
|
||||||
QtCore.QMetaObject.connectSlotsByName(BrowserLogin)
|
QtCore.QMetaObject.connectSlotsByName(BrowserLogin)
|
||||||
|
@ -55,14 +55,11 @@ class Ui_BrowserLogin(object):
|
||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
self.open_button.setText(_translate("BrowserLogin", "Open Browser"))
|
self.open_button.setText(_translate("BrowserLogin", "Open Browser"))
|
||||||
self.title_label.setText(_translate("BrowserLogin", "Login through browser"))
|
self.title_label.setText(_translate("BrowserLogin", "Login through browser"))
|
||||||
self.sid_edit.setPlaceholderText(_translate("BrowserLogin", "Insert SID here"))
|
self.info_label.setText(_translate("BrowserLogin", "Click the button to open the login page in a browser. After logging in, copy the SID code in the input above."))
|
||||||
self.info_label.setText(_translate("BrowserLogin",
|
|
||||||
"Click the button to open the login page in a browser. After logging in, copy the SID code in the input above."))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
BrowserLogin = QtWidgets.QWidget()
|
BrowserLogin = QtWidgets.QWidget()
|
||||||
ui = Ui_BrowserLogin()
|
ui = Ui_BrowserLogin()
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>246</width>
|
<width>382</width>
|
||||||
<height>130</height>
|
<height>178</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -34,13 +34,6 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QLineEdit" name="sid_edit">
|
|
||||||
<property name="placeholderText">
|
|
||||||
<string>Insert SID here</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0" colspan="2" alignment="Qt::AlignBottom">
|
<item row="3" column="0" colspan="2" alignment="Qt::AlignBottom">
|
||||||
<widget class="QLabel" name="info_label">
|
<widget class="QLabel" name="info_label">
|
||||||
<property name="font">
|
<property name="font">
|
||||||
|
@ -49,9 +42,7 @@
|
||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Click the button to open the login page in a browser. After logging in, copy the SID
|
<string>Click the button to open the login page in a browser. After logging in, copy the SID code in the input above.</string>
|
||||||
code in the input above.
|
|
||||||
</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
|
@ -71,6 +62,9 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<layout class="QHBoxLayout" name="sid_layout"/>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|
|
@ -14,7 +14,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
class Ui_LegendarySettings(object):
|
class Ui_LegendarySettings(object):
|
||||||
def setupUi(self, LegendarySettings):
|
def setupUi(self, LegendarySettings):
|
||||||
LegendarySettings.setObjectName("LegendarySettings")
|
LegendarySettings.setObjectName("LegendarySettings")
|
||||||
LegendarySettings.resize(796, 732)
|
LegendarySettings.resize(552, 268)
|
||||||
LegendarySettings.setWindowTitle("LegendarySettings")
|
LegendarySettings.setWindowTitle("LegendarySettings")
|
||||||
self.settings_layout = QtWidgets.QHBoxLayout(LegendarySettings)
|
self.settings_layout = QtWidgets.QHBoxLayout(LegendarySettings)
|
||||||
self.settings_layout.setObjectName("settings_layout")
|
self.settings_layout.setObjectName("settings_layout")
|
||||||
|
@ -28,7 +28,7 @@ class Ui_LegendarySettings(object):
|
||||||
self.download_group = QtWidgets.QGroupBox(LegendarySettings)
|
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)
|
||||||
self.download_layout.setObjectName("download_layout")
|
self.download_layout.setObjectName("download_layout")
|
||||||
self.max_workers_label = QtWidgets.QLabel(self.download_group)
|
self.max_workers_label = QtWidgets.QLabel(self.download_group)
|
||||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
||||||
|
@ -96,91 +96,21 @@ class Ui_LegendarySettings(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.setText("TextLabel")
|
|
||||||
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, 248, 18))
|
|
||||||
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, 247, 18))
|
|
||||||
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.locale_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.locale_group.sizePolicy().hasHeightForWidth())
|
||||||
|
self.locale_group.setSizePolicy(sizePolicy)
|
||||||
|
self.locale_group.setObjectName("locale_group")
|
||||||
|
self.locale_layout = QtWidgets.QVBoxLayout(self.locale_group)
|
||||||
|
self.locale_layout.setObjectName("locale_layout")
|
||||||
|
self.right_layout.addWidget(self.locale_group)
|
||||||
self.cleanup_group = QtWidgets.QGroupBox(LegendarySettings)
|
self.cleanup_group = QtWidgets.QGroupBox(LegendarySettings)
|
||||||
self.cleanup_group.setObjectName("cleanup_group")
|
self.cleanup_group.setObjectName("cleanup_group")
|
||||||
self.cleanup_layout = QtWidgets.QVBoxLayout(self.cleanup_group)
|
self.cleanup_layout = QtWidgets.QVBoxLayout(self.cleanup_group)
|
||||||
|
@ -192,42 +122,6 @@ class Ui_LegendarySettings(object):
|
||||||
self.clean_button.setObjectName("clean_button")
|
self.clean_button.setObjectName("clean_button")
|
||||||
self.cleanup_layout.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(LegendarySettings)
|
|
||||||
self.egl_sync.setObjectName("egl_sync")
|
|
||||||
self.egl_sync_layout_3 = QtWidgets.QVBoxLayout(self.egl_sync)
|
|
||||||
self.egl_sync_layout_3.setObjectName("egl_sync_layout_3")
|
|
||||||
self.egl_sync_button = QtWidgets.QPushButton(self.egl_sync)
|
|
||||||
self.egl_sync_button.setObjectName("egl_sync_button")
|
|
||||||
self.egl_sync_layout_3.addWidget(self.egl_sync_button)
|
|
||||||
self.right_layout.addWidget(self.egl_sync)
|
|
||||||
self.locale_gb = QtWidgets.QGroupBox(LegendarySettings)
|
|
||||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
|
||||||
sizePolicy.setHorizontalStretch(0)
|
|
||||||
sizePolicy.setVerticalStretch(0)
|
|
||||||
sizePolicy.setHeightForWidth(self.locale_gb.sizePolicy().hasHeightForWidth())
|
|
||||||
self.locale_gb.setSizePolicy(sizePolicy)
|
|
||||||
self.locale_gb.setObjectName("locale_gb")
|
|
||||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.locale_gb)
|
|
||||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
|
||||||
self.locale_lineedit = QtWidgets.QLineEdit(self.locale_gb)
|
|
||||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
|
||||||
sizePolicy.setHorizontalStretch(0)
|
|
||||||
sizePolicy.setVerticalStretch(0)
|
|
||||||
sizePolicy.setHeightForWidth(self.locale_lineedit.sizePolicy().hasHeightForWidth())
|
|
||||||
self.locale_lineedit.setSizePolicy(sizePolicy)
|
|
||||||
self.locale_lineedit.setPlaceholderText("")
|
|
||||||
self.locale_lineedit.setObjectName("locale_lineedit")
|
|
||||||
self.horizontalLayout.addWidget(self.locale_lineedit)
|
|
||||||
self.indicator_label = QtWidgets.QLabel(self.locale_gb)
|
|
||||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
|
|
||||||
sizePolicy.setHorizontalStretch(0)
|
|
||||||
sizePolicy.setVerticalStretch(0)
|
|
||||||
sizePolicy.setHeightForWidth(self.indicator_label.sizePolicy().hasHeightForWidth())
|
|
||||||
self.indicator_label.setSizePolicy(sizePolicy)
|
|
||||||
self.indicator_label.setText("")
|
|
||||||
self.indicator_label.setObjectName("indicator_label")
|
|
||||||
self.horizontalLayout.addWidget(self.indicator_label)
|
|
||||||
self.right_layout.addWidget(self.locale_gb)
|
|
||||||
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)
|
||||||
|
@ -247,22 +141,10 @@ class Ui_LegendarySettings(object):
|
||||||
self.preferred_cdn_label.setText(_translate("LegendarySettings", "Preferred CDN"))
|
self.preferred_cdn_label.setText(_translate("LegendarySettings", "Preferred CDN"))
|
||||||
self.preferred_cdn_line.setPlaceholderText(_translate("LegendarySettings", "Default"))
|
self.preferred_cdn_line.setPlaceholderText(_translate("LegendarySettings", "Default"))
|
||||||
self.disable_https_label.setText(_translate("LegendarySettings", "Disable HTTPS"))
|
self.disable_https_label.setText(_translate("LegendarySettings", "Disable HTTPS"))
|
||||||
self.egl_sync_group.setTitle(_translate("LegendarySettings", "Sync with Epic Games Launcher"))
|
self.locale_group.setTitle(_translate("LegendarySettings", "Locale"))
|
||||||
self.export_group.setTitle(_translate("LegendarySettings", "Exportable Games"))
|
|
||||||
self.export_label.setText(_translate("LegendarySettings", "No games to export to EGS"))
|
|
||||||
self.export_all_button.setText(_translate("LegendarySettings", "Export all Games"))
|
|
||||||
self.import_group.setTitle(_translate("LegendarySettings", "Importable"))
|
|
||||||
self.import_label.setText(_translate("LegendarySettings", "No games to import from EGS"))
|
|
||||||
self.import_all_button.setText(_translate("LegendarySettings", "Import all Games"))
|
|
||||||
self.enable_sync_group.setTitle(_translate("LegendarySettings", "Enable Sync"))
|
|
||||||
self.sync_once_button.setText(_translate("LegendarySettings", "Sync once"))
|
|
||||||
self.enable_sync_button.setText(_translate("LegendarySettings", "Enable automatic sync"))
|
|
||||||
self.cleanup_group.setTitle(_translate("LegendarySettings", "Cleanup"))
|
self.cleanup_group.setTitle(_translate("LegendarySettings", "Cleanup"))
|
||||||
self.clean_keep_manifests_button.setText(_translate("LegendarySettings", "Clean, but keep manifests"))
|
self.clean_keep_manifests_button.setText(_translate("LegendarySettings", "Clean, but keep manifests"))
|
||||||
self.clean_button.setText(_translate("LegendarySettings", "Remove everything"))
|
self.clean_button.setText(_translate("LegendarySettings", "Remove everything"))
|
||||||
self.egl_sync.setTitle(_translate("LegendarySettings", "EGL Sync"))
|
|
||||||
self.egl_sync_button.setText(_translate("LegendarySettings", "Sync Settings"))
|
|
||||||
self.locale_gb.setTitle(_translate("LegendarySettings", "Locale"))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>796</width>
|
<width>552</width>
|
||||||
<height>732</height>
|
<height>268</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -160,152 +160,6 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</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 notr="true">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>248</width>
|
|
||||||
<height>18</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>247</width>
|
|
||||||
<height>18</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>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item alignment="Qt::AlignRight">
|
|
||||||
<widget class="QPushButton" name="enable_sync_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Enable automatic sync</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<spacer name="left_vspacer">
|
<spacer name="left_vspacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
@ -323,6 +177,20 @@
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="right_layout">
|
<layout class="QVBoxLayout" name="right_layout">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="locale_group">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Locale</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="locale_layout"/>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="cleanup_group">
|
<widget class="QGroupBox" name="cleanup_group">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
|
@ -346,63 +214,6 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="egl_sync">
|
|
||||||
<property name="title">
|
|
||||||
<string>EGL Sync</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="egl_sync_layout_3">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="egl_sync_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Sync Settings</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="locale_gb">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string>Locale</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="locale_lineedit">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="placeholderText">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="indicator_label">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<spacer name="right_vspacer">
|
<spacer name="right_vspacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
|
Loading…
Reference in a new issue