1
0
Fork 0
mirror of synced 2024-06-26 10:11:19 +12:00

Add structure for egl-sync

This commit is contained in:
Dummerle 2021-05-19 13:33:16 +02:00
parent df726c0c57
commit 3934b18050
5 changed files with 923 additions and 260 deletions

View file

@ -1,16 +1,16 @@
from logging import getLogger
from PyQt5.QtWidgets import QFileDialog, QMessageBox, QWidget
from PyQt5.QtWidgets import QFileDialog, QMessageBox, QStackedWidget
from custom_legendary.core import LegendaryCore
from rare.ui.components.tabs.settings.legendary import Ui_LegendarySettings
from rare.ui.components.tabs.settings.legendary import Ui_legendary_settings
from rare.utils.extra_widgets import PathEdit
from rare.utils.utils import get_size
logger = getLogger("LegendarySettings")
class LegendarySettings(QWidget, Ui_LegendarySettings):
class LegendarySettings(QStackedWidget, Ui_legendary_settings):
def __init__(self, core: LegendaryCore):
super(LegendarySettings, self).__init__()
self.setupUi(self)
@ -35,6 +35,23 @@ class LegendarySettings(QWidget, Ui_LegendarySettings):
self.clean_button_without_manifests.clicked.connect(
lambda: self.cleanup(True)
)
self.setCurrentIndex(0)
self.back_button.clicked.connect(lambda: self.setCurrentIndex(0))
if self.core.egl_sync_enabled:
self.sync_button.setText(self.tr("Disable sync"))
else:
self.sync_button.setText(self.tr("Enable Sync"))
self.sync_button.clicked.connect(self.sync)
def sync(self):
if self.core.egl_sync_enabled:
# disable_sync()
pass
else:
self.setCurrentIndex(1)
def save_path(self):
self.core.lgd.config["Legendary"]["install_dir"] = self.install_dir.text()
@ -78,3 +95,4 @@ class LegendarySettings(QWidget, Ui_LegendarySettings):
get_size(before - after)))
else:
QMessageBox.information(self, "Cleanup", "Nothing to clean")

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -11,44 +11,15 @@
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_LegendarySettings(object):
def setupUi(self, LegendarySettings):
LegendarySettings.setObjectName("LegendarySettings")
LegendarySettings.resize(647, 476)
self.layout_legendary = QtWidgets.QGridLayout(LegendarySettings)
self.layout_legendary.setObjectName("layout_legendary")
self.gb_install_dir = QtWidgets.QGroupBox(LegendarySettings)
self.gb_install_dir.setObjectName("gb_install_dir")
self.layout_install_dir = QtWidgets.QVBoxLayout(self.gb_install_dir)
self.layout_install_dir.setObjectName("layout_install_dir")
self.layout_legendary.addWidget(self.gb_install_dir, 0, 0, 1, 1)
self.gb_downloads = QtWidgets.QGroupBox(LegendarySettings)
self.gb_downloads.setObjectName("gb_downloads")
self.layout_downloads = QtWidgets.QGridLayout(self.gb_downloads)
self.layout_downloads.setObjectName("layout_downloads")
self.lbl_max_workers = QtWidgets.QLabel(self.gb_downloads)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_max_workers.sizePolicy().hasHeightForWidth())
self.lbl_max_workers.setSizePolicy(sizePolicy)
self.lbl_max_workers.setObjectName("lbl_max_workers")
self.layout_downloads.addWidget(self.lbl_max_workers, 0, 0, 1, 1, QtCore.Qt.AlignRight)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.layout_downloads.addItem(spacerItem, 0, 3, 1, 1)
self.max_worker_select = QtWidgets.QSpinBox(self.gb_downloads)
self.max_worker_select.setObjectName("max_worker_select")
self.layout_downloads.addWidget(self.max_worker_select, 0, 1, 1, 1)
self.lbl_max_workers_info = QtWidgets.QLabel(self.gb_downloads)
font = QtGui.QFont()
font.setItalic(True)
self.lbl_max_workers_info.setFont(font)
self.lbl_max_workers_info.setObjectName("lbl_max_workers_info")
self.layout_downloads.addWidget(self.lbl_max_workers_info, 0, 2, 1, 1)
self.layout_legendary.addWidget(self.gb_downloads, 1, 0, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.layout_legendary.addItem(spacerItem1, 2, 0, 1, 2)
self.gb_clean = QtWidgets.QGroupBox(LegendarySettings)
class Ui_legendary_settings(object):
def setupUi(self, legendary_settings):
legendary_settings.setObjectName("legendary_settings")
legendary_settings.resize(532, 383)
self.settings = QtWidgets.QWidget()
self.settings.setObjectName("settings")
self.gridLayout_2 = QtWidgets.QGridLayout(self.settings)
self.gridLayout_2.setObjectName("gridLayout_2")
self.gb_clean = QtWidgets.QGroupBox(self.settings)
self.gb_clean.setObjectName("gb_clean")
self.layout_clean = QtWidgets.QVBoxLayout(self.gb_clean)
self.layout_clean.setObjectName("layout_clean")
@ -58,28 +29,104 @@ class Ui_LegendarySettings(object):
self.clean_button = QtWidgets.QPushButton(self.gb_clean)
self.clean_button.setObjectName("clean_button")
self.layout_clean.addWidget(self.clean_button)
self.layout_legendary.addWidget(self.gb_clean, 0, 1, 1, 1)
self.gridLayout_2.addWidget(self.gb_clean, 0, 1, 1, 1)
self.egl_sync = QtWidgets.QGroupBox(self.settings)
self.egl_sync.setObjectName("egl_sync")
self.verticalLayout = QtWidgets.QVBoxLayout(self.egl_sync)
self.verticalLayout.setObjectName("verticalLayout")
self.sync_button = QtWidgets.QPushButton(self.egl_sync)
self.sync_button.setObjectName("sync_button")
self.verticalLayout.addWidget(self.sync_button)
self.gridLayout_2.addWidget(self.egl_sync, 1, 1, 1, 1)
self.gb_downloads = QtWidgets.QGroupBox(self.settings)
self.gb_downloads.setObjectName("gb_downloads")
self.layout_downloads = QtWidgets.QGridLayout(self.gb_downloads)
self.layout_downloads.setObjectName("layout_downloads")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.layout_downloads.addItem(spacerItem, 0, 4, 1, 1)
self.max_worker_select = QtWidgets.QSpinBox(self.gb_downloads)
self.max_worker_select.setObjectName("max_worker_select")
self.layout_downloads.addWidget(self.max_worker_select, 0, 1, 1, 1)
self.lbl_max_workers = QtWidgets.QLabel(self.gb_downloads)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lbl_max_workers.sizePolicy().hasHeightForWidth())
self.lbl_max_workers.setSizePolicy(sizePolicy)
self.lbl_max_workers.setObjectName("lbl_max_workers")
self.layout_downloads.addWidget(self.lbl_max_workers, 0, 0, 1, 1, QtCore.Qt.AlignRight)
self.lbl_max_workers_info = QtWidgets.QLabel(self.gb_downloads)
font = QtGui.QFont()
font.setItalic(True)
self.lbl_max_workers_info.setFont(font)
self.lbl_max_workers_info.setObjectName("lbl_max_workers_info")
self.layout_downloads.addWidget(self.lbl_max_workers_info, 0, 2, 1, 1)
self.gridLayout_2.addWidget(self.gb_downloads, 1, 0, 1, 1)
self.gb_install_dir = QtWidgets.QGroupBox(self.settings)
self.gb_install_dir.setObjectName("gb_install_dir")
self.layout_install_dir = QtWidgets.QVBoxLayout(self.gb_install_dir)
self.layout_install_dir.setObjectName("layout_install_dir")
self.gridLayout_2.addWidget(self.gb_install_dir, 0, 0, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_2.addItem(spacerItem1, 2, 1, 1, 1)
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.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
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.horizontalLayout.addWidget(self.exportable_games)
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.horizontalLayout.addWidget(self.importable_games)
self.verticalLayout_2.addLayout(self.horizontalLayout)
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(LegendarySettings)
QtCore.QMetaObject.connectSlotsByName(LegendarySettings)
self.retranslateUi(legendary_settings)
legendary_settings.setCurrentIndex(1)
QtCore.QMetaObject.connectSlotsByName(legendary_settings)
def retranslateUi(self, LegendarySettings):
def retranslateUi(self, legendary_settings):
_translate = QtCore.QCoreApplication.translate
LegendarySettings.setWindowTitle(_translate("LegendarySettings", "LegendarySettings"))
self.gb_install_dir.setTitle(_translate("LegendarySettings", "Default Installation Directory"))
self.gb_downloads.setTitle(_translate("LegendarySettings", "Download Settings"))
self.lbl_max_workers.setText(_translate("LegendarySettings", "Max Workers"))
self.lbl_max_workers_info.setText(_translate("LegendarySettings", "Less is slower (0: Default)"))
self.gb_clean.setTitle(_translate("LegendarySettings", "Cleanup"))
self.clean_button_without_manifests.setText(_translate("LegendarySettings", "Clean, but keep manifests"))
self.clean_button.setText(_translate("LegendarySettings", "Remove everything"))
legendary_settings.setWindowTitle(_translate("legendary_settings", "StackedWidget"))
self.gb_clean.setTitle(_translate("legendary_settings", "Cleanup"))
self.clean_button_without_manifests.setText(_translate("legendary_settings", "Clean, but keep manifests"))
self.clean_button.setText(_translate("legendary_settings", "Remove everything"))
self.egl_sync.setTitle(_translate("legendary_settings", "EGL Sync"))
self.sync_button.setText(_translate("legendary_settings", "Sync Games with Store"))
self.gb_downloads.setTitle(_translate("legendary_settings", "Download Settings"))
self.lbl_max_workers.setText(_translate("legendary_settings", "Max Workers"))
self.lbl_max_workers_info.setText(_translate("legendary_settings", "Less is slower (0: Default)"))
self.gb_install_dir.setTitle(_translate("legendary_settings", "Default Installation Directory"))
self.back_button.setText(_translate("legendary_settings", "Back"))
self.title.setText(_translate("legendary_settings", "<h2>Sync Games with Epic Games Store</h2>"))
self.exportable_games.setTitle(_translate("legendary_settings", "Importable Games"))
self.importable_games.setTitle(_translate("legendary_settings", "Exportable Games"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
LegendarySettings = QtWidgets.QWidget()
ui = Ui_LegendarySettings()
ui.setupUi(LegendarySettings)
LegendarySettings.show()
legendary_settings = QtWidgets.QStackedWidget()
ui = Ui_legendary_settings()
ui.setupUi(legendary_settings)
legendary_settings.show()
sys.exit(app.exec_())

View file

@ -1,114 +1,189 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>LegendarySettings</class>
<widget class="QWidget" name="LegendarySettings">
<class>legendary_settings</class>
<widget class="QStackedWidget" name="legendary_settings">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>647</width>
<height>476</height>
<width>532</width>
<height>383</height>
</rect>
</property>
<property name="windowTitle">
<string>LegendarySettings</string>
<string>StackedWidget</string>
</property>
<layout class="QGridLayout" name="layout_legendary">
<item row="0" column="0">
<widget class="QGroupBox" name="gb_install_dir">
<property name="title">
<string>Default Installation Directory</string>
</property>
<layout class="QVBoxLayout" name="layout_install_dir"/>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="gb_downloads">
<property name="title">
<string>Download Settings</string>
</property>
<layout class="QGridLayout" name="layout_downloads">
<item row="0" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_max_workers">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Max Workers</string>
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="hs_downloads">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="max_worker_select"/>
</item>
<item row="0" column="2">
<widget class="QLabel" name="lbl_max_workers_info">
<property name="font">
<font>
<italic>true</italic>
</font>
</property>
<property name="text">
<string>Less is slower (0: Default)</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0" colspan="2">
<spacer name="vs_legendary">
<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="0" column="1">
<widget class="QGroupBox" name="gb_clean">
<property name="title">
<string>Cleanup</string>
</property>
<layout class="QVBoxLayout" name="layout_clean">
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="settings">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="1">
<widget class="QGroupBox" name="gb_clean">
<property name="title">
<string>Cleanup</string>
</property>
<layout class="QVBoxLayout" name="layout_clean">
<item>
<widget class="QPushButton" name="clean_button_without_manifests">
<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 row="1" column="1">
<widget class="QGroupBox" name="egl_sync">
<property name="title">
<string>EGL Sync</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="sync_button">
<property name="text">
<string>Sync Games with Store</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="gb_downloads">
<property name="title">
<string>Download Settings</string>
</property>
<layout class="QGridLayout" name="layout_downloads">
<item row="0" column="4">
<spacer name="hs_downloads">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="max_worker_select"/>
</item>
<item row="0" column="0" alignment="Qt::AlignRight">
<widget class="QLabel" name="lbl_max_workers">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Max Workers</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="lbl_max_workers_info">
<property name="font">
<font>
<italic>true</italic>
</font>
</property>
<property name="text">
<string>Less is slower (0: Default)</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QGroupBox" name="gb_install_dir">
<property name="title">
<string>Default Installation Directory</string>
</property>
<layout class="QVBoxLayout" name="layout_install_dir"/>
</widget>
</item>
<item row="2" column="1">
<spacer name="vs_legendary">
<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 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>&lt;h2&gt;Sync Games with Epic Games Store&lt;/h2&gt;</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="pathedit_placeholder"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="clean_button_without_manifests">
<property name="text">
<string>Clean, but keep manifests</string>
<widget class="QGroupBox" name="exportable_games">
<property name="title">
<string>Importable Games</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3"/>
</widget>
</item>
<item>
<widget class="QPushButton" name="clean_button">
<property name="text">
<string>Remove everything</string>
<widget class="QGroupBox" name="importable_games">
<property name="title">
<string>Exportable Games</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4"/>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</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>
<resources/>
<connections/>