class AddServerWindow(QtGui.QDialog):
    def __init__(self, dblink, parent=None):
        super(AddServerWindow, self).__init__(parent)
        self.ui = Ui_AddServerWindow()
        self.ui.setupUi(self)
        
        self.ui.lLogin.hide()
        self.ui.lPassword.hide()
        self.ui.leLogin.hide()
        self.ui.lePassword.hide()
        
        self.connect(self.ui.buttonBox, QtCore.SIGNAL('accepted()'),
                     self.accept)
        
        self.parent = parent
        
        # Fill the login/pass combobox
        self.dblink = dblink
        auths = self.dblink.getAuths()
        for auth in auths:
            self.ui.cbLoginPass.addItem(auth['login'] + '/' + auth['password'], QtCore.QVariant(auth['id']))
        
        
    def accept(self):
        # Checks if all the fields have been filed
        if self.ui.leHost.text() == '' or self.ui.sbPort.text() == 0 or (self.ui.rbCreate.isChecked() and (self.ui.leLogin.text() == '' or self.ui.lePassword.text() == '')) or (self.ui.rbRSA.isChecked() and self.ui.leLogin.text() == '') or self.ui.leLabel.text() == '':
            QtGui.QMessageBox.information(self,
                        self.tr('Information'),
                        self.tr('You must fill all the required fields.'))
        else:
            if self.ui.rbCreate.isChecked():
                # Create a new user and get his id
                user_id = self.dblink.addUser(self.ui.leLogin.text(), self.ui.lePassword.text())
            elif self.ui.rbRSA.isChecked():
                user_id = self.dblink.addUser(self.ui.leLogin.text(), 'rsa')
                self.ui.lePassword.setText('rsa')
            else:
                # Get a user id already defined
                user_id, trash = self.ui.cbLoginPass.itemData(self.ui.cbLoginPass.currentIndex()).toInt()
                auth = self.dblink.getAuthById(user_id)
                self.ui.leLogin.setText(auth['login'])
                self.ui.lePassword.setText(auth['password'])
            
            server_id = self.dblink.addServer(self.ui.leHost.text(), self.ui.sbPort.text(), self.ui.leLabel.text(), user_id)
            
            # Add server to monitoring
            server = {
                      'id': server_id,
                      'host': str(self.ui.leHost.text()),
                      'port': int(self.ui.sbPort.text()),
                      'login': str(self.ui.leLogin.text()),
                      'password': str(self.ui.lePassword.text()),
                      'type': str(self.ui.leLabel.text())
                      }
            
            self.parent.addServerToMonitor(server)
            self.close()
 def __init__(self, dblink, parent=None):
     super(AddServerWindow, self).__init__(parent)
     self.ui = Ui_AddServerWindow()
     self.ui.setupUi(self)
     
     self.ui.lLogin.hide()
     self.ui.lPassword.hide()
     self.ui.leLogin.hide()
     self.ui.lePassword.hide()
     
     self.connect(self.ui.buttonBox, QtCore.SIGNAL('accepted()'),
                  self.accept)
     
     self.parent = parent
     
     # Fill the login/pass combobox
     self.dblink = dblink
     auths = self.dblink.getAuths()
     for auth in auths:
         self.ui.cbLoginPass.addItem(auth['login'] + '/' + auth['password'], QtCore.QVariant(auth['id']))