def set_band_item_settings( self, altitude, rank, top_band_alt, bot_band_alt, leftmost_object_label, rightmost_object_label ): item = self._band_items[altitude] item.rank = rank item.top_band = self._band_items[top_band_alt] if top_band_alt is not None else None item.bot_band = self._band_items[bot_band_alt] if bot_band_alt is not None else None if leftmost_object_label == "": item.left_most_obj = self.bandStack else: if ("e" in leftmost_object_label) or ("c" in leftmost_object_label): item.left_most_obj = self._snap_items[str(leftmost_object_label)] left_index = snapkey.parse_snapkey(leftmost_object_label)[0] else: # Not snap, but hook item.left_most_obj = self._hook_items[str(leftmost_object_label)] left_index = hooklabel.parse_hooklabel(leftmost_object_label)[2] if rightmost_object_label == "": item.right_most_obj = self.bandStack else: if ("e" in rightmost_object_label) or ("c" in rightmost_object_label): item.right_most_obj = self._snap_items[str(rightmost_object_label)] right_index = snapkey.parse_snapkey(rightmost_object_label)[0] else: # Not snap, but hook item.right_most_obj = self._hook_items[str(rightmost_object_label)] right_index = hooklabel.parse_hooklabel(rightmost_object_label)[2] try: if right_index == left_index: # Make sure it won't stick weirdly out to the left if left_index > 0: item.left_most_obj = self._block_items[left_index - 1] # Make sure it doesn't stick out weirdly to the right if right_index < max(self._block_items.keys()): item.right_most_obj = self._block_items[right_index + 1] except: # right_index and left_index don't exist pass
def __init__(self, parent, hook_label): super(HookItem, self).__init__(parent) qt_view.BandItemAttributes.__init__(self) self._hook_label = hook_label self._layout_manager = typecheck(parent, FabrikLayoutManagerWidget, "parent") self._view = parent.view() self._adapter = parent.adapter() originAltitude, destAltitude, self.latchIndex = hooklabel.parse_hooklabel(self._hook_label) # Deal with the parsed things. self.origin_band_item = self._layout_manager.get_band_item(originAltitude) self.dest_band_item = self._layout_manager.get_band_item(destAltitude) self._container = self.latch self.rank = self.origin_band_item.rank # Qt Properties self.setSizePolicy(QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)) self.setPreferredHeight(5) self.setMinimumHeight(5) self.setAcceptHoverEvents(True)