1
0
Fork 0
mirror of synced 2024-06-02 02:34:40 +12:00

LoginDialog: Set minimum size in a way that avoids resizing on changing widgets

The forms were updated to be more informative and easier to read.

NOTE: The reason the form is bigger than the contents is because the
QLabels have word-wrapping enabled and as such they substitute width
for height (`hasHeightforWidth`)
This commit is contained in:
loathingKernel 2023-12-11 16:23:41 +02:00
parent e188cee4e5
commit 0ec80e5678
No known key found for this signature in database
GPG key ID: CE0C72D0B53821FD
11 changed files with 347 additions and 188 deletions

View file

@ -1,6 +1,6 @@
from logging import getLogger
from PyQt5.QtCore import Qt, pyqtSignal, pyqtSlot
from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtWidgets import QLayout, QDialog, QMessageBox, QFrame
from legendary.core import LegendaryCore
@ -48,7 +48,6 @@ class LoginDialog(QDialog):
self.args = ArgumentsSingleton()
self.login_stack = SlidingStackedWidget(parent=self)
self.login_stack.setMinimumSize(480, 180)
self.ui.login_stack_layout.addWidget(self.login_stack)
self.landing_page = LandingPage(self.login_stack)
@ -65,6 +64,12 @@ 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())
)
)
self.ui.next_button.setEnabled(False)
self.ui.back_button.setEnabled(False)

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
from PyQt5.QtWidgets import QFrame, qApp, QFormLayout
from legendary.core import LegendaryCore
from legendary.utils import webview_login
@ -34,8 +34,9 @@ class BrowserLogin(QFrame):
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.sid_layout.addWidget(self.sid_edit)
self.ui.browser_layout.setWidget(
self.ui.browser_layout.indexOf(self.ui.sid_label), QFormLayout.FieldRole, self.sid_edit
)
self.ui.open_button.clicked.connect(self.open_browser)
self.sid_edit.textChanged.connect(self.changed.emit)

View file

@ -15,6 +15,8 @@ logger = getLogger("ImportLogin")
class ImportLogin(QFrame):
success = pyqtSignal()
changed = pyqtSignal()
# FIXME: Use pathspec instead of duplicated code
if os.name == "nt":
localappdata = os.path.expandvars("%LOCALAPPDATA%")
else:

View file

@ -14,16 +14,37 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_BrowserLogin(object):
def setupUi(self, BrowserLogin):
BrowserLogin.setObjectName("BrowserLogin")
BrowserLogin.resize(237, 243)
BrowserLogin.resize(480, 184)
BrowserLogin.setMinimumSize(QtCore.QSize(480, 180))
BrowserLogin.setWindowTitle("BrowserLogin")
self.browser_layout = QtWidgets.QGridLayout(BrowserLogin)
self.browser_layout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
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.title_label = QtWidgets.QLabel(BrowserLogin)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.title_label.sizePolicy().hasHeightForWidth())
self.title_label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
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.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.link_layout = QtWidgets.QHBoxLayout()
self.link_layout.setObjectName("link_layout")
self.link_text = QtWidgets.QLineEdit(BrowserLogin)
self.link_text.setText("")
self.link_text.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.link_text.setReadOnly(True)
self.link_text.setPlaceholderText("")
self.link_text.setObjectName("link_text")
@ -32,47 +53,42 @@ class Ui_BrowserLogin(object):
self.copy_button.setText("")
self.copy_button.setObjectName("copy_button")
self.link_layout.addWidget(self.copy_button)
self.browser_layout.addLayout(self.link_layout, 2, 0, 1, 2)
spacerItem = QtWidgets.QSpacerItem(0, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.browser_layout.addItem(spacerItem, 4, 0, 1, 2)
self.open_button = QtWidgets.QPushButton(BrowserLogin)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
self.browser_layout.setLayout(1, QtWidgets.QFormLayout.FieldRole, self.link_layout)
self.status_label = QtWidgets.QLabel(BrowserLogin)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.open_button.sizePolicy().hasHeightForWidth())
self.open_button.setSizePolicy(sizePolicy)
self.open_button.setObjectName("open_button")
self.browser_layout.addWidget(self.open_button, 1, 0, 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.title_label = QtWidgets.QLabel(BrowserLogin)
sizePolicy.setHeightForWidth(self.status_label.sizePolicy().hasHeightForWidth())
self.status_label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.title_label.setFont(font)
self.title_label.setObjectName("title_label")
self.browser_layout.addWidget(self.title_label, 0, 0, 1, 2)
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.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.addWidget(self.info_label, 5, 0, 1, 2)
self.status_label = QtWidgets.QLabel(BrowserLogin)
self.status_label.setText("")
self.status_label.setAlignment(QtCore.Qt.AlignBottom|QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft)
self.status_label.setObjectName("status_label")
self.browser_layout.addWidget(self.status_label, 3, 0, 1, 2)
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.retranslateUi(BrowserLogin)
def retranslateUi(self, BrowserLogin):
_translate = QtCore.QCoreApplication.translate
self.open_button.setText(_translate("BrowserLogin", "Open Browser"))
self.title_label.setText(_translate("BrowserLogin", "Login through browser"))
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 AT ANY FORM (TEXT OR SCREENSHOT)!</b>"))
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>"))
if __name__ == "__main__":

View file

@ -6,27 +6,72 @@
<rect>
<x>0</x>
<y>0</y>
<width>237</width>
<height>243</height>
<width>480</width>
<height>184</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="QGridLayout" name="browser_layout">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
<layout class="QFormLayout" name="browser_layout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="2" column="0" colspan="2">
<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">
<widget class="QLabel" name="title_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Login through browser</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="open_button">
<property name="text">
<string>Open Browser</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="sid_label">
<property name="text">
<string>Code</string>
</property>
<property name="alignment">
<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="text">
<string notr="true"/>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
@ -44,8 +89,48 @@
</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>
</property>
<property name="font">
<font/>
</property>
<property name="text">
<string notr="true"/>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QLabel" name="info_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<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>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<spacer name="vspacer">
<spacer name="vscaper">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
@ -57,60 +142,6 @@
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="open_button">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Open Browser</string>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="sid_layout"/>
</item>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="title_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Login through browser</string>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QLabel" name="info_label">
<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 AT ANY FORM (TEXT OR SCREENSHOT)!&lt;/b&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QLabel" name="status_label">
<property name="text">
<string notr="true"/>
</property>
<property name="alignment">
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>

View file

@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'rare/ui/components/dialogs/login/import_login.ui'
#
# Created by: PyQt5 UI code generator 5.15.7
# Created by: PyQt5 UI code generator 5.15.10
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
@ -14,24 +14,37 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_ImportLogin(object):
def setupUi(self, ImportLogin):
ImportLogin.setObjectName("ImportLogin")
ImportLogin.resize(242, 120)
ImportLogin.resize(480, 180)
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.QGridLayout(ImportLogin)
self.import_layout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
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.prefix_label = QtWidgets.QLabel(ImportLogin)
self.prefix_label.setObjectName("prefix_label")
self.import_layout.addWidget(self.prefix_label, 1, 0, 1, 1)
self.title_label = QtWidgets.QLabel(ImportLogin)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.title_label.sizePolicy().hasHeightForWidth())
self.title_label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.title_label.setFont(font)
self.title_label.setObjectName("title_label")
self.import_layout.addWidget(self.title_label, 0, 0, 1, 3)
self.prefix_tool = QtWidgets.QToolButton(ImportLogin)
self.prefix_tool.setObjectName("prefix_tool")
self.import_layout.addWidget(self.prefix_tool, 1, 2, 1, 1)
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.prefix_layout = QtWidgets.QHBoxLayout()
self.prefix_layout.setObjectName("prefix_layout")
self.prefix_combo = QtWidgets.QComboBox(ImportLogin)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
@ -40,31 +53,45 @@ class Ui_ImportLogin(object):
self.prefix_combo.setSizePolicy(sizePolicy)
self.prefix_combo.setEditable(True)
self.prefix_combo.setObjectName("prefix_combo")
self.import_layout.addWidget(self.prefix_combo, 1, 1, 1, 1)
self.prefix_layout.addWidget(self.prefix_combo)
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.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.addWidget(self.status_label, 2, 1, 1, 2)
self.import_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.status_label)
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.addWidget(self.info_label, 4, 0, 1, 3)
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.addItem(spacerItem, 3, 0, 1, 3)
self.import_layout.setItem(3, QtWidgets.QFormLayout.SpanningRole, spacerItem)
self.retranslateUi(ImportLogin)
def retranslateUi(self, ImportLogin):
_translate = QtCore.QCoreApplication.translate
self.prefix_label.setText(_translate("ImportLogin", "Select prefix"))
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."))

View file

@ -6,26 +6,46 @@
<rect>
<x>0</x>
<y>0</y>
<width>242</width>
<height>120</height>
<width>480</width>
<height>180</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<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="QGridLayout" name="import_layout">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
<layout class="QFormLayout" name="import_layout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="1" column="0">
<widget class="QLabel" name="prefix_label">
<property name="text">
<string>Select prefix</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="3">
<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">
<widget class="QLabel" name="title_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
@ -37,28 +57,45 @@
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QToolButton" name="prefix_tool">
<item row="1" column="0">
<widget class="QLabel" name="prefix_label">
<property name="text">
<string>Browse</string>
<string>Select prefix</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="prefix_combo">
<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>
</widget>
</item>
<item>
<widget class="QToolButton" name="prefix_tool">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="1">
<widget class="QLabel" name="status_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="editable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="1" colspan="2">
<widget class="QLabel" name="status_label">
<property name="font">
<font>
<italic>true</italic>
@ -72,8 +109,14 @@
</property>
</widget>
</item>
<item row="4" column="0" colspan="3">
<item row="4" column="0" colspan="2">
<widget class="QLabel" name="info_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<italic>true</italic>
@ -87,7 +130,7 @@
</property>
</widget>
</item>
<item row="3" column="0" colspan="3">
<item row="3" column="0" colspan="2">
<spacer name="vspacer">
<property name="orientation">
<enum>Qt::Vertical</enum>

View file

@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'rare/ui/components/dialogs/login/landing_page.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
# Created by: PyQt5 UI code generator 5.15.10
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
@ -14,49 +14,59 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_LandingPage(object):
def setupUi(self, LandingPage):
LandingPage.setObjectName("LandingPage")
LandingPage.resize(311, 87)
LandingPage.resize(480, 180)
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.QGridLayout(LandingPage)
self.landing_layout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
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.login_label = QtWidgets.QLabel(LandingPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.login_label.sizePolicy().hasHeightForWidth())
self.login_label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.login_label.setFont(font)
self.login_label.setObjectName("login_label")
self.landing_layout.addWidget(self.login_label, 0, 0, 1, 3)
self.landing_layout.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.login_label)
self.login_browser_radio = QtWidgets.QRadioButton(LandingPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
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.addWidget(self.login_browser_radio, 1, 0, 1, 1)
self.login_import_radio = QtWidgets.QRadioButton(LandingPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
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.addWidget(self.login_import_radio, 2, 0, 1, 1)
self.landing_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.addWidget(self.login_browser_label, 1, 1, 1, 2)
self.landing_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)
sizePolicy.setVerticalStretch(0)
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.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.addWidget(self.login_import_label, 2, 1, 1, 2)
self.landing_layout.setColumnStretch(2, 1)
self.landing_layout.setRowStretch(1, 1)
self.landing_layout.setRowStretch(2, 1)
self.landing_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.login_import_label)
self.retranslateUi(LandingPage)
@ -64,8 +74,8 @@ class Ui_LandingPage(object):
_translate = QtCore.QCoreApplication.translate
self.login_label.setText(_translate("LandingPage", "Select login method"))
self.login_browser_radio.setText(_translate("LandingPage", "Browser"))
self.login_import_radio.setText(_translate("LandingPage", "Import"))
self.login_browser_label.setText(_translate("LandingPage", "Login using a browser."))
self.login_import_radio.setText(_translate("LandingPage", "Import"))
self.login_import_label.setText(_translate("LandingPage", "Import from Epic Games Launcher"))

View file

@ -6,19 +6,43 @@
<rect>
<x>0</x>
<y>0</y>
<width>311</width>
<height>87</height>
<width>480</width>
<height>180</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<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="QGridLayout" name="landing_layout" rowstretch="0,1,1" columnstretch="0,0,1">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
<layout class="QFormLayout" name="landing_layout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="0" column="0" colspan="3">
<property name="labelAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="formAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="login_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
@ -33,7 +57,7 @@
<item row="1" column="0">
<widget class="QRadioButton" name="login_browser_radio">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -43,20 +67,7 @@
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QRadioButton" name="login_import_radio">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Import</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<item row="1" column="1">
<widget class="QLabel" name="login_browser_label">
<property name="font">
<font>
@ -68,7 +79,20 @@
</property>
</widget>
</item>
<item row="2" column="1" colspan="2">
<item row="2" column="0">
<widget class="QRadioButton" name="login_import_radio">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Import</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="login_import_label">
<property name="font">
<font>

View file

@ -14,7 +14,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_LoginDialog(object):
def setupUi(self, LoginDialog):
LoginDialog.setObjectName("LoginDialog")
LoginDialog.resize(324, 132)
LoginDialog.resize(241, 128)
self.login_layout = QtWidgets.QVBoxLayout(LoginDialog)
self.login_layout.setObjectName("login_layout")
spacerItem = QtWidgets.QSpacerItem(0, 17, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)

View file

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>324</width>
<height>132</height>
<width>241</width>
<height>128</height>
</rect>
</property>
<property name="windowTitle">