Skip to content

Commit bd5661d

Browse files
author
Avaxerrr
committed
v0.7.1
- Refactor main window and transfer context menu into separate module context_menu_actions.py
1 parent f4766c7 commit bd5661d

File tree

4 files changed

+62
-45
lines changed

4 files changed

+62
-45
lines changed

license.md renamed to LICENSE.md

File renamed without changes.

ui/components/context_menu_actions.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from PySide6.QtWidgets import QMessageBox
2+
from utils.context_menu_manager import (
3+
install_context_menu,
4+
uninstall_context_menu,
5+
is_context_menu_installed
6+
)
7+
8+
class ContextMenuActions:
9+
def __init__(self, main_window, menu_bar, status_bar):
10+
self.main_window = main_window
11+
self.menu_bar = menu_bar
12+
self.status_bar = status_bar
13+
14+
def update_context_menu_status(self):
15+
"""Check and update the context menu installation status"""
16+
is_installed = is_context_menu_installed()
17+
self.menu_bar.set_context_menu_status(is_installed)
18+
19+
def on_install_context_menu(self):
20+
success, message = install_context_menu()
21+
self.status_bar.showMessage(message)
22+
QMessageBox.information(
23+
self.main_window,
24+
"Context Menu Installation",
25+
message if success else f"Error: {message}"
26+
)
27+
self.update_context_menu_status()
28+
29+
def on_uninstall_context_menu(self):
30+
success, message = uninstall_context_menu()
31+
self.status_bar.showMessage(message)
32+
QMessageBox.information(
33+
self.main_window,
34+
"Context Menu Removal",
35+
message if success else f"Error: {message}"
36+
)
37+
self.update_context_menu_status()

ui/components/menu_bar.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44

55
from PySide6.QtWidgets import QMenuBar, QMenu
66
from PySide6.QtCore import Signal
7-
from PySide6.QtGui import QFont, QAction
8-
7+
from PySide6.QtGui import QAction
98

109
class MenuBar(QMenuBar):
1110
install_context_menu_requested = Signal()
@@ -49,14 +48,6 @@ def _setup_menus(self):
4948
self.uninstall_context_action.triggered.connect(self.uninstall_context_menu_requested)
5049
self.about_action.triggered.connect(self.about_requested)
5150

52-
# Connect aboutToShow signal to update status
53-
self.context_menu.aboutToShow.connect(self.update_context_menu_status)
54-
55-
def update_context_menu_status(self):
56-
"""Signal that the menu is about to be shown - status should be updated"""
57-
# This will be connected to a method in MainWindow
58-
pass
59-
6051
def set_context_menu_status(self, is_installed):
6152
"""Update the status text based on installation status"""
6253
if is_installed:

ui/main_window.py

Lines changed: 24 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,20 @@
22

33
# v0.7
44

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+
)
89
from PySide6.QtCore import Qt
910

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
1819

1920
class MainWindow(QMainWindow):
2021
def __init__(self):
@@ -29,9 +30,6 @@ def setup_ui(self):
2930
self.menu_bar = MenuBar(self)
3031
self.setMenuBar(self.menu_bar)
3132

32-
# Connect menu status update signal
33-
self.menu_bar.context_menu.aboutToShow.connect(self.update_context_menu_status)
34-
3533
# Central widget
3634
central_widget = QWidget()
3735
self.setCentralWidget(central_widget)
@@ -107,11 +105,19 @@ def setup_ui(self):
107105

108106
# Connect menu bar signals
109107
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)
113108

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()
115121

116122
def set_status(self, message: str):
117123
"""Set a message in the status bar"""
@@ -120,20 +126,3 @@ def set_status(self, message: str):
120126
def show_about_dialog(self):
121127
about_dialog = AboutDialog(self)
122128
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

Comments
 (0)