Esempio n. 1
0
        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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
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])
Esempio n. 5
0
    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])
Esempio n. 6
0
    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)
Esempio n. 7
0
    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)
Esempio n. 8
0
    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