44 lines
803 B
Plaintext
44 lines
803 B
Plaintext
@startuml
|
|
class MainWindow {
|
|
+menu_bar: QMenuBar
|
|
+project_list: ProjectListWidget
|
|
+workspace: WorkspaceManager
|
|
+status_bar: QStatusBar
|
|
}
|
|
|
|
class ProjectListWidget {
|
|
+project_tree: QTreeWidget
|
|
+context_menu: QMenu
|
|
+discover_projects()
|
|
+handle_context_menu()
|
|
}
|
|
|
|
class WorkspaceManager {
|
|
+panes: List[PaneWidget]
|
|
+splitter: QSplitter
|
|
+split_horizontal()
|
|
+split_vertical()
|
|
+close_pane()
|
|
}
|
|
|
|
class PaneWidget {
|
|
+tab_bar: QTabBar
|
|
+tabs: List[QTabWidget]
|
|
+add_tab()
|
|
+close_tab()
|
|
}
|
|
|
|
class TerminalWidget {
|
|
+pty: pty.process
|
|
+screen: pyte.Screen
|
|
+terminal: QPlainTextEdit
|
|
+start_shell()
|
|
+handle_input()
|
|
}
|
|
|
|
MainWindow --> ProjectListWidget
|
|
MainWindow --> WorkspaceManager
|
|
WorkspaceManager --> PaneWidget
|
|
PaneWidget --> TerminalWidget
|
|
ProjectListWidget --> dialogs
|
|
@enduml |