chore(virtual_keyboard): move styles to style.py
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Code check / Check code (pull_request) Successful in 1m12s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Code check / Check code (pull_request) Successful in 1m12s
				
			Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
This commit is contained in:
		| @@ -210,8 +210,7 @@ class MainWindow(QMainWindow): | ||||
|  | ||||
|         self.restore_state() | ||||
|  | ||||
|         self.keyboard = VirtualKeyboard(self) | ||||
|         mainLayout.addWidget(self.keyboard) | ||||
|         self.keyboard = VirtualKeyboard(self, self.theme) | ||||
|  | ||||
|         self.detail_animations = DetailPageAnimations(self, self.theme) | ||||
|         QTimer.singleShot(0, self.loadGames) | ||||
|   | ||||
| @@ -217,6 +217,56 @@ CONTEXT_MENU_STYLE = f""" | ||||
|     }} | ||||
| """ | ||||
|  | ||||
| VIRTUAL_KEYBOARD_STYLE = """ | ||||
| VirtualKeyboard { | ||||
|     background-color: rgba(30, 30, 30, 200); | ||||
|     border-radius: 0px; | ||||
|     border: none; | ||||
| } | ||||
| QPushButton { | ||||
|     font-size: 14px; | ||||
|     border: 1px solid #555; | ||||
|     border-top-color: #666; | ||||
|     border-left-color: #666; | ||||
|     border-radius: 3px; | ||||
|     min-width: 30px; | ||||
|     min-height: 30px; | ||||
|     padding: 4px; | ||||
|     background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #505050, stop:1 #404040); | ||||
|     color: #e0e0e0; | ||||
| } | ||||
| QPushButton:hover { | ||||
|     background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #606060, stop:1 #505050); | ||||
|     border: 1px solid #666; | ||||
|     border-top-color: #777; | ||||
|     border-left-color: #777; | ||||
| } | ||||
| QPushButton:focus { | ||||
|     border: 2px solid #4a90e2; | ||||
|     background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #5a5a5a, stop:1 #454545); | ||||
| } | ||||
| QPushButton:pressed { | ||||
|     background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3a3a3a, stop:1 #303030); | ||||
|     border: 1px solid #444; | ||||
|     border-bottom-color: #555; | ||||
|     border-right-color: #555; | ||||
|     padding-top: 5px; | ||||
|     padding-bottom: 3px; | ||||
|     padding-left: 5px; | ||||
|     padding-right: 3px; | ||||
| } | ||||
| QPushButton[checked="true"] { | ||||
|     background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #4a90e2, stop:1 #3a7ad2); | ||||
|     color: white; | ||||
|     border: 1px solid #2a6ac2; | ||||
|     border-top-color: #5aa0f2; | ||||
|     border-left-color: #5aa0f2; | ||||
| } | ||||
| QPushButton[checked="true"]:focus { | ||||
|     border: 2px solid #6aa3f5; | ||||
| } | ||||
| """ | ||||
|  | ||||
| # ГЛОБАЛЬНЫЙ СТИЛЬ ДЛЯ ОКНА (ФОН), ЛЭЙБЛОВ, КНОПОК | ||||
| MAIN_WINDOW_STYLE = f""" | ||||
|     QWidget {{ | ||||
|   | ||||
| @@ -2,15 +2,20 @@ from typing import cast | ||||
| from PySide6.QtWidgets import (QFrame, QVBoxLayout, QPushButton, QGridLayout, | ||||
|                                QSizePolicy, QWidget, QLineEdit) | ||||
| from PySide6.QtCore import Qt, Signal, QProcess | ||||
| from portprotonqt.keyboard_layouts import keyboard_layouts  # Импортируем раскладки | ||||
| from portprotonqt.keyboard_layouts import keyboard_layouts | ||||
| from portprotonqt.theme_manager import ThemeManager | ||||
| from portprotonqt.config_utils import read_theme_from_config | ||||
|  | ||||
| theme_manager = ThemeManager() | ||||
|  | ||||
| class VirtualKeyboard(QFrame): | ||||
|     keyPressed = Signal(str) | ||||
|  | ||||
|     def __init__(self, parent: QWidget | None = None): | ||||
|     def __init__(self, parent: QWidget | None = None, theme=None): | ||||
|         super().__init__(parent) | ||||
|         self._parent: QWidget | None = parent | ||||
|         self.available_layouts: list[str] = self.get_layouts_setxkbmap() | ||||
|         self.theme = theme if theme else theme_manager.apply_theme(read_theme_from_config()) | ||||
|         if not self.available_layouts: | ||||
|             self.available_layouts.append('en') | ||||
|         self.current_layout: str = self.available_layouts[0] | ||||
| @@ -32,33 +37,7 @@ class VirtualKeyboard(QFrame): | ||||
|         self.initUI() | ||||
|         self.hide() | ||||
|  | ||||
|         self.setStyleSheet(""" | ||||
|             VirtualKeyboard { | ||||
|                 background-color: rgba(0, 0, 0, 200);  /* Полупрозрачный серый */ | ||||
|                 border-radius: 5px; | ||||
|                 border: 1px solid #ccc; | ||||
|             } | ||||
|             QPushButton { | ||||
|                 font-size: 14px; | ||||
|                 border: 1px solid #888; | ||||
|                 border-radius: 3px; | ||||
|                 min-width: 30px; | ||||
|                 min-height: 30px; | ||||
|                 padding: 0px; | ||||
|             } | ||||
|             QPushButton:pressed { | ||||
|                 background-color: #d0d0d0; | ||||
|             } | ||||
|             QPushButton[checked="true"] { | ||||
|                 background-color: #a0c4ff; | ||||
|                 border: 1px solid #4a90e2; | ||||
|             } | ||||
|             QPushButton[checked="true"] { | ||||
|                 background-color: #4a90e2; | ||||
|                 color: white; | ||||
|                 border: 2px solid #1a73e8; | ||||
|             } | ||||
|         """) | ||||
|         self.setStyleSheet(self.theme.VIRTUAL_KEYBOARD_STYLE) | ||||
|  | ||||
|     def highlight_cursor_position(self): | ||||
|         """Подсвечиваем текущую позицию курсора""" | ||||
| @@ -74,20 +53,18 @@ class VirtualKeyboard(QFrame): | ||||
|         layout.setSpacing(0) | ||||
|  | ||||
|         self.keyboard_layout = QGridLayout() | ||||
|         self.keyboard_layout.setSpacing(1) | ||||
|         self.keyboard_layout.setContentsMargins(0, 0, 0, 0) | ||||
|         self.keyboard_layout.setSpacing(4) | ||||
|         self.keyboard_layout.setContentsMargins(5, 5, 5, 5) | ||||
|         self.create_keyboard() | ||||
|  | ||||
|         keyboard_container = QWidget() | ||||
|         keyboard_container.setLayout(self.keyboard_layout) | ||||
|         # keyboard_container.setFixedSize(660, 220) | ||||
|         keyboard_container.setMinimumWidth(574) | ||||
|         keyboard_container.setMinimumHeight(220) | ||||
|         keyboard_container.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) | ||||
|  | ||||
|         layout.addWidget(keyboard_container, 0, Qt.AlignmentFlag.AlignHCenter) | ||||
|         self.setLayout(layout) | ||||
|         # self.setMinimumHeight(240) | ||||
|         self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) | ||||
|  | ||||
|     def run_shell_command(self, cmd: str) -> str | None: | ||||
| @@ -471,7 +448,7 @@ class VirtualKeyboard(QFrame): | ||||
|         """Активирует текущую выделенную кнопку на клавиатуре""" | ||||
|         focused = self.focusWidget() | ||||
|         if isinstance(focused, QPushButton): | ||||
|             focused.click() | ||||
|             focused.animateClick() | ||||
|  | ||||
|     def focusNextKey(self, direction: str): | ||||
|         """Перемещает фокус на следующую кнопку в указанном направлении""" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user