From 8e1a3c8c733c6738e1e75d624571fb2a2c288410 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Tue, 12 Dec 2023 00:42:25 +0200 Subject: [PATCH] LoginDialog: Calculate a fixed height for the login stack based on width * Properly find row to insert sid_edit into * Use lazy evaluation for logging * Clean the login forms by using separate layouts for the interactive fields --- rare/components/dialogs/login/__init__.py | 21 ++- .../components/dialogs/login/browser_login.py | 12 +- rare/components/dialogs/login/import_login.py | 10 +- .../components/dialogs/login/browser_login.py | 54 +++---- .../components/dialogs/login/browser_login.ui | 151 ++++++++---------- .../components/dialogs/login/import_login.py | 50 +++--- .../components/dialogs/login/import_login.ui | 146 ++++++++--------- .../components/dialogs/login/landing_page.py | 23 ++- .../components/dialogs/login/landing_page.ui | 12 +- 9 files changed, 224 insertions(+), 255 deletions(-) diff --git a/rare/components/dialogs/login/__init__.py b/rare/components/dialogs/login/__init__.py index be75ef2d..42ba6452 100644 --- a/rare/components/dialogs/login/__init__.py +++ b/rare/components/dialogs/login/__init__.py @@ -48,6 +48,7 @@ class LoginDialog(QDialog): self.args = ArgumentsSingleton() self.login_stack = SlidingStackedWidget(parent=self) + self.login_stack.setMinimumWidth(480) self.ui.login_stack_layout.addWidget(self.login_stack) self.landing_page = LandingPage(self.login_stack) @@ -64,9 +65,23 @@ class LoginDialog(QDialog): self.import_page.success.connect(self.login_successful) self.import_page.changed.connect(lambda: self.ui.next_button.setEnabled(self.import_page.is_valid())) - self.login_stack.setMinimumSize( - self.landing_page.sizeHint().expandedTo( - self.browser_page.sizeHint().expandedTo(self.import_page.sizeHint()) + # # NOTE: The real problem is that the BrowserLogin page has a huge QLabel with word-wrapping enabled. + # # That forces the whole form to vertically expand instead of horizontally. Since the form is not shown + # # on the first page, the internal Qt calculation for the size of that form calculates it by expanding it + # # vertically. Once the form becomes visible, the correct calculation takes place and that is why the + # # dialog reduces in height. To avoid that, calculate the bounding size of all forms and set it as the + # # minumum size + # self.login_stack.setMinimumSize( + # self.landing_page.sizeHint().expandedTo( + # self.browser_page.sizeHint().expandedTo(self.import_page.sizeHint()) + # ) + # ) + + self.login_stack.setFixedHeight( + max( + self.landing_page.heightForWidth(self.login_stack.minimumWidth()), + self.browser_page.heightForWidth(self.login_stack.minimumWidth()), + self.import_page.heightForWidth(self.login_stack.minimumWidth()), ) ) diff --git a/rare/components/dialogs/login/browser_login.py b/rare/components/dialogs/login/browser_login.py index b354544e..8b10296f 100644 --- a/rare/components/dialogs/login/browser_login.py +++ b/rare/components/dialogs/login/browser_login.py @@ -4,7 +4,7 @@ from typing import Tuple from PyQt5.QtCore import pyqtSignal, QUrl from PyQt5.QtGui import QDesktopServices -from PyQt5.QtWidgets import QFrame, qApp, QFormLayout +from PyQt5.QtWidgets import QFrame, qApp, QFormLayout, QLineEdit from legendary.core import LegendaryCore from legendary.utils import webview_login @@ -31,11 +31,13 @@ class BrowserLogin(QFrame): self.sid_edit = IndicatorLineEdit( placeholder=self.tr("Insert authorizationCode here"), edit_func=self.text_changed, parent=self ) + self.sid_edit.line_edit.setEchoMode(QLineEdit.Password) self.ui.link_text.setText(self.login_url) self.ui.copy_button.setIcon(icon("mdi.content-copy", "fa.copy")) self.ui.copy_button.clicked.connect(self.copy_link) - self.ui.browser_layout.setWidget( - self.ui.browser_layout.indexOf(self.ui.sid_label), QFormLayout.FieldRole, self.sid_edit + self.ui.form_layout.setWidget( + self.ui.form_layout.getWidgetPosition(self.ui.sid_label)[0], + QFormLayout.FieldRole, self.sid_edit ) self.ui.open_button.clicked.connect(self.open_browser) @@ -69,7 +71,7 @@ class BrowserLogin(QFrame): auth_code = self.sid_edit.text() try: if self.core.auth_code(auth_code): - logger.info(f"Successfully logged in as {self.core.lgd.userdata['displayName']}") + logger.info("Successfully logged in as %s", self.core.lgd.userdata['displayName']) self.success.emit() else: self.ui.status_label.setText(self.tr("Login failed.")) @@ -83,7 +85,7 @@ class BrowserLogin(QFrame): QDesktopServices.openUrl(QUrl(self.login_url)) else: if webview_login.do_webview_login(callback_code=self.core.auth_ex_token): - logger.info("Successfully logged in as " f"{self.core.lgd.userdata['displayName']}") + logger.info("Successfully logged in as %s", {self.core.lgd.userdata['displayName']}) self.success.emit() else: logger.warning("Failed to login through browser.") diff --git a/rare/components/dialogs/login/import_login.py b/rare/components/dialogs/login/import_login.py index c817591f..7cbe0a9e 100644 --- a/rare/components/dialogs/login/import_login.py +++ b/rare/components/dialogs/login/import_login.py @@ -47,10 +47,6 @@ class ImportLogin(QFrame): if programdata_path := self.core.egl.programdata_path: if wine_pfx := programdata_path.split("drive_c")[0]: self.ui.prefix_combo.addItem(wine_pfx) - self.ui.info_label.setText( - self.tr("Please select the Wine prefix where Epic Games Launcher is installed. ") - + self.ui.info_label.text() - ) prefixes = self.get_wine_prefixes() if len(prefixes): self.ui.prefix_combo.addItems(prefixes) @@ -99,15 +95,15 @@ class ImportLogin(QFrame): if os.name == "nt": pass else: - logger.info(f'Using EGL appdata path at "{self.egl_appdata}"') + logger.info("Using EGL appdata path at %s", {self.egl_appdata}) self.core.egl.appdata_path = self.egl_appdata try: if self.core.auth_import(): - logger.info(f"Logged in as {self.core.lgd.userdata['displayName']}") + logger.info("Logged in as %s", {self.core.lgd.userdata['displayName']}) self.success.emit() else: self.ui.status_label.setText(self.tr("Login failed.")) logger.warning("Failed to import existing session.") except Exception as e: self.ui.status_label.setText(self.tr("Login failed. {}").format(str(e))) - logger.warning(f"Failed to import existing session: {e}") + logger.warning("Failed to import existing session: %s", e) diff --git a/rare/ui/components/dialogs/login/browser_login.py b/rare/ui/components/dialogs/login/browser_login.py index 99afc849..0b67bd8f 100644 --- a/rare/ui/components/dialogs/login/browser_login.py +++ b/rare/ui/components/dialogs/login/browser_login.py @@ -14,14 +14,10 @@ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_BrowserLogin(object): def setupUi(self, BrowserLogin): BrowserLogin.setObjectName("BrowserLogin") - BrowserLogin.resize(480, 184) - BrowserLogin.setMinimumSize(QtCore.QSize(480, 180)) + BrowserLogin.resize(320, 243) BrowserLogin.setWindowTitle("BrowserLogin") - self.browser_layout = QtWidgets.QFormLayout(BrowserLogin) - self.browser_layout.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow) - self.browser_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.browser_layout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.browser_layout.setObjectName("browser_layout") + self.main_layout = QtWidgets.QVBoxLayout(BrowserLogin) + self.main_layout.setObjectName("main_layout") self.title_label = QtWidgets.QLabel(BrowserLogin) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) @@ -33,14 +29,16 @@ class Ui_BrowserLogin(object): font.setWeight(75) self.title_label.setFont(font) self.title_label.setObjectName("title_label") - self.browser_layout.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.title_label) + self.main_layout.addWidget(self.title_label) + self.form_layout = QtWidgets.QFormLayout() + self.form_layout.setSizeConstraint(QtWidgets.QLayout.SetFixedSize) + self.form_layout.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow) + self.form_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.form_layout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.form_layout.setObjectName("form_layout") self.open_button = QtWidgets.QPushButton(BrowserLogin) self.open_button.setObjectName("open_button") - self.browser_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.open_button) - self.sid_label = QtWidgets.QLabel(BrowserLogin) - self.sid_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.sid_label.setObjectName("sid_label") - self.browser_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.sid_label) + self.form_layout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.open_button) self.link_layout = QtWidgets.QHBoxLayout() self.link_layout.setObjectName("link_layout") self.link_text = QtWidgets.QLineEdit(BrowserLogin) @@ -53,33 +51,32 @@ class Ui_BrowserLogin(object): self.copy_button.setText("") self.copy_button.setObjectName("copy_button") self.link_layout.addWidget(self.copy_button) - self.browser_layout.setLayout(1, QtWidgets.QFormLayout.FieldRole, self.link_layout) + self.link_layout.setStretch(0, 1) + self.form_layout.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.link_layout) + self.sid_label = QtWidgets.QLabel(BrowserLogin) + self.sid_label.setText("authorizationCode") + self.sid_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.sid_label.setObjectName("sid_label") + self.form_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.sid_label) self.status_label = QtWidgets.QLabel(BrowserLogin) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.status_label.sizePolicy().hasHeightForWidth()) - self.status_label.setSizePolicy(sizePolicy) font = QtGui.QFont() + font.setItalic(True) self.status_label.setFont(font) self.status_label.setText("") - self.status_label.setWordWrap(True) self.status_label.setObjectName("status_label") - self.browser_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.status_label) + self.form_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.status_label) + self.main_layout.addLayout(self.form_layout) + spacerItem = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.main_layout.addItem(spacerItem) self.info_label = QtWidgets.QLabel(BrowserLogin) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.info_label.sizePolicy().hasHeightForWidth()) self.info_label.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setItalic(True) - self.info_label.setFont(font) self.info_label.setWordWrap(True) self.info_label.setObjectName("info_label") - self.browser_layout.setWidget(5, QtWidgets.QFormLayout.SpanningRole, self.info_label) - spacerItem = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.browser_layout.setItem(4, QtWidgets.QFormLayout.SpanningRole, spacerItem) + self.main_layout.addWidget(self.info_label) self.retranslateUi(BrowserLogin) @@ -87,8 +84,7 @@ class Ui_BrowserLogin(object): _translate = QtCore.QCoreApplication.translate self.title_label.setText(_translate("BrowserLogin", "Login through browser")) self.open_button.setText(_translate("BrowserLogin", "Open Browser")) - self.sid_label.setText(_translate("BrowserLogin", "Code")) - self.info_label.setText(_translate("BrowserLogin", "Click the Open Browser button to open the login page in a browser or copy the link and paste it in a browser. After logging in using the browser, copy the authorizationCode contents into the empty input above. DO NOT SHARE THE INFORMATION IN THE BROWSER PAGE WITH ANYONE IN ANY FORM (TEXT OR SCREENSHOT)!")) + self.info_label.setText(_translate("BrowserLogin", "Click the Open Browser button to open the login page in your web browser or copy the link and paste it in any web browser. After logging in using the browser, copy the text in the quotes after authorizationCode in the same line into the empty input above.

DO NOT SHARE THE INFORMATION IN THE BROWSER PAGE WITH ANYONE IN ANY FORM (TEXT OR SCREENSHOT)!
")) if __name__ == "__main__": diff --git a/rare/ui/components/dialogs/login/browser_login.ui b/rare/ui/components/dialogs/login/browser_login.ui index 7d67856d..8331b84c 100644 --- a/rare/ui/components/dialogs/login/browser_login.ui +++ b/rare/ui/components/dialogs/login/browser_login.ui @@ -6,30 +6,15 @@ 0 0 - 480 - 184 + 320 + 243 - - - 480 - 180 - - BrowserLogin - - - QFormLayout::AllNonFixedFieldsGrow - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - + + @@ -48,40 +33,68 @@ - - - - Open Browser + + + + QLayout::SetFixedSize - - - - - - Code + + QFormLayout::AllNonFixedFieldsGrow - + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + - - - - true - - - + Open Browser - - + + + + + + + + + true + + + + + + + + + + + + + + + + + + + authorizationCode + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + true + + @@ -89,26 +102,20 @@ - - - - - 0 - 0 - + + + + Qt::Vertical - - + + + 20 + 10 + - - - - - true - - + - + @@ -116,32 +123,14 @@ 0 - - - true - - - Click the <b>Open Browser</b> button to open the login page in a browser or copy the link and paste it in a browser. After logging in using the browser, copy the <b><code>authorizationCode</code></b> contents into the empty input above. <b>DO NOT SHARE THE INFORMATION IN THE BROWSER PAGE WITH ANYONE IN ANY FORM (TEXT OR SCREENSHOT)!</b> + <i>Click the <strong>Open Browser</strong> button to open the login page in your web browser or copy the link and paste it in any web browser. After logging in using the browser, copy the text in the quotes after </i><code><b>authorizationCode</b></code><i> in the same line into the empty input above.<br><br><strong>DO NOT SHARE THE INFORMATION IN THE BROWSER PAGE WITH ANYONE IN ANY FORM (TEXT OR SCREENSHOT)!</strong></i> true - - - - Qt::Vertical - - - - 0 - 0 - - - - diff --git a/rare/ui/components/dialogs/login/import_login.py b/rare/ui/components/dialogs/login/import_login.py index ab695011..e6105982 100644 --- a/rare/ui/components/dialogs/login/import_login.py +++ b/rare/ui/components/dialogs/login/import_login.py @@ -14,20 +14,15 @@ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_ImportLogin(object): def setupUi(self, ImportLogin): ImportLogin.setObjectName("ImportLogin") - ImportLogin.resize(480, 180) + ImportLogin.resize(233, 156) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(ImportLogin.sizePolicy().hasHeightForWidth()) ImportLogin.setSizePolicy(sizePolicy) - ImportLogin.setMinimumSize(QtCore.QSize(480, 180)) ImportLogin.setWindowTitle("ImportLogin") - self.import_layout = QtWidgets.QFormLayout(ImportLogin) - self.import_layout.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow) - self.import_layout.setRowWrapPolicy(QtWidgets.QFormLayout.WrapLongRows) - self.import_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) - self.import_layout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.import_layout.setObjectName("import_layout") + self.main_layout = QtWidgets.QVBoxLayout(ImportLogin) + self.main_layout.setObjectName("main_layout") self.title_label = QtWidgets.QLabel(ImportLogin) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) @@ -39,10 +34,13 @@ class Ui_ImportLogin(object): font.setWeight(75) self.title_label.setFont(font) self.title_label.setObjectName("title_label") - self.import_layout.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.title_label) - self.prefix_label = QtWidgets.QLabel(ImportLogin) - self.prefix_label.setObjectName("prefix_label") - self.import_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.prefix_label) + self.main_layout.addWidget(self.title_label) + self.form_layout = QtWidgets.QFormLayout() + self.form_layout.setSizeConstraint(QtWidgets.QLayout.SetFixedSize) + self.form_layout.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow) + self.form_layout.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.form_layout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.form_layout.setObjectName("form_layout") self.prefix_layout = QtWidgets.QHBoxLayout() self.prefix_layout.setObjectName("prefix_layout") self.prefix_combo = QtWidgets.QComboBox(ImportLogin) @@ -57,43 +55,39 @@ class Ui_ImportLogin(object): self.prefix_tool = QtWidgets.QToolButton(ImportLogin) self.prefix_tool.setObjectName("prefix_tool") self.prefix_layout.addWidget(self.prefix_tool) - self.import_layout.setLayout(1, QtWidgets.QFormLayout.FieldRole, self.prefix_layout) + self.prefix_layout.setStretch(0, 1) + self.form_layout.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.prefix_layout) + self.prefix_label = QtWidgets.QLabel(ImportLogin) + self.prefix_label.setObjectName("prefix_label") + self.form_layout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.prefix_label) self.status_label = QtWidgets.QLabel(ImportLogin) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.status_label.sizePolicy().hasHeightForWidth()) - self.status_label.setSizePolicy(sizePolicy) font = QtGui.QFont() font.setItalic(True) self.status_label.setFont(font) self.status_label.setText("") - self.status_label.setWordWrap(True) self.status_label.setObjectName("status_label") - self.import_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.status_label) + self.form_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.status_label) + self.main_layout.addLayout(self.form_layout) + spacerItem = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.main_layout.addItem(spacerItem) self.info_label = QtWidgets.QLabel(ImportLogin) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.info_label.sizePolicy().hasHeightForWidth()) self.info_label.setSizePolicy(sizePolicy) - font = QtGui.QFont() - font.setItalic(True) - self.info_label.setFont(font) self.info_label.setWordWrap(True) self.info_label.setObjectName("info_label") - self.import_layout.setWidget(4, QtWidgets.QFormLayout.SpanningRole, self.info_label) - spacerItem = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.import_layout.setItem(3, QtWidgets.QFormLayout.SpanningRole, spacerItem) + self.main_layout.addWidget(self.info_label) self.retranslateUi(ImportLogin) def retranslateUi(self, ImportLogin): _translate = QtCore.QCoreApplication.translate self.title_label.setText(_translate("ImportLogin", "Import existing session from EGL")) - self.prefix_label.setText(_translate("ImportLogin", "Select prefix")) self.prefix_tool.setText(_translate("ImportLogin", "Browse")) - self.info_label.setText(_translate("ImportLogin", "You will get logged out from EGL in the process.")) + self.prefix_label.setText(_translate("ImportLogin", "Select prefix")) + self.info_label.setText(_translate("ImportLogin", "Please select the Wine prefix where Epic Games Launcher is installed. You will get logged out from EGL in the process.")) if __name__ == "__main__": diff --git a/rare/ui/components/dialogs/login/import_login.ui b/rare/ui/components/dialogs/login/import_login.ui index 8c47d9d5..c396215a 100644 --- a/rare/ui/components/dialogs/login/import_login.ui +++ b/rare/ui/components/dialogs/login/import_login.ui @@ -6,8 +6,8 @@ 0 0 - 480 - 180 + 233 + 156 @@ -16,29 +16,11 @@ 0 - - - 480 - 180 - - ImportLogin - - - QFormLayout::AllNonFixedFieldsGrow - - - QFormLayout::WrapLongRows - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - + + @@ -57,59 +39,79 @@ - - - - Select prefix + + + + QLayout::SetFixedSize - - - - - - - - - 0 - 0 - - - - true + + QFormLayout::AllNonFixedFieldsGrow + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + true + + + + + + + Browse + + + + + + + + + Select prefix - - + + + + + true + + - Browse + - - - - - 0 - 0 - + + + + Qt::Vertical - - - true - + + + 20 + 10 + - - - - - true - - + - + @@ -117,32 +119,14 @@ 0 - - - true - - - You will get logged out from EGL in the process. + <i>Please select the Wine prefix where Epic Games Launcher is installed. You will get logged out from EGL in the process.</i> true - - - - Qt::Vertical - - - - 0 - 0 - - - - diff --git a/rare/ui/components/dialogs/login/landing_page.py b/rare/ui/components/dialogs/login/landing_page.py index e8ef4e0b..e13b27be 100644 --- a/rare/ui/components/dialogs/login/landing_page.py +++ b/rare/ui/components/dialogs/login/landing_page.py @@ -14,19 +14,18 @@ from PyQt5 import QtCore, QtGui, QtWidgets class Ui_LandingPage(object): def setupUi(self, LandingPage): LandingPage.setObjectName("LandingPage") - LandingPage.resize(480, 180) + LandingPage.resize(293, 78) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(LandingPage.sizePolicy().hasHeightForWidth()) LandingPage.setSizePolicy(sizePolicy) - LandingPage.setMinimumSize(QtCore.QSize(480, 180)) LandingPage.setWindowTitle("LandingPage") - self.landing_layout = QtWidgets.QFormLayout(LandingPage) - self.landing_layout.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow) - self.landing_layout.setLabelAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.landing_layout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.landing_layout.setObjectName("landing_layout") + self.main_layout = QtWidgets.QFormLayout(LandingPage) + self.main_layout.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow) + self.main_layout.setLabelAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.main_layout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.main_layout.setObjectName("main_layout") self.login_label = QtWidgets.QLabel(LandingPage) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) @@ -38,7 +37,7 @@ class Ui_LandingPage(object): font.setWeight(75) self.login_label.setFont(font) self.login_label.setObjectName("login_label") - self.landing_layout.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.login_label) + self.main_layout.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.login_label) self.login_browser_radio = QtWidgets.QRadioButton(LandingPage) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) @@ -46,13 +45,13 @@ class Ui_LandingPage(object): sizePolicy.setHeightForWidth(self.login_browser_radio.sizePolicy().hasHeightForWidth()) self.login_browser_radio.setSizePolicy(sizePolicy) self.login_browser_radio.setObjectName("login_browser_radio") - self.landing_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.login_browser_radio) + self.main_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.login_browser_radio) self.login_browser_label = QtWidgets.QLabel(LandingPage) font = QtGui.QFont() font.setItalic(True) self.login_browser_label.setFont(font) self.login_browser_label.setObjectName("login_browser_label") - self.landing_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.login_browser_label) + self.main_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.login_browser_label) self.login_import_radio = QtWidgets.QRadioButton(LandingPage) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) @@ -60,13 +59,13 @@ class Ui_LandingPage(object): sizePolicy.setHeightForWidth(self.login_import_radio.sizePolicy().hasHeightForWidth()) self.login_import_radio.setSizePolicy(sizePolicy) self.login_import_radio.setObjectName("login_import_radio") - self.landing_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.login_import_radio) + self.main_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.login_import_radio) self.login_import_label = QtWidgets.QLabel(LandingPage) font = QtGui.QFont() font.setItalic(True) self.login_import_label.setFont(font) self.login_import_label.setObjectName("login_import_label") - self.landing_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.login_import_label) + self.main_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.login_import_label) self.retranslateUi(LandingPage) diff --git a/rare/ui/components/dialogs/login/landing_page.ui b/rare/ui/components/dialogs/login/landing_page.ui index 466cb9df..43e4dc01 100644 --- a/rare/ui/components/dialogs/login/landing_page.ui +++ b/rare/ui/components/dialogs/login/landing_page.ui @@ -6,8 +6,8 @@ 0 0 - 480 - 180 + 293 + 78 @@ -16,16 +16,10 @@ 0 - - - 480 - 180 - - LandingPage - + QFormLayout::AllNonFixedFieldsGrow