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)
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)
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)
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)