Example #1
0
class Server(QDialog, Ui_Server):
    saved = pyqtSignal()

    def __init__(self, parent=None):
        """
        Constructor
        
        @param parent reference to the parent widget (QWidget)
        """
        super(Server, self).__init__(parent)
        self.setupUi(self)

        self.server_id = None
        self.platform_model = PlatformModel()
        self.server_model = ServerModel()

        self.initData()

    def initData(self):
        self.platform.addItems(self.platform_model.list())

    @pyqtSlot()
    def on_add_platform_clicked(self):
        """
        Slot documentation goes here.
        """
        text, ok = QtGui.QInputDialog.getText(self, u"添加", u"平台名称:")
        if ok == True:
            if self.platform_model.check(text) > 0:
                QtGui.QMessageBox.critical(self, u"提示", u"平台名称已存在!")
            elif self.platform_model.add(text):
                self.platform.addItem(text)
                self.platform.setCurrentIndex(self.platform.count() - 1)
            else:
                QtGui.QMessageBox.critical(self, u"提示", u"添加平台失败")

    @pyqtSlot()
    def on_edit_platform_clicked(self):
        """
        Slot documentation goes here.
        """
        if self.platform.count() == 0:
            QtGui.QMessageBox.information(self, u"提示", u"没有平台可以编辑!")
        else:
            old_text = self.platform.currentText()
            new_text, ok = QtGui.QInputDialog.getText(self, u"添加", u"平台名称:", 0, old_text)
            if ok == True:
                if self.platform_model.check(new_text) > 0:
                    QtGui.QMessageBox.critical(self, u"提示", u"平台名称已存在!")
                elif self.platform_model.update(new_text, old_text):
                    index = self.platform.currentIndex()
                    self.platform.setItemText(index, new_text)
                else:
                    QtGui.QMessageBox.critical(self, u"提示", u"修改平台失败")

    @pyqtSlot()
    def on_delete_platform_clicked(self):
        """
        Slot documentation goes here.
        """
        if self.platform.count() == 0:
            QtGui.QMessageBox.information(self, u"提示", u"没有平台可以删除!")
            return

        answer = QtGui.QMessageBox.question(self, u"提示", u"确定删除当前选中平台?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
        if answer == QtGui.QMessageBox.Yes:
            text = self.platform.currentText()
            if self.server_model.countByPlatform(text) > 0:
                QtGui.QMessageBox.warning(self, u"提示", u"删除平台之前请先删除该平台下面的服务器!")
            else:
                if self.platform_model.delete(text):
                    self.platform.removeItem(self.platform.currentIndex())
                else:
                    QtGui.QMessageBox.critical(self, u"提示", u"删除平台失败")

    @pyqtSlot()
    def on_save_clicked(self):
        """
        Slot documentation goes here.
        """
        if self.validator() == True:
            # platform,server_name,account,password,host,port,path
            fields = {
                "server_id": self.server_id,
                "platform": self.platform.currentText(),
                "server_name": self.server_name.text(),
                "account": self.account.text(),
                "password": self.password.text(),
                "host": self.host.text(),
                "port": self.port.text(),
                "path": self.path.text(),
            }
            if self.server_id == None:
                if self.server_model.add(fields):
                    QtGui.QMessageBox.information(self, u"提示", u"添加服务器成功!")
                    self.saved.emit()
                    self.close()
                else:
                    QtGui.QMessageBox.information(self, u"提示", u"添加服务器失败!")
            else:
                if self.server_model.update(self.server_id, fields):
                    QtGui.QMessageBox.information(self, u"提示", u"修改服务器成功!")
                    self.saved.emit()
                    self.close()
                else:
                    QtGui.QMessageBox.information(self, u"提示", u"修改服务器失败!")

    def validator(self):
        if len(self.server_name.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请输入名称!")
            self.server_name.setFocus()
            return False

        if self.platform.count() < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请添加平台!")
            self.add_platform.clicked.emit(True)
            return False

        if len(self.host.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请输入主机!")
            self.host.setFocus()
            return False

        if len(self.port.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请输入端口!")
            self.port.setFocus()
            return False

        if len(self.path.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请输入路径!")
            self.path.setFocus()
            return False

        if len(self.account.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, "提示", "请输入账号!")
            self.account.setFocus()
            return False

        if len(self.password.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请输入密码!")
            self.password.setFocus()
            return False

        return True

    def setData(self, data):
        if data != False:
            if data["id"] != None:
                self.server_id = data["id"]
                self.groupBox.setTitle(u"修改")
            else:
                self.groupBox.setTitle(u"复制")

            index = self.platform.findText(data["platform"])
            self.platform.setCurrentIndex(index)
            self.server_name.setText(data["server_name"])
            self.account.setText(data["account"])
            self.password.setText(data["password"])
            self.host.setText(data["host"])
            self.port.setText(data["port"])
            self.path.setText(data["path"])
Example #2
0
class Server(QDialog, Ui_Server):
    saved = pyqtSignal()

    def __init__(self, parent=None):
        """
        Constructor
        
        @param parent reference to the parent widget (QWidget)
        """
        super(Server, self).__init__(parent)
        self.setupUi(self)

        self.server_id = None
        self.platform_model = PlatformModel()
        self.server_model = ServerModel()

        self.initData()

    def initData(self):
        self.platform.addItems(self.platform_model.list())

    @pyqtSlot()
    def on_add_platform_clicked(self):
        """
        Slot documentation goes here.
        """
        text, ok = QtGui.QInputDialog.getText(self, u"添加", u"平台名称:")
        if ok == True:
            if self.platform_model.check(text) > 0:
                QtGui.QMessageBox.critical(self, u"提示", u"平台名称已存在!")
            elif self.platform_model.add(text):
                self.platform.addItem(text)
                self.platform.setCurrentIndex(self.platform.count() - 1)
            else:
                QtGui.QMessageBox.critical(self, u"提示", u"添加平台失败")

    @pyqtSlot()
    def on_edit_platform_clicked(self):
        """
        Slot documentation goes here.
        """
        if self.platform.count() == 0:
            QtGui.QMessageBox.information(self, u"提示", u"没有平台可以编辑!")
        else:
            old_text = self.platform.currentText()
            new_text, ok = QtGui.QInputDialog.getText(self, u"添加", u"平台名称:", 0,
                                                      old_text)
            if ok == True:
                if self.platform_model.check(new_text) > 0:
                    QtGui.QMessageBox.critical(self, u"提示", u"平台名称已存在!")
                elif self.platform_model.update(new_text, old_text):
                    index = self.platform.currentIndex()
                    self.platform.setItemText(index, new_text)
                else:
                    QtGui.QMessageBox.critical(self, u"提示", u"修改平台失败")

    @pyqtSlot()
    def on_delete_platform_clicked(self):
        """
        Slot documentation goes here.
        """
        if self.platform.count() == 0:
            QtGui.QMessageBox.information(self, u"提示", u"没有平台可以删除!")
            return

        answer = QtGui.QMessageBox.question(self, u"提示", u"确定删除当前选中平台?",
                                            QtGui.QMessageBox.Yes,
                                            QtGui.QMessageBox.No)
        if answer == QtGui.QMessageBox.Yes:
            text = self.platform.currentText()
            if self.server_model.countByPlatform(text) > 0:
                QtGui.QMessageBox.warning(self, u"提示", u"删除平台之前请先删除该平台下面的服务器!")
            else:
                if self.platform_model.delete(text):
                    self.platform.removeItem(self.platform.currentIndex())
                else:
                    QtGui.QMessageBox.critical(self, u"提示", u"删除平台失败")

    @pyqtSlot()
    def on_save_clicked(self):
        """
        Slot documentation goes here.
        """
        if self.validator() == True:
            #platform,server_name,account,password,host,port,path
            fields = {
                "server_id": self.server_id,
                "platform": self.platform.currentText(),
                "server_name": self.server_name.text(),
                "account": self.account.text(),
                "password": self.password.text(),
                "host": self.host.text(),
                "port": self.port.text(),
                "path": self.path.text()
            }
            if self.server_id == None:
                if self.server_model.add(fields):
                    QtGui.QMessageBox.information(self, u"提示", u"添加服务器成功!")
                    self.saved.emit()
                    self.close()
                else:
                    QtGui.QMessageBox.information(self, u"提示", u"添加服务器失败!")
            else:
                if self.server_model.update(self.server_id, fields):
                    QtGui.QMessageBox.information(self, u"提示", u"修改服务器成功!")
                    self.saved.emit()
                    self.close()
                else:
                    QtGui.QMessageBox.information(self, u"提示", u"修改服务器失败!")

    def validator(self):
        if len(self.server_name.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请输入名称!")
            self.server_name.setFocus()
            return False

        if self.platform.count() < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请添加平台!")
            self.add_platform.clicked.emit(True)
            return False

        if len(self.host.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请输入主机!")
            self.host.setFocus()
            return False

        if len(self.port.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请输入端口!")
            self.port.setFocus()
            return False

        if len(self.path.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请输入路径!")
            self.path.setFocus()
            return False

        if len(self.account.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, "提示", "请输入账号!")
            self.account.setFocus()
            return False

        if len(self.password.text().trimmed()) < 1:
            QtGui.QMessageBox.information(self, u"提示", u"请输入密码!")
            self.password.setFocus()
            return False

        return True

    def setData(self, data):
        if data != False:
            if data["id"] != None:
                self.server_id = data["id"]
                self.groupBox.setTitle(u"修改")
            else:
                self.groupBox.setTitle(u"复制")

            index = self.platform.findText(data["platform"])
            self.platform.setCurrentIndex(index)
            self.server_name.setText(data["server_name"])
            self.account.setText(data["account"])
            self.password.setText(data["password"])
            self.host.setText(data["host"])
            self.port.setText(data["port"])
            self.path.setText(data["path"])