feat: split view pro — TabManager indépendant par panneau avec drag & drop cross-pane
CI / lint (push) Failing after 10s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 17s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
CI / lint (push) Failing after 10s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 17s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- PaneTabManager factory: chaque panneau a sa propre instance avec ses propres onglets - Drag & drop d'onglets entre panneaux (application/obsigate-tab dataTransfer) - Split copie l'onglet actif dans le nouveau panneau - TabManager singleton: délégation automatique vers le panneau actif en mode split - Persistance complète par panneau (tabs, activeTab, previewTab) - viewer.js: getContentArea() priorise window._activePaneContentArea - 307 tests verts, déployé sur 192.168.30.101:2020
This commit is contained in:
@@ -76,14 +76,16 @@ class TestPaneManagerStaticAssets:
|
||||
# Only the fallback inside getContentArea should remain
|
||||
assert len(direct_refs) <= 2, f"Too many direct content-area refs: {direct_refs}"
|
||||
|
||||
def test_ui_tab_manager_has_pane_helpers(self):
|
||||
"""TabManager in ui.js has _getContentArea, _getTabBar, _getTabList."""
|
||||
def test_ui_tab_manager_has_delegation(self):
|
||||
"""TabManager in ui.js delegates to getActiveTabManager() when split."""
|
||||
path = PROJECT_ROOT / "frontend" / "js" / "ui.js"
|
||||
content = path.read_text()
|
||||
assert "_getContentArea()" in content
|
||||
assert "_getTabBar()" in content
|
||||
assert "_getTabList()" in content
|
||||
assert "activatePaneTab(" in content
|
||||
assert "getActiveTabManager" in content
|
||||
assert "PaneManager.isSplit()" in content
|
||||
# Must have delegation in entry-point methods
|
||||
assert "window.getActiveTabManager().openPreview" in content
|
||||
assert "window.getActiveTabManager().openPersistent" in content
|
||||
assert "window.getActiveTabManager().close(" in content
|
||||
|
||||
def test_ui_context_menu_has_split_actions(self):
|
||||
"""Tab context menu includes 'Diviser à droite' and 'Diviser en bas'."""
|
||||
|
||||
Reference in New Issue
Block a user