3 Commits

Author SHA1 Message Date
131f0f2f58 chore(localization): update
All checks were successful
Check Translations / check-translations (push) Successful in 14s
Code and build check / Check code (push) Successful in 1m38s
Code and build check / Build with uv (push) Successful in 51s
Fetch Data / build (push) Successful in 1m2s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-07-01 00:16:17 +05:00
e1e3092870 feat(dialogs): rewrite Preview widget
All checks were successful
Code and build check / Check code (pull_request) Successful in 1m38s
Code and build check / Build with uv (pull_request) Successful in 50s
2025-07-01 00:13:08 +07:00
8902751d09 fix: border-radius COVER_LABEL_STYLE 2025-06-30 20:36:12 +07:00
9 changed files with 70 additions and 53 deletions

View File

@@ -3,7 +3,7 @@ import tempfile
from typing import cast, TYPE_CHECKING
from PySide6.QtGui import QPixmap, QIcon
from PySide6.QtWidgets import (
QDialog, QLineEdit, QFormLayout, QHBoxLayout, QLabel, QVBoxLayout, QListWidget, QScrollArea, QWidget, QListWidgetItem
QDialog, QLineEdit, QFormLayout, QHBoxLayout, QLabel, QVBoxLayout, QListWidget, QScrollArea, QWidget, QListWidgetItem, QSizePolicy
)
from PySide6.QtCore import Qt, QObject, Signal, QMimeDatabase, QTimer
from icoextract import IconExtractor, IconExtractorError
@@ -424,6 +424,7 @@ class AddGameDialog(QDialog):
self.setWindowTitle(_("Edit Game") if edit_mode else _("Add Game"))
self.setModal(True)
self.setFixedWidth(600)
self.setFixedHeight(600)
self.setStyleSheet(self.theme.MAIN_WINDOW_STYLE + self.theme.MESSAGE_BOX_STYLE)
layout = QFormLayout(self)
@@ -437,13 +438,13 @@ class AddGameDialog(QDialog):
if game_name:
self.nameEdit.setText(game_name)
name_label = QLabel(_("Game Name:"))
name_label.setStyleSheet(self.theme.PARAMS_TITLE_STYLE + " QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }")
name_label.setStyleSheet(self.theme.PARAMS_TITLE_STYLE)
layout.addRow(name_label, self.nameEdit)
# Exe path
exe_label = QLabel(_("Path to Executable:"))
exe_label.setStyleSheet(
self.theme.PARAMS_TITLE_STYLE + " QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }")
self.theme.PARAMS_TITLE_STYLE)
self.exeEdit = QLineEdit(self)
self.exeEdit.setStyleSheet(self.theme.ADDGAME_INPUT_STYLE)
@@ -465,8 +466,7 @@ class AddGameDialog(QDialog):
# Cover path
cover_label = QLabel(_("Custom Cover:"))
cover_label.setStyleSheet(
self.theme.PARAMS_TITLE_STYLE + " QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }")
cover_label.setStyleSheet(self.theme.PARAMS_TITLE_STYLE)
self.coverEdit = QLineEdit(self)
self.coverEdit.setStyleSheet(self.theme.ADDGAME_INPUT_STYLE)
@@ -486,15 +486,23 @@ class AddGameDialog(QDialog):
# Preview
self.coverPreview = QLabel(self)
self.coverPreview.setStyleSheet(self.theme.CONTENT_STYLE + " QLabel { color: #ffffff; }")
self.coverPreview.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.coverPreview.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
preview_widget = QWidget(self)
preview_widget.setStyleSheet(self.theme.PREVIEW_WIDGET_STYLE)
preview_layout = QVBoxLayout(preview_widget)
preview_layout.setContentsMargins(0, 0, 0, 0)
preview_layout.setSpacing(0)
preview_label = QLabel(_("Cover Preview:"))
preview_label.setStyleSheet(self.theme.PARAMS_TITLE_STYLE + " QLabel { color: #ffffff; font-size: 14px; font-weight: bold; }")
layout.addRow(preview_label, self.coverPreview)
preview_label.setStyleSheet(self.theme.PARAMS_TITLE_STYLE)
preview_layout.addWidget(preview_label, alignment=Qt.AlignmentFlag.AlignLeft)
preview_layout.addWidget(self.coverPreview, stretch=1)
layout.addRow(preview_widget)
# Dialog buttons
self.button_layout = QHBoxLayout()
self.button_layout.setSpacing(10)
self.select_button = AutoSizeButton(_("Select"), icon=self.theme_manager.get_icon("apply"))
self.select_button = AutoSizeButton(_("Apply"), icon=self.theme_manager.get_icon("apply"))
self.cancel_button = AutoSizeButton(_("Cancel"), icon=self.theme_manager.get_icon("cancel"))
self.select_button.setStyleSheet(self.theme.ACTION_BUTTON_STYLE)
self.cancel_button.setStyleSheet(self.theme.ACTION_BUTTON_STYLE)

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-06-28 09:04+0500\n"
"POT-Creation-Date: 2025-07-01 00:15+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de_DE\n"
@@ -87,9 +87,6 @@ msgstr ""
msgid "Failed to open folder: {error}"
msgstr ""
msgid "Select Game Installation Folder"
msgstr ""
msgid "No folder selected"
msgstr ""
@@ -250,10 +247,10 @@ msgstr ""
msgid "Game Name:"
msgstr ""
msgid "Browse..."
msgid "Path to Executable:"
msgstr ""
msgid "Path to Executable:"
msgid "Browse..."
msgstr ""
msgid "Custom Cover:"
@@ -262,6 +259,9 @@ msgstr ""
msgid "Cover Preview:"
msgstr ""
msgid "Apply"
msgstr ""
msgid "Invalid image"
msgstr ""

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-06-28 09:04+0500\n"
"POT-Creation-Date: 2025-07-01 00:15+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: es_ES\n"
@@ -87,9 +87,6 @@ msgstr ""
msgid "Failed to open folder: {error}"
msgstr ""
msgid "Select Game Installation Folder"
msgstr ""
msgid "No folder selected"
msgstr ""
@@ -250,10 +247,10 @@ msgstr ""
msgid "Game Name:"
msgstr ""
msgid "Browse..."
msgid "Path to Executable:"
msgstr ""
msgid "Path to Executable:"
msgid "Browse..."
msgstr ""
msgid "Custom Cover:"
@@ -262,6 +259,9 @@ msgstr ""
msgid "Cover Preview:"
msgstr ""
msgid "Apply"
msgstr ""
msgid "Invalid image"
msgstr ""

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PortProtonQt 0.1.1\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-06-28 09:04+0500\n"
"POT-Creation-Date: 2025-07-01 00:15+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -85,9 +85,6 @@ msgstr ""
msgid "Failed to open folder: {error}"
msgstr ""
msgid "Select Game Installation Folder"
msgstr ""
msgid "No folder selected"
msgstr ""
@@ -248,10 +245,10 @@ msgstr ""
msgid "Game Name:"
msgstr ""
msgid "Browse..."
msgid "Path to Executable:"
msgstr ""
msgid "Path to Executable:"
msgid "Browse..."
msgstr ""
msgid "Custom Cover:"
@@ -260,6 +257,9 @@ msgstr ""
msgid "Cover Preview:"
msgstr ""
msgid "Apply"
msgstr ""
msgid "Invalid image"
msgstr ""

View File

@@ -9,18 +9,17 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-06-28 09:04+0500\n"
"PO-Revision-Date: 2025-06-28 09:05+0500\n"
"POT-Creation-Date: 2025-07-01 00:15+0500\n"
"PO-Revision-Date: 2025-07-01 00:15+0500\n"
"Last-Translator: \n"
"Language-Team: ru_RU <LL@li.org>\n"
"Language: ru_RU\n"
"Language-Team: ru_RU <LL@li.org>\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 "
"&& (n%100<10 || n%100>=20) ? 1 : 2);\n"
"Generated-By: Babel 2.17.0\n"
"X-Generator: Poedit 3.6\n"
msgid "Error"
msgstr "Ошибка"
@@ -73,11 +72,11 @@ msgstr "Успешно"
#, python-brace-format
msgid ""
"'{game_name}' was added to Steam. Please restart Steam for changes to take "
"effect."
"'{game_name}' was added to Steam. Please restart Steam for changes to "
"take effect."
msgstr ""
"'{game_name}' был(а) добавлен(а) в Steam. Пожалуйста, перезапустите Steam, "
"чтобы изменения вступили в силу."
"'{game_name}' был(а) добавлен(а) в Steam. Пожалуйста, перезапустите "
"Steam, чтобы изменения вступили в силу."
#, python-brace-format
msgid "Executable not found for game: {game_name}"
@@ -91,9 +90,6 @@ msgstr "Открыта папка для '{game_name}'"
msgid "Failed to open folder: {error}"
msgstr "Не удалось открыть папку для игры: {error}"
msgid "Select Game Installation Folder"
msgstr "Выберите папку установки игры"
msgid "No folder selected"
msgstr "Не выбрана ни одна папка"
@@ -184,11 +180,11 @@ msgstr "Подтвердите удаление"
#, python-brace-format
msgid ""
"Are you sure you want to delete '{game_name}'? This will remove the .desktop "
"file and custom data."
"Are you sure you want to delete '{game_name}'? This will remove the "
".desktop file and custom data."
msgstr ""
"Вы уверены, что хотите удалить '{game_name}'? Это приведёт к удалению файла ."
"desktop и пользовательских данных."
"Вы уверены, что хотите удалить '{game_name}'? Это приведёт к удалению "
"файла .desktop и пользовательских данных."
#, python-brace-format
msgid "Failed to delete .desktop file: {error}"
@@ -230,11 +226,11 @@ msgstr "Не удалось добавить '{game_name}' в Steam: {error}"
#, python-brace-format
msgid ""
"'{game_name}' was removed from Steam. Please restart Steam for changes to take "
"effect."
"'{game_name}' was removed from Steam. Please restart Steam for changes to"
" take effect."
msgstr ""
"'{game_name}' был(а) удалён(а) из Steam. Пожалуйста, перезапустите Steam, чтобы "
"изменения вступили в силу."
"'{game_name}' был(а) удалён(а) из Steam. Пожалуйста, перезапустите Steam,"
" чтобы изменения вступили в силу."
#, python-brace-format
msgid "Failed to remove game '{game_name}' from Steam: {error}"
@@ -258,18 +254,21 @@ msgstr "Добавить игру"
msgid "Game Name:"
msgstr "Имя игры:"
msgid "Browse..."
msgstr "Обзор..."
msgid "Path to Executable:"
msgstr "Путь к исполняемому файлу:"
msgid "Browse..."
msgstr "Обзор..."
msgid "Custom Cover:"
msgstr "Обложка:"
msgid "Cover Preview:"
msgstr "Предпросмотр обложки:"
msgid "Apply"
msgstr "Применить"
msgid "Invalid image"
msgstr "Недопустимое изображение"
@@ -477,7 +476,8 @@ msgstr "Подтвердите удаление"
msgid "Are you sure you want to reset all settings? This action cannot be undone."
msgstr ""
"Вы уверены, что хотите сбросить все настройки? Это действие нельзя отменить."
"Вы уверены, что хотите сбросить все настройки? Это действие нельзя "
"отменить."
msgid "Settings reset. Restarting..."
msgstr "Настройки сброшены. Перезапуск..."
@@ -622,3 +622,4 @@ msgstr "мин."
msgid "sec."
msgstr "сек."

View File

@@ -410,6 +410,14 @@ CONTENT_STYLE = f"""
}}
"""
PREVIEW_WIDGET_STYLE = f"""
QWidget {{
margin-top: 3px;
background-color: {color_c};
border-radius: {border_radius_a};
}}
"""
# СТИЛЬ ОСНОВНЫХ СТРАНИЦ
# LIBRARY_WIDGET_STYLE
LIBRARY_WIDGET_STYLE= """
@@ -487,7 +495,7 @@ COVER_FRAME_STYLE = f"""
"""
# СКРУГЛЕНИЕ LABEL ПОД ОБЛОЖКУ
COVER_LABEL_STYLE = "border-radius: 100px;"
COVER_LABEL_STYLE = f"border-radius: {border_radius_b};"
# ВИДЖЕТ ДЕТАЛЕЙ (ТЕКСТ, ОПИСАНИЕ)
DETAILS_WIDGET_STYLE = f"background: rgba(20,20,20,0.40); border-radius: {border_radius_b}; padding: 10px;"