Skip to content

Commit

Permalink
feat(home): improve context menu behavior and enhance process execution
Browse files Browse the repository at this point in the history
  • Loading branch information
amnweb committed Nov 25, 2024
1 parent 6b1d553 commit dade508
Showing 1 changed file with 21 additions and 16 deletions.
37 changes: 21 additions & 16 deletions src/core/widgets/yasb/home.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
"""
This widget need to check, there is some bug with click event, sometimes need to click twice to trigger the event.
"""
import logging
import os
import re
import subprocess
from core.widgets.base import BaseWidget
from core.validation.widgets.yasb.home import VALIDATION_SCHEMA
from PyQt6.QtWidgets import QLabel, QHBoxLayout, QWidget, QMenu, QWidgetAction
Expand All @@ -12,7 +10,7 @@
from core.utils.utilities import is_windows_10
import os
from core.utils.widgets.power import PowerOperations

class HomeWidget(BaseWidget):
validation_schema = VALIDATION_SCHEMA
def __init__(
Expand Down Expand Up @@ -102,15 +100,18 @@ def _create_menu(self):
self._menu = QMenu(self)
self._update_menu_style()
self._setup_menu()
self._menu.aboutToHide.connect(self._on_menu_about_to_hide)
self._menu.triggered.connect(self.on_menu_triggered)

def _update_menu_style(self):
self._menu.setProperty('class', 'home-menu')

self._menu.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
if self._blur:
Blur(
self._menu.winId(),
Acrylic=True if is_windows_10() else False,
DarkMode=True,
DarkMode=False,
RoundCorners=True,
BorderColor="System"
)
Expand All @@ -120,7 +121,7 @@ def _setup_menu(self):
self.add_menu_action(
self._menu,
"About this PC",
lambda: os.system("winver")
lambda: subprocess.Popen("winver", shell=True, creationflags=subprocess.CREATE_NO_WINDOW)
)
self._menu.addSeparator()
self.add_menu_action(
Expand All @@ -131,7 +132,7 @@ def _setup_menu(self):
self.add_menu_action(
self._menu,
"Task Manager",
lambda: os.system("taskmgr")
lambda: subprocess.Popen("taskmgr", shell=True, creationflags=subprocess.CREATE_NO_WINDOW)
)
self._menu.addSeparator()

Expand Down Expand Up @@ -179,19 +180,23 @@ def _setup_menu(self):
"Logout",
lambda: self.power_operations.signout()
)
self._menu.triggered.connect(self.on_menu_triggered)


def on_menu_triggered(self):
self._menu.hide()
self.is_menu_visible = False
self._reset_menu_visibility()

def _on_menu_about_to_hide(self):
QTimer.singleShot(100, self._reset_menu_visibility)

def _toggle_menu(self):
if self.is_menu_visible:
self._menu.hide()
self.is_menu_visible = False
return
self._reset_menu_visibility()
return
global_position = self.mapToGlobal(QPoint(0, self.height() + 6))
self._menu.move(global_position)
self._update_menu_style()
self._menu.show()
self.is_menu_visible = True
QTimer.singleShot(0, self._menu.show)
self.is_menu_visible = True

def _reset_menu_visibility(self):
self.is_menu_visible = False
self._menu.hide()

0 comments on commit dade508

Please # to comment.