Пример #1
0
 def __init__(self):
     QtGui.QMainWindow.__init__(self)
     self.ui = Ui_MainWindow()
     self.setupUi()
     self.tipPupup = TipPupup()
     self.presenter = MainWindowPresenter(self)
     self.setupSignals()
Пример #2
0
 def __init__(self):
     QtGui.QMainWindow.__init__(self)
     self.ui = Ui_MainWindow()
     self.setupUi()
     self.tipPupup = TipPupup()
     self.presenter = MainWindowPresenter(self)
     self.setupSignals()
Пример #3
0
 def __init__(self, parent=None):
     QtGui.QMainWindow.__init__(self)
     self.ui = Ui_MainWindow()
     self.ui.setupUi(self)
     self.setWindowIcon(QtGui.QIcon(config.LOGO_PNG))
     self.ui.archView.setPixmap(QtGui.QPixmap(config.ARCH_PNG))
     self.ui.versionLabel.setText(config.VERSION_INFO)
     self.setupUi_disconnected()
     self.tipPupup = TipPupup()
     self.presenter = MainWindowPresenter(self)
     self.bleproxyAddressDialog = BleproxyAddressDialog(self)
     self.progressDialog = ProgressDialog(self)
     self.menuManager = MenuManager(self)
     self.setupSignals()
Пример #4
0
class MainWindow(QtGui.QMainWindow):
    
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setWindowIcon(QtGui.QIcon(config.LOGO_PNG))
        self.ui.archView.setPixmap(QtGui.QPixmap(config.ARCH_PNG))
        self.ui.versionLabel.setText(config.VERSION_INFO)
        self.setupUi_disconnected()
        self.tipPupup = TipPupup()
        self.presenter = MainWindowPresenter(self)
        self.bleproxyAddressDialog = BleproxyAddressDialog(self)
        self.progressDialog = ProgressDialog(self)
        self.menuManager = MenuManager(self)
        self.setupSignals()
    
    def setupSignals(self):
        self.ui.connectBtn.clicked.connect(self.onConnectBtnClicked)
        self.ui.scanBtn.clicked.connect(self.onScanBtnClicked)
        self.ui.bleListWgt.itemDoubleClicked.connect(self.onBleItemDoubleClicked)
        self.ui.bleListWgt.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) 
        self.connect(self.ui.bleListWgt, QtCore.SIGNAL("customContextMenuRequested(const QPoint&)"), self.onBleListWgtPopMenu)
        self.connect(self.bleproxyAddressDialog, signals.SIG_CONNECT_SERVER, self.onConnectServer)
        
        self.connect(sigObject, signals.SIG_MSG_RECVED, self.presenter.handleDataBuff)
        self.connect(sigObject, signals.SIG_BLE_DEVICE, self.onBleDevice)
        self.connect(sigObject, signals.SIG_CONNECT_RESULT, self.onConnectResult)
        self.connect(sigObject, signals.SIG_DISCONNECT_BLE, self.onDisconnectBle)
        self.connect(sigObject, signals.SIG_SERVER_CLOSED, self.onServerClosed)
        self.connect(sigObject, signals.SIG_BLE_DISCONNECTED, self.onBleDisconnected)
        
    def setupUi_disconnected(self):
        self.ui.scanBtn.setEnabled(False)
        self.ui.scanBtn.setText(text.TEXT_ON_NOT_SCANNING)
        self.ui.connectBtn.setText(text.CONNECT)
        self.ui.bleListWgt.clear_()
        
    def setupUi_connected(self):
        self.ui.bleListWgt.setEnabled(True)
        self.ui.scanBtn.setEnabled(True)
        self.ui.connectBtn.setText(text.DISCONNECT)
        
    def onConnectBtnClicked(self):
        if self.presenter.isConnected():
            self.presenter.stopTcpClient()
            self.setupUi_disconnected()
            self.ui.sockTab.removeSockForm()
            self.ui.bleListWgt.setCurAddress(None)
        else:
            self.bleproxyAddressDialog.show_()
    
    def onDisconnectBle(self):
        self.ui.sockTab.removeSockForm()
        self.ui.bleListWgt.setEnabled(True)
        self.ui.bleListWgt.setCurAddress(None)
        self.ui.scanBtn.setEnabled(True)
        self.presenter.setScanning(False)
    
    def onServerClosed(self):
        logger.debug("server closed")
        self.tipPupup.makeErrorText(text.SERVER_CLOSED, 4000)
        self.onDisconnectBle()
        self.presenter.stopTcpClient()
        self.setupUi_disconnected()
    
    def onBleDisconnected(self):
        self.tipPupup.makeErrorText(text.BLE_DISCONNECTED, 4000)
        self.onDisconnectBle()
        
    def onBleItemDoubleClicked(self, item):
        if item.isConnected():
            logger.debug("already connected")
            return
            
        logger.debug("connect to ble device: %s" % item.getAddress())
        ret = self.presenter.connectBleDevice(item.getAddress())
        if ret:
            self.progressDialog.show()
        else:
            self.tipPupup.makeErrorText(text.SEND_PKG_ERROR)
        
    def onScanBtnClicked(self):
        ret, scanning = self.presenter.scan()
        if not ret:
            return
        
        self.ui.scanBtn.setText(scanning and text.TEXT_ON_SCANNING or text.TEXT_ON_NOT_SCANNING)
        
    def onConnectServer(self, ip, port):
        if self.presenter.connectServer(ip, port):
            logger.debug("connect success")
            self.setupUi_connected()
            self.tipPupup.makeInfoText(text.CONNECTED_TIPS)
        else:
            logger.error("connect error")
            self.tipPupup.makeErrorText(text.TCP_CLIENT_CONNECT_ERROR)
    
    def onConnectResult(self, result, address, errorString):
        if self.progressDialog.isActiveWindow():
            self.progressDialog.cancel()
            
        if not result:
            logger.debug("Connect ble device error: %s" % errorString)
            self.tipPupup.makeErrorText(text.CONNECT_BLE_ERROR)
            return
            
        logger.debug("Connect ble device %s OK" % address)
        #self.tipPupup.makeInfoText(text.CONNECT_BLE_OK)
        self.ui.scanBtn.setEnabled(False)
        self.ui.scanBtn.setText(text.TEXT_ON_NOT_SCANNING)
        self.ui.bleListWgt.setEnabled(False)
        self.ui.bleListWgt.setCurAddress(address)
        self.ui.sockTab.addSockForm(self.presenter.getTcpClient())
        
    def onBleDevice(self, name, address, rssi):
        #logger.debug("%s[%s]\t\t%d" % (name, address, rssi))
        self.ui.bleListWgt.addBleDevice(name, address, rssi)
    
    def onBleListWgtPopMenu(self, point):
        if self.ui.bleListWgt.currentItem():
            self.ui.bleListWgt.popMenu.exec_(self.ui.bleListWgt.mapToGlobal(point))
    
    def onCpMacAddress(self):
        curItem = self.ui.bleListWgt.currentItem()
        if not curItem:
            return
        
        QtGui.QApplication.clipboard().setText(curItem.getAddress())
        self.tipPupup.makeInfoText(text.CP_MAC_OK)
        
    def closeEvent(self, e):
        self.presenter.stopTcpClient()
        e.accept()
Пример #5
0
class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.setupUi()
        self.tipPupup = TipPupup()
        self.presenter = MainWindowPresenter(self)
        self.setupSignals()

    def setupUi(self):
        self.ui.setupUi(self)
        self.ui.sockTree.init()
        self.ui.qrcodeView.setPixmap(QtGui.QPixmap(config.QRCODE_ZFB))
        self.ui.githubBtn.setIcon(QtGui.QIcon(config.GITHUB_LOGO))
        self.setWindowIcon(QtGui.QIcon(config.LOGO_ICON))

    def setupSignals(self):
        self.ui.createBtn.clicked.connect(self.onCreateBtnClicked)
        self.ui.removeBtn.clicked.connect(self.onRemoveBtnClicked)
        self.ui.githubBtn.clicked.connect(self.onGithubBtnClicked)
        #self.ui.sockTree.itemClicked.connect(self.onSockItemClicked)
        self.ui.sockTab.currentChanged.connect(self.onSockTabClicked)
        self.connect(sigObject, signals.SIG_REMOTE_TCP_CLIENT_CONNECTED,
                     self.onRemoteTcpClientConnected)
        #self.connect(sigObject, signals.SIG_REMOTE_CLOSED, self.onRemoteClosed)
        self.connect(sigObject, signals.SIG_DATA_RECVED, self.onDataRecved)
        self.connect(sigObject, signals.SIG_REMOVE_SOCK_TAB,
                     self.onRemoveSockTab)

        self.connect(self.presenter.createTcpServerDialog,
                     signals.SIG_CREATE_TCP_SERVER, self.onCreateTcpServer)
        self.connect(self.presenter.createTcpClientDialog,
                     signals.SIG_CREATE_TCP_CLIENT, self.onCreateTcpClient)
        self.connect(self.presenter.createUdpServerDialog,
                     signals.SIG_CREATE_UDP_SERVER, self.onCreateUdpServer)
        self.connect(self.presenter.createUdpClientDialog,
                     signals.SIG_CREATE_UDP_CLIENT, self.onCreateUdpClient)

    def onCreateTcpServer(self, ip, port):
        self.presenter.createTcpServer(ip, port)

    def onCreateTcpClient(self, ip, port):
        self.presenter.createTcpClient(ip, port)

    def onCreateUdpClient(self, ip, remoteIp, localIp):
        self.presenter.createUdpClient(ip, remoteIp, localIp)

    def onCreateUdpServer(self, ip, port):
        self.presenter.createUdpServer(ip, port)

    def onDataRecved(self, _id, data):
        logger.debug("id=%d, data=%s" % (_id, data))
        self.ui.sockTab.addData(_id, data, config.RECV_TAG)

    # def onRemoteClosed(self, _id, parentId):
    # logger.debug("REMOTE CLOSED")
    #self.ui.sockTree.removeSocketItemById(_id)
    #self.presenter.removeRemoteTcpClientById(_id, parentId)

    def onRemoteTcpClientConnected(self, tcpClient, serverId, _id, address,
                                   port):
        self.ui.sockTree.addRemoteTcpClient(serverId, _id, address, port)
        self.ui.sockTab.addRemoteTcpClient(tcpClient, _id,
                                           "%s:%d" % (address, port))

    def onCreateBtnClicked(self):
        createDialog = self.presenter.getCreateDialog(
            self.ui.sockTree.currentItem())
        if createDialog is None:
            return

        createDialog.show_()

    def onSockItemClicked(self, sockItem, i):
        self.presenter.onSockItemClicked(sockItem)

    def onSockTabClicked(self, index):
        logger.debug("current sockTab index is %d" % index)
        self.ui.sockTab.clearUnreadIcon(index)

    def onGithubBtnClicked(self):
        self.presenter.openGithubSite()

    def onRemoveBtnClicked(self):
        self.onRemoveSockTab(None)

    def onRemoveSockTab(self, _id):
        self.presenter.removeSockTabById(_id)

    def onCreateTcpServerResult(self, _id, address):
        if _id > 0:
            self.ui.sockTree.addTcpServer(_id, address)
        else:
            self.tipPupup.makeErrorText(error.TCP_CREATE_FAILED)

    def onCreateUdpServerResult(self, udpServer, _id, address):
        if _id > 0:
            self.ui.sockTree.addUdpServer(_id, address)
            self.ui.sockTab.addUdpServer(udpServer, _id, address)

        else:
            self.tipPupup.makeErrorText(error.CREATE_UDP_SERVER_FAILED)

    def onCreateTcpClientResult(self, tcpClient, _id, address):
        if _id > 0:
            self.ui.sockTree.addLocalTcpClient(_id, address)
            self.ui.sockTab.addTcpClient(tcpClient, _id, address)
        else:
            self.tipPupup.makeErrorText(error.TCP_CLIENT_CONNECT_ERROR)

    def onCreateUdpClientResult(self, udpClient, _id, address):
        if _id > 0:
            self.ui.sockTree.addLocalUdpClient(_id, address)
            self.ui.sockTab.addUdpClient(udpClient, _id, address)
        else:
            self.tipPupup.makeErrorText(error.UDP_CLIENT_CONNECT_ERROR)

    def closeEvent(self, e):
        self.presenter.removeAllSockets()
        e.accept()
Пример #6
0
class MainWindow(QtGui.QMainWindow):
    
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.setupUi()
        self.tipPupup = TipPupup()
        self.presenter = MainWindowPresenter(self)
        self.setupSignals()
    
    def setupUi(self):
        self.ui.setupUi(self)
        self.ui.sockTree.init()
        self.ui.qrcodeView.setPixmap(QtGui.QPixmap(config.QRCODE_ZFB))
        self.ui.githubBtn.setIcon(QtGui.QIcon(config.GITHUB_LOGO))
        self.setWindowIcon(QtGui.QIcon(config.LOGO_ICON))
        
    def setupSignals(self):
        self.ui.createBtn.clicked.connect(self.onCreateBtnClicked)
        self.ui.removeBtn.clicked.connect(self.onRemoveBtnClicked)
        self.ui.githubBtn.clicked.connect(self.onGithubBtnClicked)
        #self.ui.sockTree.itemClicked.connect(self.onSockItemClicked)
        self.ui.sockTab.currentChanged.connect(self.onSockTabClicked)
        self.connect(sigObject, signals.SIG_REMOTE_TCP_CLIENT_CONNECTED, self.onRemoteTcpClientConnected)
        #self.connect(sigObject, signals.SIG_REMOTE_CLOSED, self.onRemoteClosed)
        self.connect(sigObject, signals.SIG_DATA_RECVED, self.onDataRecved)
        self.connect(sigObject, signals.SIG_REMOVE_SOCK_TAB, self.onRemoveSockTab)
        
        self.connect(self.presenter.createTcpServerDialog, signals.SIG_CREATE_TCP_SERVER, self.onCreateTcpServer)
        self.connect(self.presenter.createTcpClientDialog, signals.SIG_CREATE_TCP_CLIENT, self.onCreateTcpClient)
        self.connect(self.presenter.createUdpServerDialog, signals.SIG_CREATE_UDP_SERVER, self.onCreateUdpServer)
        self.connect(self.presenter.createUdpClientDialog, signals.SIG_CREATE_UDP_CLIENT, self.onCreateUdpClient)
    
    def onCreateTcpServer(self, ip, port):
        self.presenter.createTcpServer(ip, port)
    
    def onCreateTcpClient(self, ip, port):
        self.presenter.createTcpClient(ip, port)
    
    def onCreateUdpClient(self, ip, remoteIp, localIp):
        self.presenter.createUdpClient(ip, remoteIp, localIp)
    
    def onCreateUdpServer(self, ip, port):
        self.presenter.createUdpServer(ip, port)
        
    def onDataRecved(self, _id, data):
        logger.debug("id=%d, data=%s" % (_id, data))
        self.ui.sockTab.addData(_id, data, config.RECV_TAG)
        
    # def onRemoteClosed(self, _id, parentId):
        # logger.debug("REMOTE CLOSED")
        #self.ui.sockTree.removeSocketItemById(_id)
        #self.presenter.removeRemoteTcpClientById(_id, parentId)
        
    def onRemoteTcpClientConnected(self, tcpClient, serverId, _id, address, port):
        self.ui.sockTree.addRemoteTcpClient(serverId, _id, address, port)
        self.ui.sockTab.addRemoteTcpClient(tcpClient, _id, "%s:%d" % (address, port))
        
    def onCreateBtnClicked(self):
        createDialog = self.presenter.getCreateDialog(self.ui.sockTree.currentItem())
        if createDialog is None:
            return
        
        createDialog.show_()
    
    def onSockItemClicked(self, sockItem, i):
        self.presenter.onSockItemClicked(sockItem)
    
    def onSockTabClicked(self, index):
        logger.debug("current sockTab index is %d" % index)
        self.ui.sockTab.clearUnreadIcon(index)
        
    def onGithubBtnClicked(self):
        self.presenter.openGithubSite()
        
    def onRemoveBtnClicked(self):
        self.onRemoveSockTab(None)
    
    def onRemoveSockTab(self, _id):
        self.presenter.removeSockTabById(_id)
        
    def onCreateTcpServerResult(self, _id, address):
        if _id > 0:
            self.ui.sockTree.addTcpServer(_id, address)
        else:
            self.tipPupup.makeErrorText(error.TCP_CREATE_FAILED)
    
    def onCreateUdpServerResult(self, udpServer, _id, address):
        if _id > 0:
            self.ui.sockTree.addUdpServer(_id, address)
            self.ui.sockTab.addUdpServer(udpServer, _id, address)
            
        else:
            self.tipPupup.makeErrorText(error.CREATE_UDP_SERVER_FAILED)
            
    def onCreateTcpClientResult(self, tcpClient, _id, address):
        if _id > 0:
            self.ui.sockTree.addLocalTcpClient(_id, address)
            self.ui.sockTab.addTcpClient(tcpClient, _id, address)
        else:
            self.tipPupup.makeErrorText(error.TCP_CLIENT_CONNECT_ERROR)
    
    def onCreateUdpClientResult(self, udpClient, _id, address):
        if _id > 0:
            self.ui.sockTree.addLocalUdpClient(_id, address)
            self.ui.sockTab.addUdpClient(udpClient, _id, address)
        else:
            self.tipPupup.makeErrorText(error.UDP_CLIENT_CONNECT_ERROR)
            
    def closeEvent(self, e):
        self.presenter.removeAllSockets()
        e.accept()