def _create_technical(self): vbox = Gtk.VBox() vbox.props.spacing = style.DEFAULT_SPACING if 'filesize' in self._metadata: filesize = self._metadata['filesize'] else: filesize = model.get_file_size(self._metadata['uid']) lines = [ _('Kind: %s') % (self._metadata.get('mime_type') or _('Unknown'),), _('Date: %s') % (self._format_date(),), _('Size: %s') % (format_size(int(filesize))) ] for line in lines: linebox = Gtk.HBox() vbox.pack_start(linebox, False, False, 0) text = Gtk.Label() text.set_markup('<span foreground="%s">%s</span>' % ( style.COLOR_BUTTON_GREY.get_html(), line)) linebox.pack_start(text, False, False, 0) return vbox
def _create_technical(self): vbox = Gtk.VBox() vbox.props.spacing = style.DEFAULT_SPACING if 'filesize' in self._metadata: filesize = self._metadata['filesize'] else: filesize = model.get_file_size(self._metadata['uid']) lines = [ _('Kind: %s') % (self._metadata.get('mime_type') or _('Unknown'), ), _('Date: %s') % (self._format_date(), ), _('Size: %s') % (format_size(int(filesize))) ] for line in lines: linebox = Gtk.HBox() vbox.pack_start(linebox, False, False, 0) text = Gtk.Label() text.set_markup('<span foreground="%s">%s</span>' % (style.COLOR_BUTTON_GREY.get_html(), line)) linebox.pack_start(text, False, False, 0) return vbox
def _create_technical(self): vbox = Gtk.VBox() vbox.props.spacing = style.DEFAULT_SPACING hbox = Gtk.HBox() kind = _('Kind: ') kindlabel = Gtk.Label() kindlabel.set_markup('<span foreground="%s">%s</span>' % ( style.COLOR_BUTTON_GREY.get_html(), kind)) lines = [ _('Date: %s') % (self._format_date(),), _('Size: %s') % (format_size( int(self._metadata.get( 'filesize', model.get_file_size(self._metadata['uid']))))) ] mimelist = Gtk.ListStore(str) generic_types = mime.get_all_generic_types() mimescombo = Gtk.ComboBox.new_with_model(mimelist) for sub_types in generic_types: for mime_type in sub_types.mime_types: mimelist.append([mime_type]) for index, element in enumerate(mimelist): if element[0] == self._metadata['mime_type']: mimescombo.set_active(index) break mimescombo.connect("changed", self._mime_activated_cb) cell = Gtk.CellRendererText() cell.set_property("xalign", 0.5) cell.set_fixed_size(150, 18) mimescombo.pack_start(cell, True) mimescombo.add_attribute(cell, "text", 0) vbox.pack_start(hbox, False, False, 0) hbox.pack_start(kindlabel, False, False, 0) hbox.pack_start(mimescombo, False, False, 0) for line in lines: linebox = Gtk.HBox() vbox.pack_start(linebox, False, False, 0) text = Gtk.Label() text.set_markup('<span foreground="%s">%s</span>' % ( style.COLOR_BUTTON_GREY.get_html(), line)) linebox.pack_start(text, False, False, 0) return vbox
def do_get_value(self, iterator, column): if self.view_is_resizing: return None index = iterator.user_data if index == self._last_requested_index: return self._cached_row[column] if index >= self._result_set.length: return None self._result_set.seek(index) metadata = self._result_set.read() metadata.update(self._updated_entries.get(metadata['uid'], {})) self._last_requested_index = index self._cached_row = [] self._cached_row.append(metadata['uid']) self._cached_row.append(metadata.get('keep', '0') == '1') self._cached_row.append(misc.get_icon_name(metadata)) if misc.is_activity_bundle(metadata): xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), style.COLOR_TRANSPARENT.get_svg())) else: xo_color = misc.get_icon_color(metadata) self._cached_row.append(xo_color) title = GObject.markup_escape_text(metadata.get( 'title', _('Untitled'))) self._cached_row.append('<b>%s</b>' % (title, )) try: timestamp = float(metadata.get('timestamp', 0)) except (TypeError, ValueError): timestamp_content = _('Unknown') else: timestamp_content = util.timestamp_to_elapsed_string(timestamp) self._cached_row.append(timestamp_content) try: creation_time = float(metadata.get('creation_time')) except (TypeError, ValueError): self._cached_row.append(_('Unknown')) else: self._cached_row.append( util.timestamp_to_elapsed_string(float(creation_time))) try: size = int(metadata.get('filesize')) except (TypeError, ValueError): size = None self._cached_row.append(util.format_size(size)) try: progress = int(float(metadata.get('progress', 100))) except (TypeError, ValueError): progress = 100 self._cached_row.append(progress) buddies = [] if metadata.get('buddies'): try: buddies = json.loads(metadata['buddies']).values() except json.decoder.JSONDecodeError, exception: logging.warning('Cannot decode buddies for %r: %s', metadata['uid'], exception)
def do_get_value(self, iterator, column): if self.view_is_resizing: return None index = iterator.user_data if index == self._last_requested_index: return self._cached_row[column] if index >= self._result_set.length: return None self._result_set.seek(index) metadata = self._result_set.read() metadata.update(self._updated_entries.get(metadata['uid'], {})) self._last_requested_index = index self._cached_row = [] self._cached_row.append(metadata['uid']) self._cached_row.append(metadata.get('keep', '0') == '1') self._cached_row.append(misc.get_icon_name(metadata)) if misc.is_activity_bundle(metadata): xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), style.COLOR_TRANSPARENT.get_svg())) else: xo_color = misc.get_icon_color(metadata) self._cached_row.append(xo_color) title = GObject.markup_escape_text(metadata.get('title', _('Untitled'))) self._cached_row.append('<b>%s</b>' % (title, )) try: timestamp = float(metadata.get('timestamp', 0)) except (TypeError, ValueError): timestamp_content = _('Unknown') else: timestamp_content = util.timestamp_to_elapsed_string(timestamp) self._cached_row.append(timestamp_content) try: creation_time = float(metadata.get('creation_time')) except (TypeError, ValueError): self._cached_row.append(_('Unknown')) else: self._cached_row.append( util.timestamp_to_elapsed_string(float(creation_time))) try: size = int(metadata.get('filesize')) except (TypeError, ValueError): size = None self._cached_row.append(util.format_size(size)) try: progress = int(float(metadata.get('progress', 100))) except (TypeError, ValueError): progress = 100 self._cached_row.append(progress) buddies = [] if metadata.get('buddies'): try: buddies = json.loads(metadata['buddies']).values() except json.decoder.JSONDecodeError as exception: logging.warning('Cannot decode buddies for %r: %s', metadata['uid'], exception) if not isinstance(buddies, list): logging.warning('Content of buddies for %r is not a list: %r', metadata['uid'], buddies) buddies = [] for n_ in xrange(0, 3): if buddies: try: nick, color = buddies.pop(0) except (AttributeError, ValueError) as exception: logging.warning('Malformed buddies for %r: %s', metadata['uid'], exception) else: self._cached_row.append([nick, XoColor(color)]) continue self._cached_row.append(None) return self._cached_row[column]