1
0
Fork 0
mirror of synced 2024-06-23 08:40:45 +12:00

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
This commit is contained in:
loathingKernel 2023-12-12 00:42:25 +02:00
parent 60383d2844
commit 8e1a3c8c73
No known key found for this signature in database
GPG key ID: CE0C72D0B53821FD
9 changed files with 224 additions and 255 deletions

View file

@ -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()),
)
)

View file

@ -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.")

View file

@ -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)

View file

@ -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 <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>"))
self.info_label.setText(_translate("BrowserLogin", "<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>"))
if __name__ == "__main__":

View file

@ -6,30 +6,15 @@
<rect>
<x>0</x>
<y>0</y>
<width>480</width>
<height>184</height>
<width>320</width>
<height>243</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>480</width>
<height>180</height>
</size>
</property>
<property name="windowTitle">
<string notr="true">BrowserLogin</string>
</property>
<layout class="QFormLayout" name="browser_layout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="formAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<item row="0" column="0" colspan="2">
<layout class="QVBoxLayout" name="main_layout">
<item>
<widget class="QLabel" name="title_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -48,40 +33,68 @@
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="open_button">
<property name="text">
<string>Open Browser</string>
<item>
<layout class="QFormLayout" name="form_layout">
<property name="sizeConstraint">
<enum>QLayout::SetFixedSize</enum>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="sid_label">
<property name="text">
<string>Code</string>
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<property name="alignment">
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="link_layout">
<item>
<widget class="QLineEdit" name="link_text">
<property name="formAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<item row="0" column="0">
<widget class="QPushButton" name="open_button">
<property name="text">
<string notr="true"/>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
<property name="placeholderText">
<string notr="true"/>
<string>Open Browser</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="copy_button">
<item row="0" column="1">
<layout class="QHBoxLayout" name="link_layout" stretch="1,0">
<item>
<widget class="QLineEdit" name="link_text">
<property name="text">
<string notr="true"/>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
<property name="placeholderText">
<string notr="true"/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="copy_button">
<property name="text">
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="sid_label">
<property name="text">
<string notr="true">authorizationCode</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="status_label">
<property name="font">
<font>
<italic>true</italic>
</font>
</property>
<property name="text">
<string notr="true"/>
</property>
@ -89,26 +102,20 @@
</item>
</layout>
</item>
<item row="3" column="1">
<widget class="QLabel" name="status_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<item>
<spacer name="vscaper">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="font">
<font/>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
<property name="text">
<string notr="true"/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</spacer>
</item>
<item row="5" column="0" colspan="2">
<item>
<widget class="QLabel" name="info_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
@ -116,32 +123,14 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<italic>true</italic>
</font>
</property>
<property name="text">
<string>Click the &lt;b&gt;Open Browser&lt;/b&gt; 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 &lt;b&gt;&lt;code&gt;authorizationCode&lt;/code&gt;&lt;/b&gt; contents into the empty input above. &lt;b&gt;DO NOT SHARE THE INFORMATION IN THE BROWSER PAGE WITH ANYONE IN ANY FORM (TEXT OR SCREENSHOT)!&lt;/b&gt;</string>
<string>&lt;i&gt;Click the &lt;strong&gt;Open Browser&lt;/strong&gt; 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 &lt;/i&gt;&lt;code&gt;&lt;b&gt;authorizationCode&lt;/b&gt;&lt;/code&gt;&lt;i&gt; in the same line into the empty input above.&lt;br&gt;&lt;br&gt;&lt;strong&gt;DO NOT SHARE THE INFORMATION IN THE BROWSER PAGE WITH ANYONE IN ANY FORM (TEXT OR SCREENSHOT)!&lt;/strong&gt;&lt;/i&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<spacer name="vscaper">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>

View file

@ -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", "<i>Please select the Wine prefix where Epic Games Launcher is installed. You will get logged out from EGL in the process.</i>"))
if __name__ == "__main__":

View file

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>480</width>
<height>180</height>
<width>233</width>
<height>156</height>
</rect>
</property>
<property name="sizePolicy">
@ -16,29 +16,11 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>480</width>
<height>180</height>
</size>
</property>
<property name="windowTitle">
<string notr="true">ImportLogin</string>
</property>
<layout class="QFormLayout" name="import_layout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<property name="rowWrapPolicy">
<enum>QFormLayout::WrapLongRows</enum>
</property>
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="formAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<item row="0" column="0" colspan="2">
<layout class="QVBoxLayout" name="main_layout">
<item>
<widget class="QLabel" name="title_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -57,59 +39,79 @@
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="prefix_label">
<property name="text">
<string>Select prefix</string>
<item>
<layout class="QFormLayout" name="form_layout">
<property name="sizeConstraint">
<enum>QLayout::SetFixedSize</enum>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="prefix_layout">
<item>
<widget class="QComboBox" name="prefix_combo">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="editable">
<bool>true</bool>
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<property name="labelAlignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="formAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<item row="0" column="1">
<layout class="QHBoxLayout" name="prefix_layout" stretch="1,0">
<item>
<widget class="QComboBox" name="prefix_combo">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="editable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="prefix_tool">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<widget class="QLabel" name="prefix_label">
<property name="text">
<string>Select prefix</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="prefix_tool">
<item row="1" column="1">
<widget class="QLabel" name="status_label">
<property name="font">
<font>
<italic>true</italic>
</font>
</property>
<property name="text">
<string>Browse</string>
<string notr="true"/>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="1">
<widget class="QLabel" name="status_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<item>
<spacer name="vspacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="font">
<font>
<italic>true</italic>
</font>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
<property name="text">
<string notr="true"/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</spacer>
</item>
<item row="4" column="0" colspan="2">
<item>
<widget class="QLabel" name="info_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
@ -117,32 +119,14 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<italic>true</italic>
</font>
</property>
<property name="text">
<string>You will get logged out from EGL in the process.</string>
<string>&lt;i&gt;Please select the Wine prefix where Epic Games Launcher is installed. You will get logged out from EGL in the process.&lt;/i&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<spacer name="vspacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>

View file

@ -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)

View file

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>480</width>
<height>180</height>
<width>293</width>
<height>78</height>
</rect>
</property>
<property name="sizePolicy">
@ -16,16 +16,10 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>480</width>
<height>180</height>
</size>
</property>
<property name="windowTitle">
<string notr="true">LandingPage</string>
</property>
<layout class="QFormLayout" name="landing_layout">
<layout class="QFormLayout" name="main_layout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>