def __init__(self, config, daemon, plugins): set_language(config.get('language')) # Uncomment this call to verify objects are being properly # GC-ed when windows are closed #network.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, # ElectrumWindow], interval=5)]) QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_X11InitThreads) if hasattr(QtCore.Qt, "AA_ShareOpenGLContexts"): QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_ShareOpenGLContexts) if hasattr(QGuiApplication, 'setDesktopFileName'): QGuiApplication.setDesktopFileName('electrum.desktop') self.config = config self.daemon = daemon self.plugins = plugins self.windows = [] self.efilter = OpenFileEventFilter(self.windows) self.app = QElectrumApplication(sys.argv) self.app.installEventFilter(self.efilter) self.timer = Timer() self.nd = None self.network_updated_signal_obj = QNetworkUpdatedSignalObject() self._num_wizards_in_progress = 0 self._num_wizards_lock = threading.Lock() # init tray self.dark_icon = self.config.get("dark_icon", False) self.tray = QSystemTrayIcon(self.tray_icon(), None) self.tray.setToolTip('Electrum') self.tray.activated.connect(self.tray_activated) self.build_tray_menu() self.tray.show() self.app.new_window_signal.connect(self.start_new_window) self.set_dark_theme_if_needed() run_hook('init_qt', self)
def init_ui(self): ''' Initialize The Ux part of electrum. This function performs the basic tasks of setting up the ui. ''' from weakref import ref set_language(self.electrum_config.get('language')) self.funds_error = False # setup UX self.screens = {} #setup lazy imports for mainscreen Factory.register('AnimatedPopup', module='electrum_gui.kivy.uix.dialogs') Factory.register('QRCodeWidget', module='electrum_gui.kivy.uix.qrcodewidget') # preload widgets. Remove this if you want to load the widgets on demand #Cache.append('electrum_widgets', 'AnimatedPopup', Factory.AnimatedPopup()) #Cache.append('electrum_widgets', 'QRCodeWidget', Factory.QRCodeWidget()) # load and focus the ui self.root.manager = self.root.ids['manager'] self.recent_activity_card = None self.history_screen = None self.contacts_screen = None self.icon = "icons/electrum.png" # connect callbacks if self.network: interests = ['updated', 'status', 'new_transaction'] self.network.register_callback(self.on_network, interests) self.wallet = None
def __init__(self, config, network, daemon, plugins): set_language(config.get('language')) # Uncomment this call to verify objects are being properly # GC-ed when windows are closed #network.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, # ElectrumWindow], interval=5)]) self.network = network self.config = config self.daemon = daemon self.plugins = plugins self.windows = [] self.efilter = OpenFileEventFilter(self.windows) self.app = QApplication(sys.argv) self.app.installEventFilter(self.efilter) self.timer = Timer() # shared objects self.invoices = InvoiceStore(self.config) self.contacts = Contacts(self.config) # init tray self.dark_icon = self.config.get("dark_icon", False) self.tray = QSystemTrayIcon(self.tray_icon(), None) self.tray.setToolTip('Electrum') self.tray.activated.connect(self.tray_activated) self.build_tray_menu() self.tray.show() self.app.connect(self.app, QtCore.SIGNAL('new_window'), self.start_new_window)
def __init__(self, config, daemon, plugins): set_language(config.get('language')) # Uncomment this call to verify objects are being properly # GC-ed when windows are closed #network.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, # ElectrumWindow], interval=5)]) QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_X11InitThreads) self.config = config self.daemon = daemon self.plugins = plugins self.windows = [] self.efilter = OpenFileEventFilter(self.windows) self.app = QElectrumApplication(sys.argv) self.app.installEventFilter(self.efilter) self.timer = Timer() self.nd = None self.network_updated_signal_obj = QNetworkUpdatedSignalObject() # init tray self.dark_icon = self.config.get("dark_icon", False) self.tray = QSystemTrayIcon(self.tray_icon(), None) self.tray.setToolTip('Electrum') self.tray.activated.connect(self.tray_activated) self.build_tray_menu() self.tray.show() self.app.new_window_signal.connect(self.start_new_window) run_hook('init_qt', self) ColorScheme.update_from_widget(QWidget())
def init_ui(self): ''' Initialize The Ux part of electrum. This function performs the basic tasks of setting up the ui. ''' global ref if not ref: from weakref import ref set_language(self.electrum_config.get('language')) self.funds_error = False self.completions = [] # setup UX self.screens = ['mainscreen',] #setup lazy imports for mainscreen Factory.register('AnimatedPopup', module='electrum_gui.kivy.uix.dialogs') Factory.register('TabbedCarousel', module='electrum_gui.kivy.uix.screens') Factory.register('ScreenDashboard', module='electrum_gui.kivy.uix.screens') #Factory.register('EffectWidget', # module='electrum_gui.kivy.uix.effectwidget') Factory.register('QRCodeWidget', module='electrum_gui.kivy.uix.qrcodewidget') Factory.register('MainScreen', module='electrum_gui.kivy.uix.screens') Factory.register('CSpinner', module='electrum_gui.kivy.uix.screens') # preload widgets. Remove this if you want to load the widgets on demand Cache.append('electrum_widgets', 'AnimatedPopup', Factory.AnimatedPopup()) Cache.append('electrum_widgets', 'TabbedCarousel', Factory.TabbedCarousel()) Cache.append('electrum_widgets', 'QRCodeWidget', Factory.QRCodeWidget()) Cache.append('electrum_widgets', 'CSpinner', Factory.CSpinner()) # load and focus the ui #Load mainscreen dr = Builder.load_file('gui/kivy/uix/ui_screens/mainscreen.kv') self.root.add_widget(dr) self.root.manager = manager = dr.ids.manager self.root.main_screen = m = manager.screens[0] self.tabs = m.ids.tabs #TODO # load left_menu self.icon = "icons/electrum.png" # connect callbacks if self.network: self.network.register_callback('updated', self._trigger_update_wallet) self.network.register_callback('status', self._trigger_update_status) self.network.register_callback('new_transaction', self._trigger_notify_transactions) self.wallet = None
def __init__(self, config, network, app=None): set_language(config.get('language')) self.network = network self.config = config self.windows = [] self.efilter = OpenFileEventFilter(self.windows) if app is None: self.app = QApplication(sys.argv) self.app.installEventFilter(self.efilter)
def __init__(self, config, network, app=None): set_language(config.get('language')) self.network = network self.config = config self.windows = [] self.efilter = OpenFileEventFilter(self.windows) if app is None: self.app = QApplication(sys.argv) self.app.installEventFilter(self.efilter) # let plugins know that we are using the qt gui always_hook('init_qt_app', self.app)
def __init__(self, config, network): set_language(config.get('language')) self.network = network self.config = config self.windows = {} self.efilter = OpenFileEventFilter(self.windows) self.app = QApplication(sys.argv) self.app.installEventFilter(self.efilter) self.timer = Timer() self.app.connect(self.app, QtCore.SIGNAL('new_window'), self.start_new_window)
def __init__(self, *, config: 'SimpleConfig', daemon: 'Daemon', plugins: 'Plugins'): set_language(config.get('language', get_default_language())) BaseElectrumGui.__init__(self, config=config, daemon=daemon, plugins=plugins) Logger.__init__(self) self.logger.info( f"Qt GUI starting up... Qt={QtCore.QT_VERSION_STR}, PyQt={QtCore.PYQT_VERSION_STR}" ) # Uncomment this call to verify objects are being properly # GC-ed when windows are closed #network.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, # ElectrumWindow], interval=5)]) QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_X11InitThreads) if hasattr(QtCore.Qt, "AA_ShareOpenGLContexts"): QtCore.QCoreApplication.setAttribute( QtCore.Qt.AA_ShareOpenGLContexts) if hasattr(QGuiApplication, 'setDesktopFileName'): QGuiApplication.setDesktopFileName('electrum.desktop') self.gui_thread = threading.current_thread() self.windows = [] # type: List[ElectrumWindow] self.efilter = OpenFileEventFilter(self.windows) self.app = QElectrumApplication(sys.argv) self.app.installEventFilter(self.efilter) self.app.setWindowIcon(read_QIcon("electrum.png")) self._cleaned_up = False # timer self.timer = QTimer(self.app) self.timer.setSingleShot(False) self.timer.setInterval(500) # msec self.network_dialog = None self.lightning_dialog = None self.watchtower_dialog = None self._num_wizards_in_progress = 0 self._num_wizards_lock = threading.Lock() self.dark_icon = self.config.get("dark_icon", False) self.tray = None self._init_tray() self.app.new_window_signal.connect(self.start_new_window) self.app.quit_signal.connect(self.app.quit, Qt.QueuedConnection) # maybe set dark theme self._default_qtstylesheet = self.app.styleSheet() self.reload_app_stylesheet() run_hook('init_qt', self)
def __init__(self, config: 'SimpleConfig', daemon: 'Daemon', plugins: 'Plugins'): set_language(config.get('language', get_default_language())) Logger.__init__(self) self.logger.info( f"Qt GUI starting up... Qt={QtCore.QT_VERSION_STR}, PyQt={QtCore.PYQT_VERSION_STR}" ) # Uncomment this call to verify objects are being properly # GC-ed when windows are closed #network.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, # ElectrumWindow], interval=5)]) QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_X11InitThreads) if hasattr(QtCore.Qt, "AA_ShareOpenGLContexts"): QtCore.QCoreApplication.setAttribute( QtCore.Qt.AA_ShareOpenGLContexts) if hasattr(QGuiApplication, 'setDesktopFileName'): QGuiApplication.setDesktopFileName('electrum.desktop') self.gui_thread = threading.current_thread() self.config = config self.daemon = daemon self.plugins = plugins self.windows = [] # type: List[ElectrumWindow] self.efilter = OpenFileEventFilter(self.windows) self.app = QElectrumApplication(sys.argv) self.app.installEventFilter(self.efilter) self.app.setWindowIcon(read_QIcon("electrum.png")) # timer self.timer = QTimer(self.app) self.timer.setSingleShot(False) self.timer.setInterval(500) # msec self.network_dialog = None self.lightning_dialog = None self.watchtower_dialog = None self.network_updated_signal_obj = QNetworkUpdatedSignalObject() self._num_wizards_in_progress = 0 self._num_wizards_lock = threading.Lock() # init tray self.dark_icon = self.config.get("dark_icon", False) self.tray = QSystemTrayIcon(self.tray_icon(), None) self.tray.setToolTip('Electrum') self.tray.activated.connect(self.tray_activated) self.build_tray_menu() self.tray.show() self.app.new_window_signal.connect(self.start_new_window) self.set_dark_theme_if_needed() run_hook('init_qt', self)
def __init__(self, config: 'SimpleConfig', daemon: 'Daemon', plugins: 'Plugins'): set_language(config.get('language', self.get_default_language())) Logger.__init__(self) #os.environ['QML_IMPORT_TRACE'] = '1' #os.environ['QT_DEBUG_PLUGINS'] = '1' self.logger.info( f"Qml GUI starting up... Qt={QtCore.QT_VERSION_STR}, PyQt={QtCore.PYQT_VERSION_STR}" ) self.logger.info("CWD=%s" % os.getcwd()) # Uncomment this call to verify objects are being properly # GC-ed when windows are closed #network.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, # ElectrumWindow], interval=5)]) QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_X11InitThreads) if hasattr(QtCore.Qt, "AA_ShareOpenGLContexts"): QtCore.QCoreApplication.setAttribute( QtCore.Qt.AA_ShareOpenGLContexts) if hasattr(QGuiApplication, 'setDesktopFileName'): QGuiApplication.setDesktopFileName('electrum.desktop') if hasattr(QtCore.Qt, "AA_EnableHighDpiScaling"): QtCore.QCoreApplication.setAttribute( QtCore.Qt.AA_EnableHighDpiScaling) if not "QT_QUICK_CONTROLS_STYLE" in os.environ: os.environ["QT_QUICK_CONTROLS_STYLE"] = "Material" self.gui_thread = threading.current_thread() self.plugins = plugins self.app = ElectrumQmlApplication(sys.argv, config, daemon) # timer self.timer = QTimer(self.app) self.timer.setSingleShot(False) self.timer.setInterval(500) # msec self.timer.timeout.connect( lambda: None) # periodically enter python scope sys.excepthook = self.excepthook threading.excepthook = self.texcepthook # Initialize any QML plugins run_hook('init_qml', self) self.app.engine.load('electrum/gui/qml/components/main.qml')
def __init__(self, config, daemon, plugins): # Uncomment 2L below for Japanese version. #if config.get('auto_connect') is None: # config.set_key("language", "ja_JP", True) set_language(config.get('language', get_default_language())) # Uncomment this call to verify objects are being properly # GC-ed when windows are closed #network.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, # ElectrumWindow], interval=5)]) QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_X11InitThreads) if hasattr(QtCore.Qt, "AA_ShareOpenGLContexts"): QtCore.QCoreApplication.setAttribute( QtCore.Qt.AA_ShareOpenGLContexts) if hasattr(QGuiApplication, 'setDesktopFileName'): QGuiApplication.setDesktopFileName('electrum.desktop') self.gui_thread = threading.current_thread() self.config = config self.daemon = daemon self.plugins = plugins self.windows = [] self.efilter = OpenFileEventFilter(self.windows) self.app = QElectrumApplication(sys.argv) self.app.installEventFilter(self.efilter) self.app.setWindowIcon(read_QIcon("electrum.png")) # timer self.timer = QTimer(self.app) self.timer.setSingleShot(False) self.timer.setInterval(500) # msec self.nd = None self.network_updated_signal_obj = QNetworkUpdatedSignalObject() self._num_wizards_in_progress = 0 self._num_wizards_lock = threading.Lock() # init tray self.dark_icon = self.config.get("dark_icon", False) self.tray = QSystemTrayIcon(self.tray_icon(), None) self.tray.setToolTip('Electrum') self.tray.activated.connect(self.tray_activated) self.build_tray_menu() self.tray.show() self.app.new_window_signal.connect(self.start_new_window) self.set_dark_theme_if_needed() run_hook('init_qt', self)
def init_ui(self): ''' Initialize The Ux part of electrum. This function performs the basic tasks of setting up the ui. ''' global ref if not ref: from weakref import ref set_language(self.electrum_config.get('language')) self.funds_error = False self.completions = [] # setup UX self.screens = {} #setup lazy imports for mainscreen Factory.register('AnimatedPopup', module='electrum_gui.kivy.uix.dialogs') Factory.register('QRCodeWidget', module='electrum_gui.kivy.uix.qrcodewidget') # preload widgets. Remove this if you want to load the widgets on demand #Cache.append('electrum_widgets', 'AnimatedPopup', Factory.AnimatedPopup()) #Cache.append('electrum_widgets', 'QRCodeWidget', Factory.QRCodeWidget()) # load and focus the ui self.root.manager = self.root.ids['manager'] self.recent_activity_card = None self.history_screen = None self.contacts_screen = None self.icon = "icons/electrum.png" # connect callbacks if self.network: self.network.register_callback('updated', self._trigger_update_wallet) self.network.register_callback('status', self._trigger_update_status) self.network.register_callback('new_transaction', self._trigger_notify_transactions) self.wallet = None
def __init__(self, config, network, plugins): set_language(config.get('language')) self.network = network self.config = config self.plugins = plugins self.windows = [] self.efilter = OpenFileEventFilter(self.windows) self.app = QApplication(sys.argv) self.app.installEventFilter(self.efilter) self.timer = Timer() # shared objects self.invoices = InvoiceStore(self.config) self.contacts = Contacts(self.config) # init tray self.dark_icon = self.config.get("dark_icon", False) self.tray = QSystemTrayIcon(self.tray_icon(), None) self.tray.setToolTip('Electrum') self.tray.activated.connect(self.tray_activated) self.build_tray_menu() self.tray.show() self.app.connect(self.app, QtCore.SIGNAL('new_window'), self.start_new_window)
def __init__(self, config, daemon, plugins): set_language(config.get('language')) # Uncomment this call to verify objects are being properly # GC-ed when windows are closed #network.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, # ElectrumWindow], interval=5)]) self.config = config self.daemon = daemon self.plugins = plugins self.windows = [] self.efilter = OpenFileEventFilter(self.windows) self.app = QApplication(sys.argv) self.app.installEventFilter(self.efilter) self.timer = Timer() self.nd = None # init tray self.dark_icon = self.config.get("dark_icon", False) self.tray = QSystemTrayIcon(self.tray_icon(), None) self.tray.setToolTip('Electrum') self.tray.activated.connect(self.tray_activated) self.build_tray_menu() self.tray.show() self.app.connect(self.app, QtCore.SIGNAL('new_window'), self.start_new_window) run_hook('init_qt', self)
def __init__(self, config, network, daemon, plugins): Logger.debug('ElectrumGUI: initialising') self.network = network self.config = config self.plugins = plugins set_language(config.get('language'))
def init_ui(self): """ Initialize The Ux part of electrum. This function performs the basic tasks of setting up the ui. """ # unused? # self._close_electrum = False # self._tray_icon = 'icons/" + (electrum_dark_icon.png'\ # if platform == 'mac' else 'electrum_light_icon.png') # setup tray TODO: use the systray branch # self.tray = SystemTrayIcon(self.icon, self) # self.tray.setToolTip('Electrum') # self.tray.activated.connect(self.tray_activated) global ref if ref is None: from weakref import ref assert ref is not None set_language(self.electrum_config.get("language")) self.funds_error = False self.completions = [] # setup UX self.screens = ["mainscreen"] # setup lazy imports for mainscreen Factory.register("AnimatedPopup", module="electrum_gui.kivy.uix.dialogs") Factory.register("TabbedCarousel", module="electrum_gui.kivy.uix.screens") Factory.register("ScreenDashboard", module="electrum_gui.kivy.uix.screens") # Factory.register('EffectWidget', # module='electrum_gui.kivy.uix.effectwidget') Factory.register("QRCodeWidget", module="electrum_gui.kivy.uix.qrcodewidget") Factory.register("MainScreen", module="electrum_gui.kivy.uix.screens") Factory.register("CSpinner", module="electrum_gui.kivy.uix.screens") # preload widgets. Remove this if you want to load the widgets on demand Cache.append("electrum_widgets", "AnimatedPopup", Factory.AnimatedPopup()) Cache.append("electrum_widgets", "TabbedCarousel", Factory.TabbedCarousel()) Cache.append("electrum_widgets", "QRCodeWidget", Factory.QRCodeWidget()) Cache.append("electrum_widgets", "CSpinner", Factory.CSpinner()) # load and focus the ui # Load mainscreen dr = Builder.load_file("gui/kivy/uix/ui_screens/mainscreen.kv") self.root.add_widget(dr) self.root.manager = manager = dr.ids.manager self.root.main_screen = m = manager.screens[0] self.tabs = m.ids.tabs # TODO # load left_menu self.icon = "icons/electrum.png" # connect callbacks if self.network: self.network.register_callback("updated", self._trigger_update_wallet) self.network.register_callback("status", self._trigger_update_status) self.network.register_callback("new_transaction", self._trigger_notify_transactions) self.wallet = None
def init_ui(self): ''' Initialize The Ux part of electrum. This function performs the basic tasks of setting up the ui. ''' # unused? #self._close_electrum = False #self._tray_icon = 'icons/" + (electrum_dark_icon.png'\ # if platform == 'mac' else 'electrum_light_icon.png') #setup tray TODO: use the systray branch #self.tray = SystemTrayIcon(self.icon, self) #self.tray.setToolTip('Electrum') #self.tray.activated.connect(self.tray_activated) global ref if not ref: from weakref import ref set_language(self.electrum_config.get('language')) self.funds_error = False self.completions = [] # setup UX self.screens = [ 'mainscreen', ] #setup lazy imports for mainscreen Factory.register('AnimatedPopup', module='electrum_gui.kivy.uix.dialogs') Factory.register('TabbedCarousel', module='electrum_gui.kivy.uix.screens') Factory.register('ScreenDashboard', module='electrum_gui.kivy.uix.screens') #Factory.register('EffectWidget', # module='electrum_gui.kivy.uix.effectwidget') Factory.register('QRCodeWidget', module='electrum_gui.kivy.uix.qrcodewidget') Factory.register('MainScreen', module='electrum_gui.kivy.uix.screens') Factory.register('CSpinner', module='electrum_gui.kivy.uix.screens') # preload widgets. Remove this if you want to load the widgets on demand Cache.append('electrum_widgets', 'AnimatedPopup', Factory.AnimatedPopup()) Cache.append('electrum_widgets', 'TabbedCarousel', Factory.TabbedCarousel()) Cache.append('electrum_widgets', 'QRCodeWidget', Factory.QRCodeWidget()) Cache.append('electrum_widgets', 'CSpinner', Factory.CSpinner()) # load and focus the ui #Load mainscreen dr = Builder.load_file('gui/kivy/uix/ui_screens/mainscreen.kv') self.root.add_widget(dr) self.root.manager = manager = dr.ids.manager self.root.main_screen = m = manager.screens[0] self.tabs = m.ids.tabs #TODO # load left_menu self.icon = "icons/electrum.png" # connect callbacks if self.network: self.network.register_callback('updated', self._trigger_update_wallet) #self.network.register_callback('banner', self.console.show_message(self.network.banner)) self.network.register_callback('disconnected', self._trigger_update_status) self.network.register_callback('disconnecting', self._trigger_update_status) self.network.register_callback('new_transaction', self._trigger_notify_transactions) # set initial message #self.console.show_message(self.network.banner) self.wallet = None
def cb(key): self.config.set_key("language", key, True) item.lang = self.get_language_name() set_language(key)
def on_change(): language_abbreviation = language_abbreviations[cb.currentIndex()] set_language(language_abbreviation) self._set_gui_text() self.refresh_gui()
def __init__(self, config, network, plugins, app=None): Logger.debug('ElectrumGUI: initialising') self.network = network self.config = config self.plugins = plugins set_language(config.get('language'))
def cb(key): self.app.electrum_config.set_key("language", key, True) item.lang = self.get_language_name() set_language(key)