def __init__(self, controller): buttons = (gtk.STOCK_YES, gtk.RESPONSE_YES, gtk.STOCK_NO, gtk.RESPONSE_NO) dia = gtk.Dialog("Credits Low", None, 0, buttons) self.controller = controller vbox = gtk.VBox() title = gtk.Label() markup = "<span size='large' weight='bold'>You Are Running out of Credits</span>" title.set_markup(markup) title.set_justify(gtk.JUSTIFY_CENTER) vbox.pack_start(title, True, False, 0) #A text entry telling the user what to do: balance = Bank.get().get_expected_balance() balanceGB = Format.convert_to_gb(balance) label = gtk.Label() text = "You only have %s (%s) credits remaining. You must set up a relay to gain more credits. \ This will allow other users to send traffic via your computer.\n\nWould you like to set up a relay now?" % (balance, balanceGB) label.set_markup(text) label.set_line_wrap(True) vbox.pack_start(label, True, True, 5) #if we should always check: self.askAboutRelay = gtk.CheckButton("Always ask about help setting up relay") vbox.pack_start(self.askAboutRelay, True, True, 10) #initialize the checkbox: self.askAboutRelay.set_active(CoreSettings.get().askAboutRelay) vbox = GTKUtils.add_padding(vbox, 5) dia.vbox.pack_start(vbox, True, True, 0) dia.connect("response", self.on_response) self.dia = dia #start the dialog dia.show_all()
def on_update(self): """updates the gui via pulling infos out of tor and the bank- slow, stupid, and easy""" # don't do updates if we arent visible if not GTKUtils.is_visible(self.container): return configuredAsRelay = self.torApp.is_server() if configuredAsRelay: self.relayRow.update_row_image(True) else: self.relayRow.reset_row_image() relayStatus, relayStateString = self.torApp.get_relay_status() if self.torApp.is_server(): self.statusRow.update_row_image(relayStatus) else: self.statusRow.reset_row_image() self.statusRow.widget.set_markup('<span size="large">%s</span>' % (relayStateString)) # update as appropriate for rows when we are trying to be a relay if configuredAsRelay: boolToStringMapping = {True: "is reachable", False: "is unreachable", None: "testing..."} # do updates where we have the info relayPortsState = self.torApp.get_all_port_status() for row in self.statusRows: updateForGUIPort = row.rowName in relayPortsState if updateForGUIPort: port = relayPortsState[row.rowName] row.update_row_image(port[0]) statusText = boolToStringMapping[port[0]] row.widget.set_markup('<span size="large">%s %s</span>' % (port[1], statusText)) # else, null everything out else: for row in [self.udpRelayPortRow, self.tcpRelayPortRow, self.dirPortRow, self.statusRow]: row.reset_row_image() row.widget.set_markup('<span size="large">offline</span>') # update the balance bank = Bank.get() if not bank: return credits = bank.get_expected_balance() if not credits: return self.creditsRow.widget.set_markup( '<span size="large">%s (%s)</span>' % (credits, Format.convert_to_gb(credits)) ) if credits > 200: creditState = True elif credits > 100: creditState = None else: creditState = False self.creditsRow.update_row_image(creditState)
def on_update(self): """updates the gui via pulling infos out of tor and the bank- slow, stupid, and easy""" #don't do updates if we arent visible if not GTKUtils.is_visible(self.container): return configuredAsRelay = self.torApp.is_server() if configuredAsRelay: self.relayRow.update_row_image(True) else: self.relayRow.reset_row_image() relayStatus, relayStateString = self.torApp.get_relay_status() if self.torApp.is_server(): self.statusRow.update_row_image(relayStatus) else: self.statusRow.reset_row_image() self.statusRow.widget.set_markup('<span size="large">%s</span>' % (relayStateString)) #update as appropriate for rows when we are trying to be a relay if configuredAsRelay: boolToStringMapping = {True: 'is reachable', False: 'is unreachable', None: 'testing...'} #do updates where we have the info relayPortsState = self.torApp.get_all_port_status() for row in self.statusRows: updateForGUIPort = row.rowName in relayPortsState if updateForGUIPort: port = relayPortsState[row.rowName] row.update_row_image(port[0]) statusText = boolToStringMapping[port[0]] row.widget.set_markup('<span size="large">%s %s</span>' % (port[1], statusText)) #else, null everything out else: for row in [self.udpRelayPortRow, self.tcpRelayPortRow, self.dirPortRow, self.statusRow]: row.reset_row_image() row.widget.set_markup('<span size="large">offline</span>') #update the balance bank = Bank.get() if not bank: return credits = bank.get_expected_balance() if not credits: return self.creditsRow.widget.set_markup('<span size="large">%s (%s)</span>'%\ (credits, Format.convert_to_gb(credits))) if credits > 200: creditState = True elif credits > 100: creditState = None else: creditState = False self.creditsRow.update_row_image(creditState)
def update(self, globalDownRate, globalUpRate, globalDownAmount, globalUpAmount): if self.btApp.is_ready(): try: nodes = self.btApp.btInstance.dht.get_dht_peers() except: nodes = ("unknown", "disabled") self.dhtText.set_markup('<span>DHT Nodes: %s (%s)</span>' % nodes) globalDownRate = Format.bytes_per_second(globalDownRate) globalDownAmount = Format.format_bytes(globalDownAmount) self.downText.set_markup('<span>U: %s %s</span>' % (globalDownRate, globalDownAmount)) globalUpRate = Format.bytes_per_second(globalUpRate) globalUpAmount = Format.format_bytes(globalUpAmount) self.upText.set_markup('<span>D: %s %s</span>' % (globalUpRate, globalUpAmount)) credits = Bank.get().get_total_asset_value() self.creditText.set_markup('<span>Credits: %s (%s)</span>' % (credits, Format.convert_to_gb(credits)))
def __init__(self, controller): buttons = (gtk.STOCK_YES, gtk.RESPONSE_YES, gtk.STOCK_NO, gtk.RESPONSE_NO) dia = gtk.Dialog("Credits Low", None, 0, buttons) self.controller = controller vbox = gtk.VBox() title = gtk.Label() markup = "<span size='large' weight='bold'>You Are Running out of Credits</span>" title.set_markup(markup) title.set_justify(gtk.JUSTIFY_CENTER) vbox.pack_start(title, True, False, 0) #A text entry telling the user what to do: balance = Bank.get().get_expected_balance() balanceGB = Format.convert_to_gb(balance) label = gtk.Label() text = "You only have %s (%s) credits remaining. You must set up a relay to gain more credits. \ This will allow other users to send traffic via your computer.\n\nWould you like to set up a relay now?" % ( balance, balanceGB) label.set_markup(text) label.set_line_wrap(True) vbox.pack_start(label, True, True, 5) #if we should always check: self.askAboutRelay = gtk.CheckButton( "Always ask about help setting up relay") vbox.pack_start(self.askAboutRelay, True, True, 10) #initialize the checkbox: self.askAboutRelay.set_active(CoreSettings.get().askAboutRelay) vbox = GTKUtils.add_padding(vbox, 5) dia.vbox.pack_start(vbox, True, True, 0) dia.connect("response", self.on_response) self.dia = dia #start the dialog dia.show_all()
def make_pretty(self): """Note, pretty is set here!""" self.pretty = Format.convert_to_gb(self.value) return self.pretty