Remove server list from lite gui
With all the new options for servers a simple menu item is not enough to properly implement it
This commit is contained in:
@@ -15,7 +15,6 @@ except ImportError:
|
|||||||
|
|
||||||
|
|
||||||
from decimal import Decimal as D
|
from decimal import Decimal as D
|
||||||
from interface import DEFAULT_SERVERS
|
|
||||||
from util import get_resource_path as rsrc
|
from util import get_resource_path as rsrc
|
||||||
from i18n import _
|
from i18n import _
|
||||||
import decimal
|
import decimal
|
||||||
@@ -91,7 +90,6 @@ class ElectrumGui(QObject):
|
|||||||
self.config = config
|
self.config = config
|
||||||
self.check_qt_version()
|
self.check_qt_version()
|
||||||
self.app = QApplication(sys.argv)
|
self.app = QApplication(sys.argv)
|
||||||
self.wallet.interface.register_callback('peers', self.server_list_changed)
|
|
||||||
|
|
||||||
|
|
||||||
def check_qt_version(self):
|
def check_qt_version(self):
|
||||||
@@ -105,8 +103,6 @@ class ElectrumGui(QObject):
|
|||||||
|
|
||||||
def main(self, url):
|
def main(self, url):
|
||||||
actuator = MiniActuator(self.wallet)
|
actuator = MiniActuator(self.wallet)
|
||||||
self.connect(self, SIGNAL("updateservers()"),
|
|
||||||
actuator.update_servers_list)
|
|
||||||
# Should probably not modify the current path but instead
|
# Should probably not modify the current path but instead
|
||||||
# change the behaviour of rsrc(...)
|
# change the behaviour of rsrc(...)
|
||||||
old_path = QDir.currentPath()
|
old_path = QDir.currentPath()
|
||||||
@@ -130,9 +126,6 @@ class ElectrumGui(QObject):
|
|||||||
self.expert.update_wallet()
|
self.expert.update_wallet()
|
||||||
self.app.exec_()
|
self.app.exec_()
|
||||||
|
|
||||||
def server_list_changed(self):
|
|
||||||
self.emit(SIGNAL("updateservers()"))
|
|
||||||
|
|
||||||
def expand(self):
|
def expand(self):
|
||||||
"""Hide the lite mode window and show pro-mode."""
|
"""Hide the lite mode window and show pro-mode."""
|
||||||
self.mini.hide()
|
self.mini.hide()
|
||||||
@@ -237,10 +230,6 @@ class MiniWindow(QDialog):
|
|||||||
menubar = QMenuBar()
|
menubar = QMenuBar()
|
||||||
electrum_menu = menubar.addMenu(_("&Bitcoin"))
|
electrum_menu = menubar.addMenu(_("&Bitcoin"))
|
||||||
|
|
||||||
servers_menu = electrum_menu.addMenu(_("&Servers"))
|
|
||||||
servers_group = QActionGroup(self)
|
|
||||||
self.actuator.set_servers_gui_stuff(servers_menu, servers_group)
|
|
||||||
self.actuator.populate_servers_menu()
|
|
||||||
electrum_menu.addSeparator()
|
electrum_menu.addSeparator()
|
||||||
|
|
||||||
brain_seed = electrum_menu.addAction(_("&BrainWallet Info"))
|
brain_seed = electrum_menu.addAction(_("&BrainWallet Info"))
|
||||||
@@ -642,66 +631,6 @@ class MiniActuator:
|
|||||||
"""Change the wallet fiat currency country."""
|
"""Change the wallet fiat currency country."""
|
||||||
self.wallet.config.set_key('conversion_currency',conversion_currency,True)
|
self.wallet.config.set_key('conversion_currency',conversion_currency,True)
|
||||||
|
|
||||||
def set_servers_gui_stuff(self, servers_menu, servers_group):
|
|
||||||
self.servers_menu = servers_menu
|
|
||||||
self.servers_group = servers_group
|
|
||||||
|
|
||||||
def populate_servers_menu(self):
|
|
||||||
interface = self.wallet.interface
|
|
||||||
if not interface.servers:
|
|
||||||
print "No servers loaded yet."
|
|
||||||
self.servers_list = []
|
|
||||||
for server_string in DEFAULT_SERVERS:
|
|
||||||
host, port, protocol = server_string.split(':')
|
|
||||||
transports = [(protocol,port)]
|
|
||||||
self.servers_list.append((host, transports))
|
|
||||||
else:
|
|
||||||
print "Servers loaded."
|
|
||||||
self.servers_list = interface.servers
|
|
||||||
server_names = [details[0] for details in self.servers_list]
|
|
||||||
current_server = interface.server.split(":")[0]
|
|
||||||
for server_name in server_names:
|
|
||||||
server_action = self.servers_menu.addAction(server_name)
|
|
||||||
server_action.setCheckable(True)
|
|
||||||
if server_name == current_server:
|
|
||||||
server_action.setChecked(True)
|
|
||||||
class SelectServerFunctor:
|
|
||||||
def __init__(self, server_name, server_selected):
|
|
||||||
self.server_name = server_name
|
|
||||||
self.server_selected = server_selected
|
|
||||||
def __call__(self, checked):
|
|
||||||
if checked:
|
|
||||||
# call server_selected
|
|
||||||
self.server_selected(self.server_name)
|
|
||||||
delegate = SelectServerFunctor(server_name, self.server_selected)
|
|
||||||
server_action.toggled.connect(delegate)
|
|
||||||
self.servers_group.addAction(server_action)
|
|
||||||
|
|
||||||
def update_servers_list(self):
|
|
||||||
# Clear servers_group
|
|
||||||
for action in self.servers_group.actions():
|
|
||||||
self.servers_group.removeAction(action)
|
|
||||||
self.populate_servers_menu()
|
|
||||||
|
|
||||||
def server_selected(self, server_name):
|
|
||||||
match = [transports for (host, transports) in self.servers_list
|
|
||||||
if host == server_name]
|
|
||||||
assert len(match) == 1
|
|
||||||
match = match[0]
|
|
||||||
# Default to TCP if available else use anything
|
|
||||||
# TODO: protocol should be selectable.
|
|
||||||
tcp_port = [port for (protocol, port) in match if protocol == "t"]
|
|
||||||
if len(tcp_port) == 0:
|
|
||||||
protocol = match[0][0]
|
|
||||||
port = match[0][1]
|
|
||||||
else:
|
|
||||||
protocol = "t"
|
|
||||||
port = tcp_port[0]
|
|
||||||
server_line = "%s:%s:%s" % (server_name, port, protocol)
|
|
||||||
|
|
||||||
# Should this have exception handling?
|
|
||||||
self.wallet.interface.set_server(server_line, self.wallet.config.get("proxy"))
|
|
||||||
|
|
||||||
def copy_address(self, receive_popup):
|
def copy_address(self, receive_popup):
|
||||||
"""Copy the wallet addresses into the client."""
|
"""Copy the wallet addresses into the client."""
|
||||||
addrs = [addr for addr in self.wallet.all_addresses()
|
addrs = [addr for addr in self.wallet.all_addresses()
|
||||||
|
|||||||
Reference in New Issue
Block a user