Lane N3 (Co4E Studio) — dùng bộ workflow refactor-god-file, mỗi bước có characterization test trước khi tách, hậu kiểm ranh giới tầng sau mỗi bước: - skills_list_panel.py / agent_list_panel.py — 2 khu vực sidebar - co4e_canvas_widget.py + canvas_items.py + canvas_interaction_mixin.py — Co4ECanvas tách 3 file (vượt 400 dòng nếu đứng một mình) - node_property_panel.py + node_property_actions_mixin.py + step_config_section.py — StepConfigPanel, cùng lý do - co4e_run_control_widget.py — RunsPagePanel (trang Flow Status) - co4e_chat_view.py — ChatPanel + _ChatInput + helper autocomplete - palette_list.py — _PaletteList dời khỏi ui/co4e_tab.py, hết import ngược presentation -> ui (agent/skills panel giờ import top-level) ui/co4e_tab.py giảm 2089 -> 1878 dòng, chỉ còn phần wiring + business logic (Co4ERunManager/AgentWorker chưa đổi — nằm ngoài phạm vi này, xem docstring presentation/co4e/co4e_tab.py). ui/co4e_canvas.py và ui/co4e_config_panel.py còn lại là compat shim re-export, không đổi API cho bên gọi. Thêm tests/test_co4e_integration.py — dựng thật Co4ETab qua build_co4e_tab(), lái luồng qua nhiều panel trong cùng instance (thêm node, mở/gập chat, chuyển trang Flow Status rồi quay lại không mất state canvas) — bắt lỗi wiring xuyên-panel mà characterization test từng panel riêng không thấy được. Đã xác minh: pytest 348 passed/1 skipped, tools/check_co4e.py sạch, không file nào >400 dòng, domain/application không import PySide6, và so pixel before/after (git worktree tại HEAD cũ) ra 0/1.125.000 pixel khác biệt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1276 lines
66 KiB
JSON
1276 lines
66 KiB
JSON
{
|
|
"source_file": "ui/co4e_canvas.py",
|
|
"source_line_count": 701,
|
|
"raw_symbol_count": 96,
|
|
"merged_symbol_count": 95,
|
|
"merged_duplicates": [
|
|
{
|
|
"symbol": "Co4ECanvas.dropEvent",
|
|
"raw_ranges": [
|
|
[
|
|
683,
|
|
700
|
|
],
|
|
[
|
|
683,
|
|
701
|
|
]
|
|
],
|
|
"final_range": [
|
|
683,
|
|
701
|
|
]
|
|
}
|
|
],
|
|
"khac_tai_lieu_note_count": 0,
|
|
"old_table_reference": "docs/architecture/co4e-split-map.md",
|
|
"old_table_uniform_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"not_in_old_table": [
|
|
{
|
|
"symbol": "Co4ECanvas._ZOOM_MAX",
|
|
"line": 294
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._ZOOM_MIN",
|
|
"line": 294
|
|
}
|
|
],
|
|
"symbols": [
|
|
{
|
|
"symbol": "_status_color",
|
|
"kind": "function",
|
|
"line_start": 43,
|
|
"line_end": 50,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "đọc current_palette() từ theme.py — cần import theme trong file đích mới",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem",
|
|
"kind": "class",
|
|
"line_start": 59,
|
|
"line_end": 210,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "QGraphicsObject — cần QApplication để khởi tạo trong test; giữ self.canvas tham chiếu ngược Co4ECanvas (co4e_canvas_widget.py) — coupling hai chiều",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.__init__",
|
|
"kind": "method",
|
|
"line_start": 62,
|
|
"line_end": 72,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.node",
|
|
"kind": "attribute",
|
|
"line_start": 64,
|
|
"line_end": 64,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "tham chiếu tới domain Node — item hiển thị chỉ giữ tham chiếu, không sở hữu",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.canvas",
|
|
"kind": "attribute",
|
|
"line_start": 65,
|
|
"line_end": 65,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "tham chiếu ngược Co4ECanvas (co4e_canvas_widget.py) — item gọi canvas._connect_from, canvas.begin_port_drag/update_port_drag/finish_port_drag (canvas_interaction_mixin.py), canvas._reposition_edges, canvas.graph_changed, canvas.node_selected/node_activated, canvas.add_step_below/begin_connect/delete_node — coupling xuyên 3 file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.status",
|
|
"kind": "attribute",
|
|
"line_start": 66,
|
|
"line_end": 66,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "được set từ ngoài bởi Co4ECanvas.update_node_status/reset_statuses (co4e_canvas_widget.py) — trạng thái chia sẻ",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem._porting",
|
|
"kind": "attribute",
|
|
"line_start": 67,
|
|
"line_end": 67,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.boundingRect",
|
|
"kind": "method",
|
|
"line_start": 74,
|
|
"line_end": 76,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem._card_rect",
|
|
"kind": "method",
|
|
"line_start": 78,
|
|
"line_end": 79,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.paint",
|
|
"kind": "method",
|
|
"line_start": 81,
|
|
"line_end": 139,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "vẽ trực tiếp lên QPainter do framework cấp — gộp nhiều việc: nền/khung thẻ, dải header theo status, label, role badge, body preview, footer, 2 port — cân nhắc tách nhỏ nếu vượt ngưỡng nhưng hiện 59 dòng nên chưa bắt buộc",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem._in_out_port",
|
|
"kind": "method",
|
|
"line_start": 141,
|
|
"line_end": 143,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.itemChange",
|
|
"kind": "method",
|
|
"line_start": 145,
|
|
"line_end": 156,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "gọi self.canvas._reposition_edges/graph_changed.emit/node_selected.emit — trạng thái chia sẻ với co4e_canvas_widget.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.hoverMoveEvent",
|
|
"kind": "method",
|
|
"line_start": 158,
|
|
"line_end": 161,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.mousePressEvent",
|
|
"kind": "method",
|
|
"line_start": 163,
|
|
"line_end": 174,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "đọc self.canvas._connect_from, gọi self.canvas.begin_port_drag — trạng thái/luồng chia sẻ với canvas_interaction_mixin.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.mouseMoveEvent",
|
|
"kind": "method",
|
|
"line_start": 176,
|
|
"line_end": 181,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "gọi self.canvas.update_port_drag — canvas_interaction_mixin.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.mouseReleaseEvent",
|
|
"kind": "method",
|
|
"line_start": 183,
|
|
"line_end": 189,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "gọi self.canvas.finish_port_drag — canvas_interaction_mixin.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.mouseDoubleClickEvent",
|
|
"kind": "method",
|
|
"line_start": 191,
|
|
"line_end": 193,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.contextMenuEvent",
|
|
"kind": "method",
|
|
"line_start": 195,
|
|
"line_end": 207,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "gọi self.canvas.add_step_below/begin_connect (co4e_canvas_widget.py, canvas_interaction_mixin.py) và self.canvas.delete_node (co4e_canvas_widget.py) — coupling 3 file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_NodeItem.center",
|
|
"kind": "method",
|
|
"line_start": 209,
|
|
"line_end": 210,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem",
|
|
"kind": "class",
|
|
"line_start": 213,
|
|
"line_end": 286,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "QGraphicsPathItem — giữ self.canvas tham chiếu ngược Co4ECanvas",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem.__init__",
|
|
"kind": "method",
|
|
"line_start": 214,
|
|
"line_end": 225,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem.edge",
|
|
"kind": "attribute",
|
|
"line_start": 216,
|
|
"line_end": 216,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "tham chiếu domain Edge",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem.canvas",
|
|
"kind": "attribute",
|
|
"line_start": 217,
|
|
"line_end": 217,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "tham chiếu ngược Co4ECanvas — dùng trong contextMenuEvent gọi canvas.delete_edge (co4e_canvas_widget.py)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem._dst",
|
|
"kind": "attribute",
|
|
"line_start": 218,
|
|
"line_end": 218,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem._hover",
|
|
"kind": "attribute",
|
|
"line_start": 224,
|
|
"line_end": 224,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem._apply_pen",
|
|
"kind": "method",
|
|
"line_start": 227,
|
|
"line_end": 235,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem.update_path",
|
|
"kind": "method",
|
|
"line_start": 237,
|
|
"line_end": 239,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "gọi _rounded_path từ canvas_geometry.py — được gọi bởi Co4ECanvas._reposition_edges (co4e_canvas_widget.py)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem.boundingRect",
|
|
"kind": "method",
|
|
"line_start": 241,
|
|
"line_end": 242,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem.shape",
|
|
"kind": "method",
|
|
"line_start": 244,
|
|
"line_end": 249,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "dùng QPainterPathStroker như kiểu giá trị, không cần QApplication sống",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem.hoverEnterEvent",
|
|
"kind": "method",
|
|
"line_start": 251,
|
|
"line_end": 255,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem.hoverLeaveEvent",
|
|
"kind": "method",
|
|
"line_start": 257,
|
|
"line_end": 261,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem.paint",
|
|
"kind": "method",
|
|
"line_start": 263,
|
|
"line_end": 279,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "_EdgeItem.contextMenuEvent",
|
|
"kind": "method",
|
|
"line_start": 281,
|
|
"line_end": 286,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_items.py",
|
|
"reason": "gọi self.canvas.delete_edge — co4e_canvas_widget.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach _NodeItem/_EdgeItem/_status_color thanh file rieng). Ban do nay tach canvas_items.py vi day la QGraphicsObject/QGraphicsPathItem hien thi thuan, tach khoi Co4ECanvas (QGraphicsView) de giam kich thuoc file va tach lop 've' khoi lop 'dieu khien do thi'."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas",
|
|
"kind": "class",
|
|
"line_start": 289,
|
|
"line_end": 700,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "cắt ngang lát — thân class còn tiếp tục sau dòng 700, agent khác đọc phần còn lại. QGraphicsView — cần chia thành co4e_canvas_widget.py (dữ liệu đồ thị: load/add/delete/relayout) và canvas_interaction_mixin.py (sự kiện chuột/phím/kéo-thả/zoom/pan/overlay), nối qua self dùng chung nhiều thuộc tính",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.node_selected",
|
|
"kind": "attribute",
|
|
"line_start": 290,
|
|
"line_end": 290,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "Signal — được emit từ add_node (widget) và itemChange của _NodeItem (canvas_items.py) — API công khai xuyên file, callers ngoài (co4e_tab.py) kết nối vào",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.node_activated",
|
|
"kind": "attribute",
|
|
"line_start": 291,
|
|
"line_end": 291,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "Signal — emit từ _NodeItem.mouseDoubleClickEvent (canvas_items.py)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.graph_changed",
|
|
"kind": "attribute",
|
|
"line_start": 292,
|
|
"line_end": 292,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "Signal — emit từ nhiều nơi cả widget (add_node/delete_node/relayout...) lẫn item (itemChange trong canvas_items.py) — điểm nối quan trọng giữa 2 file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._ZOOM_MIN",
|
|
"kind": "attribute",
|
|
"line_start": 294,
|
|
"line_end": 294,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "hằng lớp dùng bởi _zoom_by trong canvas_interaction_mixin.py — cross-file, mixin cần truy cập qua self",
|
|
"in_old_table": false,
|
|
"old_table_target": null,
|
|
"old_table_discrepancy": "KHONG co trong bang cu (docs/architecture/co4e-split-map.md) — bang do nhay thang tu dong 292 (graph_changed) sang dong 296 (__init__), bo qua dong 294 (_ZOOM_MIN, _ZOOM_MAX) hoan toan. Day la thieu sot cua bang cu, khong phai sai target."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._ZOOM_MAX",
|
|
"kind": "attribute",
|
|
"line_start": 294,
|
|
"line_end": 294,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "hằng lớp dùng bởi _zoom_by trong canvas_interaction_mixin.py — cross-file",
|
|
"in_old_table": false,
|
|
"old_table_target": null,
|
|
"old_table_discrepancy": "KHONG co trong bang cu (docs/architecture/co4e-split-map.md) — bang do nhay thang tu dong 292 (graph_changed) sang dong 296 (__init__), bo qua dong 294 (_ZOOM_MIN, _ZOOM_MAX) hoan toan. Day la thieu sot cua bang cu, khong phai sai target."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.__init__",
|
|
"kind": "method",
|
|
"line_start": 296,
|
|
"line_end": 315,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "khởi tạo cả trạng thái đồ thị (self._scene/_nodes/_edges) LẪN trạng thái tương tác (self._connect_from/_zoom/_panning/_pan_start/_overlay/_port_src/_port_src_pt/_temp_edge) trong cùng một __init__ — nếu tách interaction thành mixin riêng, __init__ này vẫn phải ở lại đây và mixin phải đọc/ghi qua self, không tự khởi tạo lại",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._scene",
|
|
"kind": "attribute",
|
|
"line_start": 299,
|
|
"line_end": 299,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "QGraphicsScene — dùng bởi hầu hết method ở cả 2 file (widget + interaction mixin)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._nodes",
|
|
"kind": "attribute",
|
|
"line_start": 305,
|
|
"line_end": 305,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "dict id->_NodeItem — trạng thái chia sẻ: đọc/ghi bởi cả co4e_canvas_widget.py (add_node/delete_node/load/relayout) và canvas_interaction_mixin.py (_node_at, keyPressEvent xoá selection)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._edges",
|
|
"kind": "attribute",
|
|
"line_start": 306,
|
|
"line_end": 306,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "list _EdgeItem — trạng thái chia sẻ tương tự self._nodes",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._connect_from",
|
|
"kind": "attribute",
|
|
"line_start": 307,
|
|
"line_end": 307,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "trạng thái chế độ 'connect' — ghi bởi begin_connect/_finish_connect (canvas_interaction_mixin.py) và keyPressEvent (Escape, cùng file), đọc bởi _NodeItem.mousePressEvent (canvas_items.py) — coupling 3 file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._zoom",
|
|
"kind": "attribute",
|
|
"line_start": 308,
|
|
"line_end": 308,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "dùng bởi _zoom_by/reset_zoom/fit_view — toàn bộ nằm ở canvas_interaction_mixin.py, chỉ khởi tạo ở đây",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._panning",
|
|
"kind": "attribute",
|
|
"line_start": 309,
|
|
"line_end": 309,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "dùng bởi mousePressEvent/mouseMoveEvent/mouseReleaseEvent (pan) — canvas_interaction_mixin.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._pan_start",
|
|
"kind": "attribute",
|
|
"line_start": 310,
|
|
"line_end": 310,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "canvas_interaction_mixin.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._overlay",
|
|
"kind": "attribute",
|
|
"line_start": 311,
|
|
"line_end": 311,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "QWidget con (nút zoom/fit) — quản lý bởi add_overlay/_place_overlay/resizeEvent/scrollContentsBy/showEvent, toàn bộ ở canvas_interaction_mixin.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._port_src",
|
|
"kind": "attribute",
|
|
"line_start": 313,
|
|
"line_end": 313,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "trạng thái kéo-nối thủ công — ghi/đọc bởi begin_port_drag/update_port_drag/finish_port_drag (canvas_interaction_mixin.py) và keyPressEvent (Escape huỷ, cùng file); _NodeItem (canvas_items.py) khởi phát qua self.canvas.begin_port_drag",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._port_src_pt",
|
|
"kind": "attribute",
|
|
"line_start": 314,
|
|
"line_end": 314,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "canvas_interaction_mixin.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._temp_edge",
|
|
"kind": "attribute",
|
|
"line_start": 315,
|
|
"line_end": 315,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "QGraphicsPathItem tạm khi đang kéo nối — quản lý bởi begin/update/finish_port_drag và keyPressEvent (Escape), tất cả canvas_interaction_mixin.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.add_overlay",
|
|
"kind": "method",
|
|
"line_start": 318,
|
|
"line_end": 323,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "widget.setParent/show/raise_ — cần Qt sống",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._place_overlay",
|
|
"kind": "method",
|
|
"line_start": 325,
|
|
"line_end": 330,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "đọc vp.height() — cần viewport thật",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.resizeEvent",
|
|
"kind": "method",
|
|
"line_start": 332,
|
|
"line_end": 334,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.scrollContentsBy",
|
|
"kind": "method",
|
|
"line_start": 336,
|
|
"line_end": 341,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.showEvent",
|
|
"kind": "method",
|
|
"line_start": 343,
|
|
"line_end": 345,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.load",
|
|
"kind": "method",
|
|
"line_start": 348,
|
|
"line_end": 362,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "reset toàn bộ self._nodes/_edges/_connect_from/_port_src/_temp_edge — chạm cả state của interaction mixin, cần đồng bộ khi tách file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.nodes",
|
|
"kind": "method",
|
|
"line_start": 364,
|
|
"line_end": 365,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.edges",
|
|
"kind": "method",
|
|
"line_start": 367,
|
|
"line_end": 368,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.add_node",
|
|
"kind": "method",
|
|
"line_start": 371,
|
|
"line_end": 382,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "emit graph_changed và node_selected",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.add_step_below",
|
|
"kind": "method",
|
|
"line_start": 384,
|
|
"line_end": 390,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._chain_tail",
|
|
"kind": "method",
|
|
"line_start": 392,
|
|
"line_end": 396,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.add_palette_step",
|
|
"kind": "method",
|
|
"line_start": 398,
|
|
"line_end": 400,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.begin_connect",
|
|
"kind": "method",
|
|
"line_start": 402,
|
|
"line_end": 403,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "ghi self._connect_from — đọc bởi _NodeItem.mousePressEvent (canvas_items.py)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._finish_connect",
|
|
"kind": "method",
|
|
"line_start": 405,
|
|
"line_end": 409,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "gọi self._make_edge (co4e_canvas_widget.py) — cross-file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.begin_port_drag",
|
|
"kind": "method",
|
|
"line_start": 412,
|
|
"line_end": 419,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "tạo self._temp_edge, thêm vào self._scene — được _NodeItem.mousePressEvent (canvas_items.py) gọi qua self.canvas",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.update_port_drag",
|
|
"kind": "method",
|
|
"line_start": 421,
|
|
"line_end": 424,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.finish_port_drag",
|
|
"kind": "method",
|
|
"line_start": 426,
|
|
"line_end": 435,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "gọi self._make_edge (co4e_canvas_widget.py) — cross-file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._node_at",
|
|
"kind": "method",
|
|
"line_start": 437,
|
|
"line_end": 441,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "duyệt self._scene.items — cần import _NodeItem từ canvas_items.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._make_edge",
|
|
"kind": "method",
|
|
"line_start": 443,
|
|
"line_end": 451,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "được gọi từ canvas_interaction_mixin.py (_finish_connect, finish_port_drag) — cross-file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._add_edge_item",
|
|
"kind": "method",
|
|
"line_start": 453,
|
|
"line_end": 456,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "tạo _EdgeItem — cần import từ canvas_items.py",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.delete_edge",
|
|
"kind": "method",
|
|
"line_start": 458,
|
|
"line_end": 463,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "được gọi bởi _EdgeItem.contextMenuEvent (canvas_items.py)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.delete_node",
|
|
"kind": "method",
|
|
"line_start": 465,
|
|
"line_end": 475,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "được gọi bởi _NodeItem.contextMenuEvent (canvas_items.py)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.delete_selected",
|
|
"kind": "method",
|
|
"line_start": 477,
|
|
"line_end": 481,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "được gọi bởi keyPressEvent (canvas_interaction_mixin.py) — cross-file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._zoom_by",
|
|
"kind": "method",
|
|
"line_start": 484,
|
|
"line_end": 495,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "dùng self._ZOOM_MIN/_ZOOM_MAX định nghĩa ở class Co4ECanvas (co4e_canvas_widget.py) — cross-file qua self, ghi self._zoom",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.zoom_in",
|
|
"kind": "method",
|
|
"line_start": 497,
|
|
"line_end": 498,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.zoom_out",
|
|
"kind": "method",
|
|
"line_start": 500,
|
|
"line_end": 501,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.reset_zoom",
|
|
"kind": "method",
|
|
"line_start": 503,
|
|
"line_end": 505,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.wheelEvent",
|
|
"kind": "method",
|
|
"line_start": 507,
|
|
"line_end": 519,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.mousePressEvent",
|
|
"kind": "method",
|
|
"line_start": 522,
|
|
"line_end": 529,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "xử lý pan bằng chuột giữa — trùng tên method với _NodeItem.mousePressEvent (canvas_items.py) nhưng khác lớp, không xung đột thật nhưng dễ nhầm khi tách",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.mouseMoveEvent",
|
|
"kind": "method",
|
|
"line_start": 531,
|
|
"line_end": 540,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.mouseReleaseEvent",
|
|
"kind": "method",
|
|
"line_start": 542,
|
|
"line_end": 548,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.fit_view",
|
|
"kind": "method",
|
|
"line_start": 550,
|
|
"line_end": 558,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "fitInView phụ thuộc kích thước viewport thật",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.relayout",
|
|
"kind": "method",
|
|
"line_start": 560,
|
|
"line_end": 578,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "gọi compute_waves (core/co4e.py) và self._reposition_edges — thuật toán xếp lớp thuần dữ liệu",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.relayout_if_vertical",
|
|
"kind": "method",
|
|
"line_start": 580,
|
|
"line_end": 589,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.add_workflow",
|
|
"kind": "method",
|
|
"line_start": 591,
|
|
"line_end": 610,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "được dropEvent (canvas_interaction_mixin.py) gọi khi kéo thả cả workflow — cross-file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.update_node_status",
|
|
"kind": "method",
|
|
"line_start": 612,
|
|
"line_end": 616,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "ghi _NodeItem.status (canvas_items.py) — cross-file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.reset_statuses",
|
|
"kind": "method",
|
|
"line_start": 618,
|
|
"line_end": 621,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.refresh_node",
|
|
"kind": "method",
|
|
"line_start": 623,
|
|
"line_end": 626,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._node_rects",
|
|
"kind": "method",
|
|
"line_start": 628,
|
|
"line_end": 638,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "dùng QRectF như kiểu giá trị",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas._reposition_edges",
|
|
"kind": "method",
|
|
"line_start": 640,
|
|
"line_end": 649,
|
|
"needs_qt_widget": false,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/co4e_canvas_widget.py",
|
|
"reason": "gọi _route từ canvas_geometry.py và e.update_path (_EdgeItem trong canvas_items.py) — cross-file",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": null
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.keyPressEvent",
|
|
"kind": "method",
|
|
"line_start": 652,
|
|
"line_end": 669,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "Escape huỷ self._connect_from/self._temp_edge/self._port_src (khởi tạo ở __init__ trong co4e_canvas_widget.py) — cross-file; Delete gọi self.delete_selected (co4e_canvas_widget.py)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.dragEnterEvent",
|
|
"kind": "method",
|
|
"line_start": 671,
|
|
"line_end": 675,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.dragMoveEvent",
|
|
"kind": "method",
|
|
"line_start": 677,
|
|
"line_end": 681,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "(khong co ghi chu)",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
},
|
|
{
|
|
"symbol": "Co4ECanvas.dropEvent",
|
|
"kind": "method",
|
|
"line_start": 683,
|
|
"line_end": 701,
|
|
"needs_qt_widget": true,
|
|
"touches_disk_or_network": false,
|
|
"target_file": "presentation/co4e/canvas_interaction_mixin.py",
|
|
"reason": "GOP 2 luot quet trung ky hieu: agent 1 doc duoc 683-700 (than try chua dong, cat ngang lat o ranh gioi doc 701-701), agent 2 doc duoc 683-701 (chi dong 701 e.acceptProposedAction() nam trong lat duoc giao, dong 702 la dong trong cuoi file). Doi chieu truc tiep voi ui/co4e_canvas.py xac nhan than ham thuc su ket thuc o dong 701 (701 dong tong cong ca file) -> chon 683-701. Xu ly drop tu sidebar: kind=='workflow' -> add_workflow, nguoc lai -> add_palette_step; import cuc bo workflow_from_dict/step_from_dict tu core/co4e.py; goi self.add_workflow/self.add_palette_step (co4e_canvas_widget.py) -> cross-file. Khong cham dia/mang, chi json.loads tu bytes mime trong bo nho.",
|
|
"in_old_table": true,
|
|
"old_table_target": "presentation/co4e/co4e_canvas_widget.py",
|
|
"old_table_discrepancy": "Bang cu gop chung vao presentation/co4e/co4e_canvas_widget.py (chua tach nhom su kien chuot/phim/keo-tha/zoom/pan/overlay ra mixin rieng). Ban do nay tach canvas_interaction_mixin.py theo dung de xuat trong note cua chinh scan Co4ECanvas o bang cu (dong 90: 'can chia thanh co4e_canvas_widget.py ... va canvas_interaction_mixin.py')."
|
|
}
|
|
]
|
|
}
|