class Worker(QObject): def __init__(self, parent=None): QObject.__init__(self, parent) @pyqtSlot() def setupDatabase(self): from collections import OrderedDict self.db = Database('chat-advance.db') if not self.db.createConnection(): EventManager.trigger(Event('Database.databaseConnectionFail')) return if not self.db.isTableExist(DataCenter.TABLE_FRIENDS): self.db.createTable(DataCenter.TABLE_SERVERS, OrderedDict([('name', Database.TYPE_TEXT), ('url', Database.TYPE_TEXT), ('port', Database.TYPE_TEXT)])) @pyqtSlot(str, str) def addServer(self, name, desc): self.db.addRecord(DataCenter.TABLE_VMS, name=name, desc=desc) index = self.db.lastInsertRowId() EventManager.trigger(Event('DataCenter.ServerAdded', index, (name, desc))) @pyqtSlot(int) def delServer(self, index): self.db.delRecord(DataCenter.TABLE_VMS, id=index) @pyqtSlot() def loadAllServers(self): items = self.db.load(DataCenter.TABLE_VMS) EventManager.trigger(Event('DataCenter.allServersLoaded', items))