Ejemplo n.º 1
0
class Register(QtGui.QDialog):
    def __init__ (self, parent = None):
        super(Register, self).__init__(parent)

        self.network = Network()

        nameLayout = QtGui.QHBoxLayout()
        passwordLayout = QtGui.QHBoxLayout()
        confirmLayout = QtGui.QHBoxLayout()
        mainLayout = QtGui.QVBoxLayout()

        self.nameLabel = QtGui.QLabel('Username')
        self.nameEdit = QtGui.QLineEdit()
        nameLayout.addWidget(self.nameLabel, 0)
        nameLayout.addWidget(self.nameEdit, 1)

        self.passwordLabel = QtGui.QLabel('Password')
        self.passwordEdit = QtGui.QLineEdit()
        self.passwordEdit.setEchoMode(QtGui.QLineEdit.Password)
        passwordLayout.addWidget(self.passwordLabel, 0)
        passwordLayout.addWidget(self.passwordEdit, 1)

        self.confirmLabel = QtGui.QLabel('Confirm   ')
        self.confirmEdit = QtGui.QLineEdit()
        self.confirmEdit.setEchoMode(QtGui.QLineEdit.Password)
        confirmLayout.addWidget(self.confirmLabel, 0)
        confirmLayout.addWidget(self.confirmEdit, 1)

        self.successLabel = QtGui.QLabel('Registration succesful')
        self.matchErrorLabel = QtGui.QLabel('Passwords dont match')
        self.fieldErrorLabel = QtGui.QLabel('Empty fields')
        self.uknownErrorLabel = QtGui.QLabel('Unknown error')
        palette = QtGui.QPalette()
        palette.setColor(QtGui.QPalette.Foreground, QtCore.Qt.red)
        self.matchErrorLabel.setPalette(palette)
        self.fieldErrorLabel.setPalette(palette)
        self.uknownErrorLabel.setPalette(palette)
        self.successLabel.hide()
        self.matchErrorLabel.hide()
        self.fieldErrorLabel.hide()
        self.uknownErrorLabel.hide()

        self.registerButton = QtGui.QPushButton('Register')
        self.registerButton.clicked.connect(self.registerButtonHandler)

        mainLayout.addLayout(nameLayout, 0)
        mainLayout.addLayout(passwordLayout, 1)
        mainLayout.addLayout(confirmLayout, 2)
        mainLayout.addWidget(self.successLabel, 3)
        mainLayout.addWidget(self.matchErrorLabel, 4)
        mainLayout.addWidget(self.fieldErrorLabel, 5)
        mainLayout.addWidget(self.uknownErrorLabel, 6)
        mainLayout.addWidget(self.registerButton, 7)

        self.setLayout(mainLayout)

    def registerButtonHandler(self):
        if self.nameEdit.text() == '' or self.passwordEdit.text() == '' or self.confirmEdit.text() == '':
            self.fieldErrorLabel.show()
            return
        else:
            self.fieldErrorLabel.hide()


        if self.passwordEdit.text() != self.confirmEdit.text():
            self.matchErrorLabel.show()
            return
        else:
            self.matchErrorLabel.hide()

        self.response = self.network.register({'username':self.nameEdit.text(),
                                                  'password': self.passwordEdit.text()})

        self.response.finished.connect(self.requestFinished)


    def requestFinished(self):
        replyByteArray = self.response.readAll()
        QtCore.QObject.deleteLater(self.response)
        replyString = str(replyByteArray.data())
        print (replyString)
        if replyString == "b'Success'" or replyString == 'Success':
            self.successLabel.show()
            self.registerButton.setText('Close')
            self.registerButton.clicked.connect(self.hide)

        else:
            self.uknownErrorLabel.show()