Example #1
0
 def ensure_singleton(self, name=None):
     if not name:
         name = self.applicationName()
     from PySide import QtNetwork
     self._l_socket = QtNetwork.QLocalSocket()
     self._l_socket.connectToServer(name, QtCore.QIODevice.WriteOnly)
     if self._l_socket.waitForConnected():
         self._stop()
         sys.exit(0)
     else:
         self._l_server = QtNetwork.QLocalServer()
         if not self._l_server.listen(name):
             QtNetwork.QLocalServer.removeServer(name)
             self._l_server.listen(name)
         self._l_server.newConnection.connect(self._show_window)
Example #2
0
 def ensure_singleton(self, name=None):
     if not name:
         name = self.applicationName()
     from PySide import QtNetwork
     self._l_socket = QtNetwork.QLocalSocket()
     self._l_socket.connectToServer(name, QtCore.QIODevice.WriteOnly)
     if self._l_socket.waitForConnected():
         self.worker.thread().quit()
         self.deleteLater()
         time.sleep(0.01)  # Without this the process sometimes stalls.
         sys.exit(0)
     else:
         self._l_server = QtNetwork.QLocalServer()
         if not self._l_server.listen(name):
             QtNetwork.QLocalServer.removeServer(name)
             self._l_server.listen(name)
         self._l_server.newConnection.connect(self._show_window)
Example #3
0
    def ensureSingle(self):
        serverName = "MCEdit.Application"
        socket = QtNetwork.QLocalSocket()
        socket.connectToServer(serverName)
        if socket.waitForConnected(500):
            # xxx maybe write argv to the running app and have it open files?
            log.error("%s already running", serverName)
            raise SystemExit  # Already running

        def newConnection():
            newSocket = server.nextPendingConnection()
            newSocket.close()
            self.mainWindow.activateWindow()
            self.mainWindow.raise_()

        server = QtNetwork.QLocalServer(newConnection=newConnection)
        server._listener = newConnection
        server.listen(serverName)
Example #4
0
    def ensureSingle(self):
        serverName = "MCEdit.Application"
        socket = QtNetwork.QLocalSocket()
        socket.connectToServer(serverName)
        if socket.waitForConnected(500):
            # TODO: get filenames from argv and pass to running app
            log.error("%s already running", serverName)
            raise SystemExit  # Already running

        def newConnection():
            newSocket = server.nextPendingConnection()
            # TODO: read filenames from socket
            newSocket.close()
            self.mainWindow.activateWindow()
            self.mainWindow.raise_()

        server = QtNetwork.QLocalServer(newConnection=newConnection)
        server._listener = newConnection
        server.listen(serverName)