def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent) # look manager layout layout = QtWidgets.QVBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(10) # Looks from database title = QtWidgets.QLabel("Looks") title.setAlignment(QtCore.Qt.AlignCenter) title.setStyleSheet("font-weight: bold; font-size: 12px") title.setAlignment(QtCore.Qt.AlignCenter) model = models.LookModel() # Proxy for dynamic sorting proxy = QtCore.QSortFilterProxyModel() proxy.setSourceModel(model) view = views.View() view.setModel(proxy) view.setMinimumHeight(180) view.setToolTip("Use right mouse button menu for direct actions") view.customContextMenuRequested.connect(self.right_mouse_menu) view.sortByColumn(0, QtCore.Qt.AscendingOrder) layout.addWidget(title) layout.addWidget(view) self.view = view self.model = model
def __init__(self, parent=None): super(ComparingTable, self).__init__(parent=parent) data = { "model": models.ComparerModel(), "proxy": QtCore.QSortFilterProxyModel(), "view": QtWidgets.QTreeView(), "diff": delegates.DiffDelegate(), "path": delegates.PathTextDelegate(), } data["view"].setIndentation(20) data["view"].setStyleSheet(""" QTreeView::item{ padding: 6px 1px; border: 0px; } """) data["view"].setContextMenuPolicy(QtCore.Qt.CustomContextMenu) data["view"].setAllColumnsShowFocus(True) data["view"].setAlternatingRowColors(True) data["view"].setSortingEnabled(True) data["view"].setSelectionBehavior( QtWidgets.QAbstractItemView.SelectItems) data["view"].setSelectionMode( QtWidgets.QAbstractItemView.ExtendedSelection) header = data["view"].header() header.setMinimumSectionSize(delegates.DiffDelegate.ICON_SPACE) # Delegate diff_delegate = data["diff"] column = data["model"].Columns.index("diff") data["view"].setItemDelegateForColumn(column, diff_delegate) path_delegate = data["path"] column = data["model"].Columns.index(SIDE_A) data["view"].setItemDelegateForColumn(column, path_delegate) column = data["model"].Columns.index(SIDE_B) data["view"].setItemDelegateForColumn(column, path_delegate) # Set Model data["proxy"].setSourceModel(data["model"]) data["view"].setModel(data["proxy"]) layout = QtWidgets.QHBoxLayout(self) layout.addWidget(data["view"]) # Connect data["view"].customContextMenuRequested.connect(self.on_context_menu) # Init data["view"].setColumnWidth(0, 90) # "diff" column data["view"].setColumnWidth(1, 310) # "side A" column self.data = data
def __init__(self, parent=None): super(SequenceWidget, self).__init__(parent=parent) data = { "model": SequenceModel(), "proxy": QtCore.QSortFilterProxyModel(), "view": QtWidgets.QTreeView(), "fpatternDel": None, "nameDel": None, } data["proxy"].setSourceModel(data["model"]) data["view"].setModel(data["proxy"]) data["fpatternDel"] = delegates.LineHTMLDelegate(data["view"]) data["nameDel"] = delegates.NameEditDelegate() fpattern_delegate = data["fpatternDel"] column = data["model"].Columns.index("fpattern") data["view"].setItemDelegateForColumn(column, fpattern_delegate) name_delegate = data["nameDel"] column = data["model"].Columns.index("name") data["view"].setItemDelegateForColumn(column, name_delegate) data["proxy"].setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) data["view"].setContextMenuPolicy(QtCore.Qt.CustomContextMenu) data["view"].setSelectionMode(ExtendedSelection) data["view"].setSortingEnabled(True) data["view"].sortByColumn(0, QtCore.Qt.AscendingOrder) data["view"].setAlternatingRowColors(True) data["view"].setAllColumnsShowFocus(True) data["view"].setIndentation(6) data["view"].setStyleSheet(""" QTreeView::item{ padding: 8px 1px; border: 0px; } """) data["view"].setColumnWidth(0, 360) # fpattern data["view"].setColumnWidth(1, 100) # name data["view"].setColumnWidth(2, 80) # frames layout = QtWidgets.QVBoxLayout(self) layout.addWidget(data["view"]) layout.setContentsMargins(0, 0, 0, 0) data["view"].customContextMenuRequested.connect(self.on_context_menu) self.data = data
def __init__(self, parent=None): super(SelectionOutline, self).__init__(parent=parent) self.model = model.SelectionModel() proxy = QtCore.QSortFilterProxyModel() proxy.setSourceModel(self.model) view = QtWidgets.QTreeView() view.setIndentation(20) view.setStyleSheet(""" QTreeView::item{ padding: 4px 1px; border: 0px; } """) view.setAllColumnsShowFocus(True) view.setAlternatingRowColors(True) view.setSortingEnabled(True) view.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) view.sortByColumn(1, QtCore.Qt.AscendingOrder) view.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) # Delegate time_delegate = delegates.PrettyTimeDelegate() column = self.model.Columns.index("time") view.setItemDelegateForColumn(column, time_delegate) view.setModel(proxy) view.setColumnWidth(0, 100) view.setColumnWidth(1, 140) view.setColumnWidth(2, 200) view.setColumnWidth(3, 200) view.setColumnWidth(4, 70) self.view = view self.proxy = proxy # (TODO) # Get all nodes # Get selected nodes # Dynamic selecting (If this enabled, dim out above two. Default off) # "Freeze List" will not be needed freezer = QtWidgets.QCheckBox("Freeze List") # (TODO) # These three not implemented include_hierarchy = QtWidgets.QCheckBox("Include Hierarchy") hide_referenced = QtWidgets.QCheckBox("Hide Referenced") refresh = QtWidgets.QPushButton("Refresh") layout = QtWidgets.QVBoxLayout() layout.addWidget(freezer) layout.addWidget(include_hierarchy) layout.addWidget(hide_referenced) layout.addWidget(self.view) layout.addWidget(refresh) self.setLayout(layout) self.data = { "delegates": { "time": time_delegate, } } self.view.customContextMenuRequested.connect(self.on_menu) freezer.stateChanged.connect(self.on_freezed)
def __init__(self, parent=None): super(SelectionOutline, self).__init__(parent=parent) data = pindict({ "model": model.SelectionModel(), "proxy": QtCore.QSortFilterProxyModel(), }) panels = { "header": QtWidgets.QWidget(), "body": QtWidgets.QWidget(), "footer": QtWidgets.QWidget(), } widgets = pindict({ "view": QtWidgets.QTreeView(), "lock": QtWidgets.QPushButton("Lock"), "unlock": QtWidgets.QPushButton("Unlock"), "save": QtWidgets.QPushButton("Save"), "refresh": QtWidgets.QPushButton(), }) data["proxy"].setSourceModel(data["model"]) widgets["view"].setModel(data["proxy"]) with widgets.pin("view") as _: _.setAllColumnsShowFocus(True) _.setAlternatingRowColors(True) _.setSortingEnabled(True) _.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) _.sortByColumn(1, QtCore.Qt.AscendingOrder) _.setSelectionMode(_.ExtendedSelection) _.setIndentation(20) _.setStyleSheet(""" QTreeView::item{ padding: 4px 1px; border: 0px; } """) _.setColumnWidth(0, 240) layout = QtWidgets.QHBoxLayout(panels["header"]) layout.setContentsMargins(0, 0, 0, 0) layout.setMargin(0) layout.addStretch() layout.addWidget(widgets["refresh"]) layout = QtWidgets.QHBoxLayout(panels["body"]) layout.setContentsMargins(0, 0, 0, 0) layout.setMargin(0) layout.addWidget(widgets["view"]) layout = QtWidgets.QHBoxLayout(panels["footer"]) layout.setContentsMargins(0, 0, 0, 0) layout.setMargin(0) layout.addWidget(widgets["lock"]) layout.addWidget(widgets["unlock"]) layout.addWidget(widgets["save"]) layout = QtWidgets.QVBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.setMargin(0) layout.addWidget(panels["header"]) layout.addWidget(panels["body"]) layout.addWidget(panels["footer"]) widgets["view"].customContextMenuRequested.connect(self.on_menu) widgets["lock"].clicked.connect(lambda: self.on_locked(True)) widgets["unlock"].clicked.connect(lambda: self.on_locked(False)) widgets["save"].clicked.connect(self.on_saved) widgets["refresh"].clicked.connect(self.on_refreshed) icon = qtawesome.icon("fa.lock", color="gray") widgets["lock"].setIcon(icon) icon = qtawesome.icon("fa.unlock", color="gray") widgets["unlock"].setIcon(icon) icon = qtawesome.icon("fa.save", color="gray") widgets["save"].setIcon(icon) icon = qtawesome.icon("fa.refresh", color="white") widgets["refresh"].setIcon(icon) self.data = data self.widgets = widgets self._selection_sync = True