You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
3.0 KiB

#!/usr/bin/env python
#
# Electrum - lightweight Bitcoin client
# Copyright (C) 2012 thomasv@gitorious
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Kivy GUI
import sys
#, time, datetime, re, threading
#from electrum.i18n import _, set_language
from electrum.util import print_error, print_msg
#:TODO: replace this with kivy's own plugin managment
#from electrum.plugins import run_hook
#import os.path, json, ast, traceback
#import shutil
try:
sys.argv = ['']
import kivy
except ImportError:
# This error ideally shouldn't raised with pre-built packages
sys.exit("Error: Could not import kivy. Please install it using the" + \
"instructions mentioned here `http://kivy.org/#download` .")
# minimum required version for kivy
kivy.require('1.8.0')
from kivy.logger import Logger
from electrum.bitcoin import MIN_RELAY_TX_FEE
from main_window import ElectrumWindow
#from electrum.plugins import init_plugins
#:TODO find a equivalent method to register to `bitcoin:` uri
#: ref: http://stackoverflow.com/questions/30931/register-file-extensions-mime-types-in-linux
#class OpenFileEventFilter(object):
# def __init__(self, windows):
# self.windows = windows
# super(OpenFileEventFilter, self).__init__()
#
# def eventFilter(self, obj, event):
# if event.type() == QtCore.QEvent.FileOpen:
# if len(self.windows) >= 1:
# self.windows[0].set_url(event.url().toEncoded())
# return True
# return False
class ElectrumGui:
def __init__(self, config, network, app=None):
Logger.debug('ElectrumGUI: initialising')
self.network = network
self.config = config
#:TODO
# implement kivy plugin mechanism that needs to be more extensible
# and integrated into the ui so can't be common with existing plugin
# base
#init_plugins(self)
def set_url(self, url):
#self.current_window.pary_from_URI
pass
def main(self, url):
''' The main entry point of the kivy ux
:param url: 'bitcoin:' uri as mentioned in bip0021
:type url: str
:ref: https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki
'''
self.main_window = w = ElectrumWindow(config=self.config,
network=self.network,
url=url,
gui_object=self)
w.run()