def func(widget_item): bt_obj = _bt_obj_from_widget_item(widget_item) if bt_obj is None: # child group: expand widget_item.setExpanded(True) if not btautils.bt_obj_is_known(bt_obj): return if not isinstance(bt_obj, model.BtObject): return all_unknown = True for child in bt_obj.children: if type(child) is model.ChildGroup: all_unknown = False break if btautils.bt_obj_is_known(child.object): all_unknown = False break widget_item.setExpanded(not all_unknown)
def convert(self, bt_obj, parent_wi): if not btautils.bt_obj_is_known(bt_obj): return if not isinstance(bt_obj, model.BtObject): return for attr in bt_obj.attrs: self._convert_attr(attr, parent_wi)
def _update_props(self, bt_obj): self._props_tree_widget.clear() if not btautils.bt_obj_is_known(bt_obj): self._props_tree_box.setEnabled(False) return self._props_tree_box.setEnabled(True) self._bt_obj_attrs_to_prop_wi_converter.convert(bt_obj, self._props_tree_widget) _resize_column_to_contents(self._props_tree_widget, 0)
def _do_highlight_valid(self, is_valid, widget_item): bt_obj = _bt_obj_from_widget_item(widget_item) if not btautils.bt_obj_is_known(bt_obj): return if hasattr(bt_obj, 'is_valid'): valid = bt_obj.is_valid else: valid = True if valid == is_valid: widget_item.setBackground(0, self._valid_bg_brushes[is_valid])
def _do_highlight_frozen(self, is_frozen, widget_item): bt_obj = _bt_obj_from_widget_item(widget_item) if not btautils.bt_obj_is_known(bt_obj): return if hasattr(bt_obj, 'is_frozen'): frozen = bt_obj.is_frozen else: frozen = True if frozen == is_frozen: widget_item.setBackground(0, self._frozen_bg_brushes[is_frozen])
def _convert_child(self, child, parent_wi, addrs_to_owner_addrs): parent_wi = self._create_widget_item(child, parent_wi, addrs_to_owner_addrs) if type(child) is model.ChildGroup: parent_obj = child else: if btautils.bt_obj_is_known(child.object): parent_obj = child.object else: parent_obj = None if isinstance(parent_obj, model.BtObject) or isinstance(parent_obj, model.ChildGroup): for ch in parent_obj.children: self._convert_child(ch, parent_wi, addrs_to_owner_addrs)
def _do_associate_wi_to_addr(self, addrs_to_widget_items, widget_item): bt_obj = _bt_obj_from_widget_item(widget_item) if not btautils.bt_obj_is_known(bt_obj): return addr = bt_obj.addr if addr.is_null: return if addr.value not in addrs_to_widget_items: addrs_to_widget_items[addr.value] = [] addrs_to_widget_items[addr.value].append(widget_item)
def _create_widget_item(self, child, parent_wi, addrs_to_owner_addrs): bt_obj = None if type(child) is model.Child: bt_obj = child.object row = self._get_row(child, addrs_to_owner_addrs) widget_item = Qt.QTreeWidgetItem(parent_wi, row) widget_item.setData(0, QtCore.Qt.UserRole, bt_obj) # set number style self._set_widget_item_number_style(widget_item, 2) self._set_widget_item_number_style(widget_item, 3) self._set_widget_item_number_style(widget_item, 4) self._set_widget_item_number_style(widget_item, 5) widget_item.setFont(6, self._mono_font_bold) # set colors widget_item.setForeground(7, self._summary_brush) if type(child) is model.ChildGroup: self._set_widget_item_group_style(widget_item) else: if not btautils.bt_obj_is_known(bt_obj): widget_item.setForeground(0, self._unknown_brush) widget_item.setForeground(1, self._unknown_brush) widget_item.setForeground(3, self._unknown_brush) elif child.is_field: self._set_widget_item_field_style(widget_item) # set icon icon = utils._get_bt_obj_icon(bt_obj) if icon is not None: widget_item.setIcon(0, icon) widget_item.setExpanded(True) return widget_item