fix(product-suite): enable original image drag sorting

This commit is contained in:
chengma
2026-07-23 08:47:32 +08:00
parent 7d31578e8b
commit 05e12d8f61
5 changed files with 26 additions and 6 deletions
+9 -1
View File
@@ -308,6 +308,7 @@ class ProductOriginalList(QListWidget):
self.setDragEnabled(True)
self.setDropIndicatorShown(True)
self.setDragDropMode(QListWidget.InternalMove)
self.setDefaultDropAction(Qt.MoveAction)
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self._show_menu)
self.itemChanged.connect(lambda item: self.checkedAssetsChanged.emit(self.checked_asset_ids()))
@@ -385,8 +386,12 @@ class ProductOriginalList(QListWidget):
if not self._reordering_enabled:
event.ignore()
return
internal_move = event.source() is self
if internal_move:
event.setDropAction(Qt.MoveAction)
super().dropEvent(event)
self.orderChanged.emit(self.asset_ids())
if internal_move and event.isAccepted() and event.dropAction() == Qt.MoveAction:
self.orderChanged.emit(self.asset_ids())
def resizeEvent(self, event):
super().resizeEvent(event)
@@ -3384,6 +3389,9 @@ class ProductSuiteTab(QWidget):
for index, asset in enumerate(assets, 1):
label = "主图" if index == 1 else "参考%d" % (index - 1)
item = QListWidgetItem(label)
item.setFlags(
item.flags() | Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled
)
if index == 1:
font = QFont(item.font())
font.setBold(True)