2
2
3
3
# v0.7
4
4
5
- from PySide6 .QtWidgets import (QMainWindow , QWidget , QVBoxLayout ,
6
- QLabel , QStatusBar , QSplitter ,
7
- QHBoxLayout , QMessageBox )
5
+ from PySide6 .QtWidgets import (
6
+ QMainWindow , QWidget , QVBoxLayout , QLabel , QStatusBar , QSplitter ,
7
+ QHBoxLayout , QMessageBox
8
+ )
8
9
from PySide6 .QtCore import Qt
9
10
10
- from .components .address_bar import AddressBar
11
- from .components .tree_view import TreeView
12
- from .components .export_panel import ExportPanel
13
- from .components .search_panel import SearchPanel
14
- from .components .exclusion_panel import ExclusionPanel
15
- from .components .menu_bar import MenuBar
16
- from .components .about_dialog import AboutDialog
17
- from utils . context_menu_manager import install_context_menu , uninstall_context_menu , is_context_menu_installed
11
+ from ui .components .address_bar import AddressBar
12
+ from ui .components .tree_view import TreeView
13
+ from ui .components .export_panel import ExportPanel
14
+ from ui .components .search_panel import SearchPanel
15
+ from ui .components .exclusion_panel import ExclusionPanel
16
+ from ui .components .menu_bar import MenuBar
17
+ from ui .components .about_dialog import AboutDialog
18
+ from ui . components . context_menu_actions import ContextMenuActions
18
19
19
20
class MainWindow (QMainWindow ):
20
21
def __init__ (self ):
@@ -29,9 +30,6 @@ def setup_ui(self):
29
30
self .menu_bar = MenuBar (self )
30
31
self .setMenuBar (self .menu_bar )
31
32
32
- # Connect menu status update signal
33
- self .menu_bar .context_menu .aboutToShow .connect (self .update_context_menu_status )
34
-
35
33
# Central widget
36
34
central_widget = QWidget ()
37
35
self .setCentralWidget (central_widget )
@@ -107,11 +105,19 @@ def setup_ui(self):
107
105
108
106
# Connect menu bar signals
109
107
self .menu_bar .about_requested .connect (self .show_about_dialog )
110
- # The following are placeholders for future logic
111
- self .menu_bar .install_context_menu_requested .connect (self ._on_install_context_menu )
112
- self .menu_bar .uninstall_context_menu_requested .connect (self ._on_uninstall_context_menu )
113
108
114
- self .update_context_menu_status ()
109
+ # Context menu actions handler
110
+ self .context_menu_actions = ContextMenuActions (
111
+ main_window = self ,
112
+ menu_bar = self .menu_bar ,
113
+ status_bar = self .status_bar
114
+ )
115
+ self .menu_bar .install_context_menu_requested .connect (self .context_menu_actions .on_install_context_menu )
116
+ self .menu_bar .uninstall_context_menu_requested .connect (self .context_menu_actions .on_uninstall_context_menu )
117
+ self .menu_bar .context_menu .aboutToShow .connect (self .context_menu_actions .update_context_menu_status )
118
+
119
+ # Initial status update
120
+ self .context_menu_actions .update_context_menu_status ()
115
121
116
122
def set_status (self , message : str ):
117
123
"""Set a message in the status bar"""
@@ -120,20 +126,3 @@ def set_status(self, message: str):
120
126
def show_about_dialog (self ):
121
127
about_dialog = AboutDialog (self )
122
128
about_dialog .exec ()
123
-
124
- def update_context_menu_status (self ):
125
- """Check and update the context menu installation status"""
126
- is_installed = is_context_menu_installed ()
127
- self .menu_bar .set_context_menu_status (is_installed )
128
-
129
- def _on_install_context_menu (self ):
130
- success , message = install_context_menu ()
131
- self .set_status (message )
132
- QMessageBox .information (self , "Context Menu Installation" , message if success else f"Error: { message } " )
133
- self .update_context_menu_status ()
134
-
135
- def _on_uninstall_context_menu (self ):
136
- success , message = uninstall_context_menu ()
137
- self .set_status (message )
138
- QMessageBox .information (self , "Context Menu Removal" , message if success else f"Error: { message } " )
139
- self .update_context_menu_status ()
0 commit comments