예제 #1
0
class AccountDialog(QDialog):
    """ Edit an account dialog """
    save = pyqtSignal(int, unicode,unicode,unicode, \
                      unicode,unicode,unicode)
    delete = pyqtSignal(int)
    
    def __init__(self, parent=None,index=0,account=None):
        super(QDialog, self).__init__(parent)
        self.index = index
        self.hostname = QLineEdit(account.hostname)
        self.hostname.setInputMethodHints(Qt.ImhNoAutoUppercase)
        self.port = QLineEdit(unicode(account.port))
        self.port.setInputMethodHints(Qt.ImhNoAutoUppercase)
        self.username = QLineEdit(account.username)
        self.username.setInputMethodHints(Qt.ImhNoAutoUppercase)
        self.password = QLineEdit(account.password)
        self.password.setEchoMode(QLineEdit.Password)
        self.password.setInputMethodHints(Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase | Qt.ImhHiddenText)
#        self.password.setInputMethodHints(Qt.ImhHiddenText)
        self.local_dir = QLineEdit(account.local_dir)
        self.local_dir.setInputMethodHints(Qt.ImhNoAutoUppercase)
        self.remote_dir = QLineEdit(account.remote_dir)
        self.remote_dir.setInputMethodHints(Qt.ImhNoAutoUppercase)

        self.save_button = QPushButton('Save')
        self.delete_button = QPushButton('Delete')
        
        gridLayout =  QGridLayout()
        leftLayout =  QVBoxLayout()

        gridLayout.addWidget(QLabel('Hostname'), 0, 0)
        gridLayout.addWidget(self.hostname, 0, 1)

        gridLayout.addWidget(QLabel('Port'), 1, 0)
        gridLayout.addWidget(self.port, 1, 1)

        gridLayout.addWidget(QLabel('Username'), 2, 0)
        gridLayout.addWidget(self.username, 2, 1)

        gridLayout.addWidget(QLabel('Password'), 3, 0)
        gridLayout.addWidget(self.password, 3, 1)        

        gridLayout.addWidget(QLabel('Local dir'), 4, 0)
        gridLayout.addWidget(self.local_dir, 4, 1)

        gridLayout.addWidget(QLabel('Remote dir'), 5, 0)
        gridLayout.addWidget(self.remote_dir, 5, 1)
        
        leftLayout.addLayout(gridLayout)
        buttonLayout =  QVBoxLayout()
        buttonLayout.addWidget(self.save_button)
        buttonLayout.addWidget(self.delete_button)
        buttonLayout.addStretch()
        mainLayout =  QHBoxLayout()
        mainLayout.addLayout(leftLayout)
        mainLayout.addLayout(buttonLayout)
        self.setLayout(mainLayout)

        mainLayout.setSizeConstraint( QLayout.SetFixedSize)

        self.save_button.clicked.connect(self.saveit)
        self.delete_button.clicked.connect(self.deleteit)
        self.setWindowTitle("Edit account")

    def deleteit(self):
        self.delete.emit(self.index)
        self.hide()

    def saveit(self):
        self.save.emit(self.index, \
                       self.hostname.text(), \
                       self.port.text(), \
                       self.username.text(),
                       self.password.text(), \
                       self.local_dir.text(), \
                       self.remote_dir.text())
        self.hide()