update gtk gui
This commit is contained in:
parent
ea29d9009d
commit
59638898d4
38
gui/gtk.py
38
gui/gtk.py
|
@ -220,20 +220,16 @@ def run_settings_dialog(self):
|
||||||
def run_network_dialog( network, parent ):
|
def run_network_dialog( network, parent ):
|
||||||
image = Gtk.Image()
|
image = Gtk.Image()
|
||||||
image.set_from_stock(Gtk.STOCK_NETWORK, Gtk.IconSize.DIALOG)
|
image.set_from_stock(Gtk.STOCK_NETWORK, Gtk.IconSize.DIALOG)
|
||||||
|
host, port, protocol, proxy_config, auto_connect = network.get_parameters()
|
||||||
if parent:
|
if parent:
|
||||||
if network.is_connected():
|
if network.is_connected():
|
||||||
interface = network.interface
|
status = "Connected to %s:%d\n%d blocks"%(host, port, network.blockchain.height())
|
||||||
status = "Connected to %s:%d\n%d blocks"%(interface.host, interface.port, network.blockchain.height())
|
|
||||||
else:
|
else:
|
||||||
status = "Not connected"
|
status = "Not connected"
|
||||||
else:
|
else:
|
||||||
import random
|
import random
|
||||||
status = "Please choose a server.\nSelect cancel if you are offline."
|
status = "Please choose a server.\nSelect cancel if you are offline."
|
||||||
|
|
||||||
if network.is_connected():
|
|
||||||
server = interface.server
|
|
||||||
host, port, protocol = server.split(':')
|
|
||||||
|
|
||||||
servers = network.get_servers()
|
servers = network.get_servers()
|
||||||
|
|
||||||
dialog = Gtk.MessageDialog( parent, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT,
|
dialog = Gtk.MessageDialog( parent, Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT,
|
||||||
|
@ -302,7 +298,7 @@ def run_network_dialog( network, parent ):
|
||||||
treeview = Gtk.TreeView(model=server_list)
|
treeview = Gtk.TreeView(model=server_list)
|
||||||
treeview.show()
|
treeview.show()
|
||||||
|
|
||||||
label = 'Active Servers' if network.irc_servers else 'Default Servers'
|
label = 'Active Servers' if network.is_connected() else 'Default Servers'
|
||||||
tvcolumn = Gtk.TreeViewColumn(label)
|
tvcolumn = Gtk.TreeViewColumn(label)
|
||||||
treeview.append_column(tvcolumn)
|
treeview.append_column(tvcolumn)
|
||||||
cell = Gtk.CellRendererText()
|
cell = Gtk.CellRendererText()
|
||||||
|
@ -443,33 +439,30 @@ def add_help_button(hbox, message):
|
||||||
hbox.pack_start(button,False, False, 0)
|
hbox.pack_start(button,False, False, 0)
|
||||||
|
|
||||||
|
|
||||||
class MyWindow(Gtk.Window): __gsignals__ = dict( mykeypress = (GObject.SignalFlags.RUN_LAST | GObject.SignalFlags.ACTION, None, (str,)) )
|
|
||||||
|
|
||||||
GObject.type_register(MyWindow)
|
|
||||||
#FIXME: can't find docs how to create keybindings in PyGI
|
|
||||||
#Gtk.binding_entry_add_signall(MyWindow, Gdk.KEY_W, Gdk.ModifierType.CONTROL_MASK, 'mykeypress', ['ctrl+W'])
|
|
||||||
#Gtk.binding_entry_add_signall(MyWindow, Gdk.KEY_Q, Gdk.ModifierType.CONTROL_MASK, 'mykeypress', ['ctrl+Q'])
|
|
||||||
|
|
||||||
|
|
||||||
class ElectrumWindow:
|
class ElectrumWindow:
|
||||||
|
|
||||||
def show_message(self, msg):
|
def show_message(self, msg):
|
||||||
show_message(msg, self.window)
|
show_message(msg, self.window)
|
||||||
|
|
||||||
|
def on_key(self, w, event):
|
||||||
|
if Gdk.ModifierType.CONTROL_MASK & event.state and event.keyval in [113,119]:
|
||||||
|
Gtk.main_quit()
|
||||||
|
return True
|
||||||
|
|
||||||
def __init__(self, wallet, config, network):
|
def __init__(self, wallet, config, network):
|
||||||
self.config = config
|
self.config = config
|
||||||
self.wallet = wallet
|
self.wallet = wallet
|
||||||
self.network = network
|
self.network = network
|
||||||
self.funds_error = False # True if not enough funds
|
self.funds_error = False # True if not enough funds
|
||||||
self.num_zeros = int(self.config.get('num_zeros',0))
|
self.num_zeros = int(self.config.get('num_zeros',0))
|
||||||
|
self.window = Gtk.Window(Gtk.WindowType.TOPLEVEL)
|
||||||
self.window = MyWindow(Gtk.WindowType.TOPLEVEL)
|
self.window.connect('key-press-event', self.on_key)
|
||||||
title = 'Electrum ' + self.wallet.electrum_version + ' - ' + self.config.path
|
title = 'Electrum ' + self.wallet.electrum_version + ' - ' + self.config.path
|
||||||
if not self.wallet.seed: title += ' [seedless]'
|
if not self.wallet.seed: title += ' [seedless]'
|
||||||
self.window.set_title(title)
|
self.window.set_title(title)
|
||||||
self.window.connect("destroy", Gtk.main_quit)
|
self.window.connect("destroy", Gtk.main_quit)
|
||||||
self.window.set_border_width(0)
|
self.window.set_border_width(0)
|
||||||
self.window.connect('mykeypress', Gtk.main_quit)
|
#self.window.connect('mykeypress', Gtk.main_quit)
|
||||||
self.window.set_default_size(720, 350)
|
self.window.set_default_size(720, 350)
|
||||||
self.wallet_updated = False
|
self.wallet_updated = False
|
||||||
|
|
||||||
|
@ -1110,17 +1103,18 @@ class ElectrumWindow:
|
||||||
return vbox
|
return vbox
|
||||||
|
|
||||||
def update_status_bar(self):
|
def update_status_bar(self):
|
||||||
interface = self.network.interface
|
|
||||||
if self.funds_error:
|
if self.funds_error:
|
||||||
text = "Not enough funds"
|
text = "Not enough funds"
|
||||||
elif interface and interface.is_connected:
|
elif self.network.is_connected():
|
||||||
self.network_button.set_tooltip_text("Connected to %s:%d.\n%d blocks"%(interface.host, interface.port, self.network.blockchain.height()))
|
host, port, _,_,_ = network.get_parameters()
|
||||||
|
height = self.network.get_local_height()
|
||||||
|
self.network_button.set_tooltip_text("Connected to %s:%d.\n%d blocks"%(host, port, height))
|
||||||
if not self.wallet.up_to_date:
|
if not self.wallet.up_to_date:
|
||||||
self.status_image.set_from_stock(Gtk.STOCK_REFRESH, Gtk.IconSize.MENU)
|
self.status_image.set_from_stock(Gtk.STOCK_REFRESH, Gtk.IconSize.MENU)
|
||||||
text = "Synchronizing..."
|
text = "Synchronizing..."
|
||||||
else:
|
else:
|
||||||
self.status_image.set_from_stock(Gtk.STOCK_YES, Gtk.IconSize.MENU)
|
self.status_image.set_from_stock(Gtk.STOCK_YES, Gtk.IconSize.MENU)
|
||||||
self.network_button.set_tooltip_text("Connected to %s:%d.\n%d blocks"%(interface.host, interface.port, self.network.blockchain.height()))
|
|
||||||
c, u = self.wallet.get_balance()
|
c, u = self.wallet.get_balance()
|
||||||
text = "Balance: %s "%( format_satoshis(c,False,self.num_zeros) )
|
text = "Balance: %s "%( format_satoshis(c,False,self.num_zeros) )
|
||||||
if u: text += "[%s unconfirmed]"%( format_satoshis(u,True,self.num_zeros).strip() )
|
if u: text += "[%s unconfirmed]"%( format_satoshis(u,True,self.num_zeros).strip() )
|
||||||
|
|
|
@ -106,7 +106,7 @@ class NetworkDialog(QDialog):
|
||||||
grid.addWidget(self.server_host, 0, 2, 1, 2)
|
grid.addWidget(self.server_host, 0, 2, 1, 2)
|
||||||
grid.addWidget(self.server_port, 0, 3)
|
grid.addWidget(self.server_port, 0, 3)
|
||||||
|
|
||||||
label = _('Servers') #_('Active Servers') if network.irc_servers else _('Default Servers')
|
label = _('Active Servers') if network.is_connected() else _('Default Servers')
|
||||||
self.servers_list_widget = QTreeWidget(parent)
|
self.servers_list_widget = QTreeWidget(parent)
|
||||||
self.servers_list_widget.setHeaderLabels( [ label, _('Limit') ] )
|
self.servers_list_widget.setHeaderLabels( [ label, _('Limit') ] )
|
||||||
self.servers_list_widget.setMaximumHeight(150)
|
self.servers_list_widget.setMaximumHeight(150)
|
||||||
|
|
Loading…
Reference in New Issue