feat: implement queue panel with table, batch modes, stats, and export
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+26
-5
@@ -17,6 +17,7 @@ from version import APP_NAME, APP_VERSION
|
||||
from app.widgets.export_panel import ExportPanel
|
||||
from app.widgets.image_canvas import ImageCanvas
|
||||
from app.widgets.image_list_panel import ImageListPanel
|
||||
from app.widgets.queue_panel import QueuePanel
|
||||
from app.widgets.template_panel import TemplatePanel
|
||||
from app.widgets.transform_panel import TransformPanel
|
||||
|
||||
@@ -59,6 +60,7 @@ class MainWindow(QMainWindow):
|
||||
|
||||
self.setCentralWidget(root)
|
||||
self._apply_stylesheet()
|
||||
self._connect_signals()
|
||||
|
||||
def _create_header(self):
|
||||
"""Top header: app name, version label, settings button."""
|
||||
@@ -210,12 +212,11 @@ class MainWindow(QMainWindow):
|
||||
self._queue_body.setObjectName("queueBody")
|
||||
|
||||
body_layout = QVBoxLayout(self._queue_body)
|
||||
body_layout.setContentsMargins(12, 8, 12, 8)
|
||||
body_layout.setContentsMargins(0, 0, 0, 0)
|
||||
body_layout.setSpacing(0)
|
||||
|
||||
placeholder = QLabel("合成队列(实现中)")
|
||||
placeholder.setAlignment(Qt.AlignCenter)
|
||||
placeholder.setObjectName("queuePlaceholder")
|
||||
body_layout.addWidget(placeholder)
|
||||
self.queue_panel = QueuePanel()
|
||||
body_layout.addWidget(self.queue_panel)
|
||||
|
||||
self._queue_expanded = True
|
||||
return self._queue_body
|
||||
@@ -240,6 +241,26 @@ class MainWindow(QMainWindow):
|
||||
self._queue_container.setFixedHeight(36)
|
||||
self._collapse_btn.setText("▼")
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Signal wiring
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
def _connect_signals(self):
|
||||
"""Connect inter-panel signals needed for the queue workflow."""
|
||||
# Asset lists → queue rebuilds automatically
|
||||
self.image_list_panel.garments_changed.connect(self.queue_panel.set_garments)
|
||||
self.image_list_panel.prints_changed.connect(self.queue_panel.set_prints)
|
||||
# Queue row selection → preview canvas
|
||||
self.queue_panel.item_activated.connect(self._on_queue_item_activated)
|
||||
|
||||
def _on_queue_item_activated(self, item):
|
||||
"""Load garment and print from a selected queue item into the canvas."""
|
||||
self.image_canvas.load_garment(str(item.garment.path))
|
||||
self.image_canvas.load_print(str(item.print_asset.path))
|
||||
if item.transform:
|
||||
self.image_canvas.set_transform(item.transform)
|
||||
self.transform_panel.set_transform(item.transform)
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Style (ref: docs/07-ui-design.md §10)
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user