add plugins to package

This commit is contained in:
thomasv 2013-03-03 16:33:09 +01:00
parent 190f733de2
commit cec2187010
2 changed files with 29 additions and 24 deletions

View File

@ -326,14 +326,16 @@ class ElectrumWindow(QMainWindow):
# plugins # plugins
def init_plugins(self): def init_plugins(self):
import imp, pkgutil
if os.path.exists("plugins"): if os.path.exists("plugins"):
import imp, pkgutil
fp, pathname, description = imp.find_module('plugins') fp, pathname, description = imp.find_module('plugins')
imp.load_module('electrum_plugins', fp, pathname, description) imp.load_module('electrum_plugins', fp, pathname, description)
plugin_names = [name for a, name, b in pkgutil.iter_modules(['plugins'])] plugin_names = [name for a, name, b in pkgutil.iter_modules(['plugins'])]
self.plugins = map(lambda name: imp.load_source('electrum_plugins.'+name, os.path.join(pathname,name+'.py')), plugin_names) self.plugins = map(lambda name: imp.load_source('electrum_plugins.'+name, os.path.join(pathname,name+'.py')), plugin_names)
else: else:
self.plugins = [] import electrum_plugins
plugin_names = [name for a, name, b in pkgutil.iter_modules(electrum_plugins.__path__)]
self.plugins = [ __import__('electrum_plugins.'+name, fromlist=['electrum_plugins']) for name in plugin_names]
self.plugin_hooks = {} self.plugin_hooks = {}
for p in self.plugins: for p in self.plugins:
@ -2041,25 +2043,25 @@ class ElectrumWindow(QMainWindow):
grid_raw.setRowStretch(3,1) grid_raw.setRowStretch(3,1)
# plugins # plugins
tab5 = QWidget() if self.plugins:
grid_plugins = QGridLayout(tab5) tab5 = QWidget()
grid_plugins.setColumnStretch(0,1) grid_plugins = QGridLayout(tab5)
tabs.addTab(tab5, _('Plugins') ) grid_plugins.setColumnStretch(0,1)
def mk_toggle(cb, p): tabs.addTab(tab5, _('Plugins') )
return lambda: cb.setChecked(p.toggle(self)) def mk_toggle(cb, p):
for i, p in enumerate(self.plugins): return lambda: cb.setChecked(p.toggle(self))
try: for i, p in enumerate(self.plugins):
name, description = p.get_info() try:
cb = QCheckBox(name) name, description = p.get_info()
cb.setChecked(p.is_enabled()) cb = QCheckBox(name)
cb.stateChanged.connect(mk_toggle(cb,p)) cb.setChecked(p.is_enabled())
grid_plugins.addWidget(cb, i, 0) cb.stateChanged.connect(mk_toggle(cb,p))
grid_plugins.addWidget(HelpButton(description), i, 2) grid_plugins.addWidget(cb, i, 0)
except: grid_plugins.addWidget(HelpButton(description), i, 2)
print_msg("Error: cannot display plugin", p) except:
traceback.print_exc(file=sys.stdout) print_msg("Error: cannot display plugin", p)
traceback.print_exc(file=sys.stdout)
grid_plugins.setRowStretch(i+1,1) grid_plugins.setRowStretch(i+1,1)
vbox.addLayout(ok_cancel_buttons(d)) vbox.addLayout(ok_cancel_buttons(d))
d.setLayout(vbox) d.setLayout(vbox)

View File

@ -45,7 +45,7 @@ data_files += [
setup(name = "Electrum", setup(name = "Electrum",
version = version.ELECTRUM_VERSION, version = version.ELECTRUM_VERSION,
install_requires = ['slowaes','ecdsa'], install_requires = ['slowaes','ecdsa'],
package_dir = {'electrum': 'lib', 'electrum_gui': 'gui'}, package_dir = {'electrum': 'lib', 'electrum_gui': 'gui', 'electrum_plugins':'plugins'},
scripts= ['electrum'], scripts= ['electrum'],
data_files = data_files, data_files = data_files,
py_modules = ['electrum.version', py_modules = ['electrum.version',
@ -70,11 +70,14 @@ setup(name = "Electrum",
'electrum_gui.exchange_rate', 'electrum_gui.exchange_rate',
'electrum_gui.icons_rc', 'electrum_gui.icons_rc',
'electrum_gui.pyqrnative', 'electrum_gui.pyqrnative',
'electrum_gui.qrscanner', 'electrum_gui.qrcodewidget',
'electrum_gui.history_widget', 'electrum_gui.history_widget',
'electrum_gui.receiving_widget', 'electrum_gui.receiving_widget',
'electrum_gui.bmp', 'electrum_gui.bmp',
'electrum_gui.i18n'], 'electrum_gui.i18n',
'electrum_plugins.pointofsale',
'electrum_plugins.qrscanner',
],
description = "Lightweight Bitcoin Wallet", description = "Lightweight Bitcoin Wallet",
author = "ecdsa", author = "ecdsa",
author_email = "ecdsa@github", author_email = "ecdsa@github",