attepting to add promoted qstatusbar, auto-trigger validation on nickname input

This commit is contained in:
Xevion
2021-01-26 14:15:20 -06:00
parent b9df9a9ae6
commit 6bb302d2fc
3 changed files with 125 additions and 99 deletions

View File

@@ -15,15 +15,17 @@ class Ui_ConnectionDialog(object):
def setupUi(self, ConnectionDialog):
ConnectionDialog.setObjectName("ConnectionDialog")
ConnectionDialog.setWindowModality(QtCore.Qt.WindowModal)
ConnectionDialog.resize(665, 450)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Preferred)
ConnectionDialog.resize(665, 425)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(3)
sizePolicy.setHeightForWidth(ConnectionDialog.sizePolicy().hasHeightForWidth())
ConnectionDialog.setSizePolicy(sizePolicy)
ConnectionDialog.setMinimumSize(QtCore.QSize(660, 450))
ConnectionDialog.setMinimumSize(QtCore.QSize(660, 425))
self.gridLayout = QtWidgets.QGridLayout(ConnectionDialog)
self.gridLayout.setObjectName("gridLayout")
spacerItem = QtWidgets.QSpacerItem(20, 3, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem, 1, 0, 1, 1)
self.server_connections_tab = QtWidgets.QTabWidget(ConnectionDialog)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(2)
@@ -75,7 +77,28 @@ class Ui_ConnectionDialog(object):
self.connection_groupbox.setMinimumSize(QtCore.QSize(0, 100))
self.connection_groupbox.setObjectName("connection_groupbox")
self.gridLayout_4 = QtWidgets.QGridLayout(self.connection_groupbox)
self.gridLayout_4.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
self.gridLayout_4.setContentsMargins(-1, -1, -1, 0)
self.gridLayout_4.setObjectName("gridLayout_4")
self.nickname_layout = QtWidgets.QHBoxLayout()
self.nickname_layout.setObjectName("nickname_layout")
self.nickname_label = QtWidgets.QLabel(self.connection_groupbox)
self.nickname_label.setObjectName("nickname_label")
self.nickname_layout.addWidget(self.nickname_label)
self.nickname_input = QtWidgets.QLineEdit(self.connection_groupbox)
self.nickname_input.setObjectName("nickname_input")
self.nickname_layout.addWidget(self.nickname_input)
self.password_label = QtWidgets.QLabel(self.connection_groupbox)
self.password_label.setObjectName("password_label")
self.nickname_layout.addWidget(self.password_label)
self.password_input = QtWidgets.QLineEdit(self.connection_groupbox)
self.password_input.setEchoMode(QtWidgets.QLineEdit.PasswordEchoOnEdit)
self.password_input.setObjectName("password_input")
self.nickname_layout.addWidget(self.password_input)
self.remember_checkbox = QtWidgets.QCheckBox(self.connection_groupbox)
self.remember_checkbox.setObjectName("remember_checkbox")
self.nickname_layout.addWidget(self.remember_checkbox)
self.gridLayout_4.addLayout(self.nickname_layout, 1, 0, 1, 1)
self.connect_layout = QtWidgets.QHBoxLayout()
self.connect_layout.setObjectName("connect_layout")
self.test_connection_button = QtWidgets.QPushButton(self.connection_groupbox)
@@ -114,34 +137,15 @@ class Ui_ConnectionDialog(object):
self.port_input.setObjectName("port_input")
self.server_address_layout.addWidget(self.port_input)
self.gridLayout_4.addLayout(self.server_address_layout, 0, 0, 1, 1)
self.nickname_layout = QtWidgets.QHBoxLayout()
self.nickname_layout.setObjectName("nickname_layout")
self.nickname_label = QtWidgets.QLabel(self.connection_groupbox)
self.nickname_label.setObjectName("nickname_label")
self.nickname_layout.addWidget(self.nickname_label)
self.nickname_input = QtWidgets.QLineEdit(self.connection_groupbox)
self.nickname_input.setObjectName("nickname_input")
self.nickname_layout.addWidget(self.nickname_input)
self.password_label = QtWidgets.QLabel(self.connection_groupbox)
self.password_label.setObjectName("password_label")
self.nickname_layout.addWidget(self.password_label)
self.password_input = QtWidgets.QLineEdit(self.connection_groupbox)
self.password_input.setEchoMode(QtWidgets.QLineEdit.PasswordEchoOnEdit)
self.password_input.setObjectName("password_input")
self.nickname_layout.addWidget(self.password_input)
self.remember_checkbox = QtWidgets.QCheckBox(self.connection_groupbox)
self.remember_checkbox.setObjectName("remember_checkbox")
self.nickname_layout.addWidget(self.remember_checkbox)
self.gridLayout_4.addLayout(self.nickname_layout, 1, 0, 1, 1)
self.gridLayout.addWidget(self.connection_groupbox, 2, 0, 3, 1)
spacerItem = QtWidgets.QSpacerItem(20, 5, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem, 1, 0, 1, 1)
self.status_layout = QtWidgets.QHBoxLayout()
self.status_layout.setObjectName("status_layout")
self.gridLayout.addLayout(self.status_layout, 5, 0, 1, 1)
self.gridLayout.addLayout(self.status_layout, 6, 0, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.MinimumExpanding)
self.gridLayout.addItem(spacerItem1, 5, 0, 1, 1)
self.retranslateUi(ConnectionDialog)
self.server_connections_tab.setCurrentIndex(1)
self.server_connections_tab.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(ConnectionDialog)
def retranslateUi(self, ConnectionDialog):
@@ -156,6 +160,14 @@ class Ui_ConnectionDialog(object):
self.server_connections_tab.setTabText(self.server_connections_tab.indexOf(self.recent_tab), _translate("ConnectionDialog", "Recent"))
self.connection_groupbox.setStatusTip(_translate("ConnectionDialog", "Edit your connection settings."))
self.connection_groupbox.setTitle(_translate("ConnectionDialog", "Connection Settings"))
self.nickname_label.setText(_translate("ConnectionDialog", "Nickname"))
self.nickname_input.setStatusTip(_translate("ConnectionDialog", "Your human identifier. Without a password, uniqueness is not ensured."))
self.nickname_input.setPlaceholderText(_translate("ConnectionDialog", "Type your nickname here..."))
self.password_label.setText(_translate("ConnectionDialog", "Password"))
self.password_input.setStatusTip(_translate("ConnectionDialog", "A optional password for preserving your nickname with."))
self.password_input.setPlaceholderText(_translate("ConnectionDialog", "Optional"))
self.remember_checkbox.setStatusTip(_translate("ConnectionDialog", "Remember this password in plaintext. Kept in Recent and/or Favorites."))
self.remember_checkbox.setText(_translate("ConnectionDialog", "Remember"))
self.test_connection_button.setStatusTip(_translate("ConnectionDialog", "Test your ability to connect to the server"))
self.test_connection_button.setText(_translate("ConnectionDialog", "Test Connection"))
self.connect_button.setStatusTip(_translate("ConnectionDialog", "Connect to the TCPChat server immediately"))
@@ -166,11 +178,3 @@ class Ui_ConnectionDialog(object):
self.port_label.setText(_translate("ConnectionDialog", "Port"))
self.port_input.setStatusTip(_translate("ConnectionDialog", "The port number the server is running on."))
self.port_input.setPlaceholderText(_translate("ConnectionDialog", "5555"))
self.nickname_label.setText(_translate("ConnectionDialog", "Nickname"))
self.nickname_input.setStatusTip(_translate("ConnectionDialog", "Your human identifier. Without a password, uniqueness is not ensured."))
self.nickname_input.setPlaceholderText(_translate("ConnectionDialog", "Type your nickname here..."))
self.password_label.setText(_translate("ConnectionDialog", "Password"))
self.password_input.setStatusTip(_translate("ConnectionDialog", "A optional password for preserving your nickname with."))
self.password_input.setPlaceholderText(_translate("ConnectionDialog", "Optional"))
self.remember_checkbox.setStatusTip(_translate("ConnectionDialog", "Remember this password in plaintext. Kept in Recent and/or Favorites."))
self.remember_checkbox.setText(_translate("ConnectionDialog", "Remember"))

View File

@@ -3,7 +3,7 @@ from typing import Tuple
from PyQt5 import QtCore, QtGui
from PyQt5.QtCore import QEvent
from PyQt5.QtWidgets import QDialog, QStatusBar, QWidget
from PyQt5.QtWidgets import QDialog, QStatusBar, QWidget, QSpacerItem, QSizePolicy
import constants
from client.ConnectionDialog import Ui_ConnectionDialog
@@ -48,9 +48,12 @@ class ConnectionDialog(QDialog, Ui_ConnectionDialog):
super(ConnectionDialog, self).__init__(*args, **kwargs)
self.setupUi(self)
if nickname: self.nickname_input.setText(nickname)
self.connect_button.setDisabled(True)
if nickname:
self.nickname_input.setText(nickname)
self.validation()
self.server_address_input.textEdited.connect(self.validation)
self.port_input.textEdited.connect(self.validation)
self.nickname_input.textEdited.connect(self.validation)

View File

@@ -10,11 +10,11 @@
<x>0</x>
<y>0</y>
<width>665</width>
<height>450</height>
<height>425</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<sizepolicy hsizetype="Ignored" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>3</verstretch>
</sizepolicy>
@@ -22,13 +22,29 @@
<property name="minimumSize">
<size>
<width>660</width>
<height>450</height>
<height>425</height>
</size>
</property>
<property name="windowTitle">
<string>Connect to Server</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>3</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QTabWidget" name="server_connections_tab">
<property name="sizePolicy">
@@ -50,7 +66,7 @@
<enum>QTabWidget::Rounded</enum>
</property>
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<widget class="QWidget" name="favorites_tab">
<property name="statusTip">
@@ -163,6 +179,60 @@
<string>Connection Settings</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<property name="sizeConstraint">
<enum>QLayout::SetMaximumSize</enum>
</property>
<item row="1" column="0">
<layout class="QHBoxLayout" name="nickname_layout">
<item>
<widget class="QLabel" name="nickname_label">
<property name="text">
<string>Nickname</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="nickname_input">
<property name="statusTip">
<string>Your human identifier. Without a password, uniqueness is not ensured.</string>
</property>
<property name="placeholderText">
<string>Type your nickname here...</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="password_label">
<property name="text">
<string>Password</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="password_input">
<property name="statusTip">
<string>A optional password for preserving your nickname with.</string>
</property>
<property name="echoMode">
<enum>QLineEdit::PasswordEchoOnEdit</enum>
</property>
<property name="placeholderText">
<string>Optional</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="remember_checkbox">
<property name="statusTip">
<string>Remember this password in plaintext. Kept in Recent and/or Favorites.</string>
</property>
<property name="text">
<string>Remember</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0">
<layout class="QHBoxLayout" name="connect_layout">
<item>
@@ -249,79 +319,28 @@
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout" name="nickname_layout">
<item>
<widget class="QLabel" name="nickname_label">
<property name="text">
<string>Nickname</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="nickname_input">
<property name="statusTip">
<string>Your human identifier. Without a password, uniqueness is not ensured.</string>
</property>
<property name="placeholderText">
<string>Type your nickname here...</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="password_label">
<property name="text">
<string>Password</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="password_input">
<property name="statusTip">
<string>A optional password for preserving your nickname with.</string>
</property>
<property name="echoMode">
<enum>QLineEdit::PasswordEchoOnEdit</enum>
</property>
<property name="placeholderText">
<string>Optional</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="remember_checkbox">
<property name="statusTip">
<string>Remember this password in plaintext. Kept in Recent and/or Favorites.</string>
</property>
<property name="text">
<string>Remember</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer">
<item row="6" column="0">
<layout class="QHBoxLayout" name="status_layout"/>
</item>
<item row="5" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>5</height>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="0">
<layout class="QHBoxLayout" name="status_layout"/>
</item>
</layout>
</widget>
<resources/>