def update_rates(self, down_bps, up_bps): text_up = text_down = '' if up_bps >= 10: text_up = _("%(rate)s", {"rate": displaytext.download_rate(up_bps)}) if down_bps >= 10: text_down = _("%(rate)s", {"rate": displaytext.download_rate(down_bps)}) # first label is always used for upload, while second label is # always used for download. This prevents the text jumping around. self._first_label.set_text(text_up) self._second_label.set_text(text_down) if text_up: self._first_image.show() else: self._first_image.hide() if text_down: self._second_image.show() else: self._second_image.hide()
def upload_rate_text(self): return displaytext.download_rate(self.upload_rate)
def get_value(self, info): if info.state == 'downloading': dl_info = info.download_info return displaytext.download_rate(dl_info.rate) else: return ''
def __init__(self): DisplayToolbar.__init__(self) v = widgetset.VBox() sep = separator.HSeparator((0.85, 0.85, 0.85), (0.95, 0.95, 0.95)) v.pack_start(sep) h = widgetset.HBox(spacing=5) self._free_disk_label = widgetset.Label("") self._free_disk_label.set_size(widgetconst.SIZE_SMALL) h.pack_start(widgetutil.align_left(self._free_disk_label, top_pad=10, bottom_pad=10, left_pad=20), expand=True) # Sigh. We want to fix these sizes so they don't jump about # so reserve the maximum size for these things. The upload and # download are both the same so we only need to auto-detect for one. placeholder_bps = 1000 * 1024 # 1000 kb/s - not rounded 1 MB/s yet text_up = _("%(rate)s", {"rate": displaytext.download_rate(placeholder_bps)}) first_label = widgetset.Label("") first_label.set_size(widgetconst.SIZE_SMALL) # Now, auto-detect the size required. first_label.set_text(text_up) width, height = first_label.get_size_request() first_image = widgetutil.HideableWidget(widgetset.ImageDisplay( widgetset.Image(resources.path('images/up.png')))) self._first_image = first_image h.pack_start(widgetutil.align_middle(widgetutil.align_right( self._first_image))) # Don't forget to reset the label to blank after we are done fiddling # with it. first_label.set_text("") first_label.set_size_request(width, -1) self._first_label = first_label h.pack_start(widgetutil.align_middle(widgetutil.align_right( self._first_label, right_pad=20))) second_image = widgetutil.HideableWidget(widgetset.ImageDisplay( widgetset.Image(resources.path('images/down.png')))) self._second_image = second_image # NB: pad the top by 1px - Morgan reckons it looks better when # the icon is moved down by 1px. h.pack_start(widgetutil.align_middle(widgetutil.align_right( self._second_image), top_pad=1)) second_label = widgetset.Label("") second_label.set_size(widgetconst.SIZE_SMALL) second_label.set_size_request(width, -1) self._second_label = second_label h.pack_start(widgetutil.align_middle(widgetutil.align_right( self._second_label, right_pad=20))) v.pack_start(h) self.add(v) app.frontend_config_watcher.connect('changed', self.on_config_change)