feat: added "Return to Desktop" button to overlay
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
This commit is contained in:
@ -3,6 +3,7 @@ from PySide6.QtWidgets import QDialog, QVBoxLayout, QPushButton, QMessageBox
|
|||||||
from PySide6.QtWidgets import QApplication
|
from PySide6.QtWidgets import QApplication
|
||||||
from PySide6.QtCore import Qt
|
from PySide6.QtCore import Qt
|
||||||
from portprotonqt.logger import get_logger
|
from portprotonqt.logger import get_logger
|
||||||
|
import os
|
||||||
from portprotonqt.localization import _
|
from portprotonqt.localization import _
|
||||||
|
|
||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
@ -48,6 +49,18 @@ class SystemOverlay(QDialog):
|
|||||||
exit_button.clicked.connect(self.exit_application)
|
exit_button.clicked.connect(self.exit_application)
|
||||||
layout.addWidget(exit_button)
|
layout.addWidget(exit_button)
|
||||||
|
|
||||||
|
# Return to Desktop button
|
||||||
|
desktop_button = QPushButton(_("Return to Desktop"))
|
||||||
|
desktop_button.setStyleSheet(self.theme.OVERLAY_BUTTON_STYLE)
|
||||||
|
desktop_button.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
|
||||||
|
desktop_button.clicked.connect(self.return_to_desktop)
|
||||||
|
script_path = "/usr/bin/portprotonqt-session-select"
|
||||||
|
script_exists = os.path.isfile(script_path)
|
||||||
|
desktop_button.setEnabled(script_exists)
|
||||||
|
if not script_exists:
|
||||||
|
desktop_button.setToolTip(_("portprotonqt-session-select file not found at /usr/bin/"))
|
||||||
|
layout.addWidget(desktop_button)
|
||||||
|
|
||||||
# Cancel button
|
# Cancel button
|
||||||
cancel_button = QPushButton(_("Cancel"))
|
cancel_button = QPushButton(_("Cancel"))
|
||||||
cancel_button.setStyleSheet(self.theme.OVERLAY_BUTTON_STYLE)
|
cancel_button.setStyleSheet(self.theme.OVERLAY_BUTTON_STYLE)
|
||||||
@ -82,6 +95,15 @@ class SystemOverlay(QDialog):
|
|||||||
QMessageBox.warning(self, _("Error"), _("Failed to suspend the system"))
|
QMessageBox.warning(self, _("Error"), _("Failed to suspend the system"))
|
||||||
self.accept()
|
self.accept()
|
||||||
|
|
||||||
|
def return_to_desktop(self):
|
||||||
|
try:
|
||||||
|
script_path = os.path.join(os.path.dirname(__file__), "portprotonqt-session-select")
|
||||||
|
subprocess.run([script_path, "desktop"], check=True)
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
logger.error(f"Failed to return to desktop: {e}")
|
||||||
|
QMessageBox.warning(self, _("Error"), _("Failed to return to desktop"))
|
||||||
|
self.accept()
|
||||||
|
|
||||||
def exit_application(self):
|
def exit_application(self):
|
||||||
QApplication.quit()
|
QApplication.quit()
|
||||||
self.accept()
|
self.accept()
|
||||||
|
Reference in New Issue
Block a user