def stop(self, doQuit = True): try: self.refresh_state_timer.stop() if SpesmiloSettings.useInternalCore() and self.core: # Keep looping until connected so we can issue the stop command while True: try: self.core.stop() except core_interface.JSONRPCException: pass except IOError: break except socket.error: break except: raise else: break # Re-proprogate exception & trigger app exit so we can break out except: raise finally: self.core = None if hasattr(self, 'ipcsrv'): try: self.ipcsrv.stop() except: pass if doQuit: qApp.quit()
def _startup(rootwindow, *args, **kwargs): if SpesmiloSettings.useInternalCore(): import os user, passwd, port = SpesmiloSettings.getInternalCoreAuth() cmd = ('bitcoind', '-rpcuser=%s' % (user,), '-rpcpassword=%s' % (passwd,), '-rpcallowip=127.0.0.1', '-rpcport=%d' % (port,)) if len(args): options = args[0] cmd += options.bitcoind quietPopen(cmd) import ipc ipcsrv = ipc.ipc_handler('Bitcoin') ipcsrv.have_uri.connect(lambda x: receive_uri(rootwindow, x), Qt.QueuedConnection) ipcsrv.start() rootwindow.ipcsrv = ipcsrv rootwindow.start(*args, **kwargs)
help=app.tr('Pass remaining arguments to bitcoind (internal core only)')) args = app.arguments() # Workaround PySide/Windows bug if sys.argv[0] in args: i = args.index(sys.argv[0]) if i: args[0:i] = () # Workaround KDE bug if '-icon' in args: args[args.index('-icon')] = '--icon' (options, args) = argp.parse_args(args) args[0:1] = () if args or options.send: if SpesmiloSettings.useInternalCore(): try: import ipc ipc.ipc_send('Bitcoin', args[0] if args else 'bitcoin:') exit(0) except Exception: pass rootwindow = send.SendDialog(autostart=False) else: app.setQuitOnLastWindowClosed(False) rootwindow = RootWindow() rootwindow.setup(options, args) if SpesmiloSettings.isConfigured(): _startup(rootwindow, options, args) else: