def get_textual_value(self, record): field = record[self.attrs['name']] if hasattr(field, 'get_size'): size = field.get_size(record) else: size = len(field.get(record)) return common.humanize(size) if size else ''
def record_message(self, position, size, max_size, record_id): name = str(position) if position else '_' selected = len(self.screen.selected_records) if selected > 1: name += '#%i' % selected for button_id in ('print', 'relate', 'email', 'open', 'save', 'attach'): button = self.buttons[button_id] can_be_sensitive = getattr(button, '_can_be_sensitive', True) if button_id in {'print', 'relate', 'email', 'open'}: action_type = button_id if button_id == 'open': action_type = 'print' can_be_sensitive |= any( b.attrs.get('keyword', 'action') == action_type for b in self.screen.get_buttons()) elif button_id == 'save': can_be_sensitive &= not self.screen.readonly button.props.sensitive = bool(position) and can_be_sensitive button_switch = self.buttons['switch'] button_switch.props.sensitive = self.screen.number_of_views > 1 menu_delete = self.menu_buttons['remove'] menu_delete.props.sensitive = self.screen.deletable menu_save = self.menu_buttons['save'] menu_save.props.sensitive = not self.screen.readonly if size < max_size: msg = "%s@%s/%s" % (name, common.humanize(size), common.humanize(max_size)) if max_size >= self.screen.count_limit: msg += "+" else: msg = "%s/%s" % (name, common.humanize(size)) self.status_label.set_text(msg) self.message_info() self.activate_save() self.refresh_attachment_preview()
def set_tab_counter(self, count, idx=None): if not self.tab_counter or not self.notebook: return if idx is None: idx = self.notebook.get_current_page() if idx < 0: return label = self.tab_counter[idx] tooltip = common.Tooltips() if count is None: label.set_label('') tooltip.set_tip(label, '') else: tip = common.humanize(count) if count >= 1000: tip += '+' tooltip.set_tip(label, tip) fmt = '(%d)' if count > 99: fmt = '(%d+)' count = 99 label.set_label(fmt % count)
def setter(self, column, cell, store, iter): record = store.get_value(iter, 0) field = record[self.attrs['name']] if hasattr(field, 'get_size'): size = field.get_size(record) else: size = len(field.get(record)) cell.set_property('size', common.humanize(size) if size else '') states = ('invisible',) if getattr(self.view.treeview, 'editable', False): states = ('readonly', 'required', 'invisible') field.state_set(record, states=states) invisible = field.get_state_attrs(record).get('invisible', False) cell.set_property('visible', not invisible) if getattr(self.view.treeview, 'editable', False): readonly = self.attrs.get('readonly', field.get_state_attrs(record).get('readonly', False)) if invisible: readonly = True cell.set_property('editable', not readonly)
def setter(self, column, cell, store, iter): record = store.get_value(iter, 0) size = record[self.field_name].get_size(record) cell.set_property('size', common.humanize(size) if size else '')