1 Commits
9 changed files with 34 additions and 12 deletions
+6
View File
@@ -97,6 +97,12 @@
</provides> </provides>
<releases> <releases>
<release version="0.3.1" date="2026-03-19">
<description>
<p>Open tables folder from tile menu, shortened menu labels, language selector fully localized, screenshot height fix.</p>
<p xml:lang="ru">Открытие папки таблиц из меню, сокращённые пункты меню, полная локализация выбора языка, исправление высоты скриншотов.</p>
</description>
</release>
<release version="0.3.0" date="2026-03-19"> <release version="0.3.0" date="2026-03-19">
<description> <description>
<p>Code split into modules, new icon, screenshots, version check before download, full localization sync.</p> <p>Code split into modules, new icon, screenshots, version check before download, full localization sync.</p>
+7 -4
View File
@@ -4,7 +4,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vual 0.3.0\n" "Project-Id-Version: vual 0.3.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-19 00:00+0000\n" "POT-Creation-Date: 2026-03-19 00:00+0000\n"
"PO-Revision-Date: 2026-03-19 00:00+0000\n" "PO-Revision-Date: 2026-03-19 00:00+0000\n"
@@ -248,15 +248,18 @@ msgstr "Refresh cover"
msgid "Launch game" msgid "Launch game"
msgstr "Launch game" msgstr "Launch game"
msgid "Launch Cheat Engine" msgid "Launch CE"
msgstr "Launch Cheat Engine" msgstr "Launch CE"
msgid "Assign table…" msgid "Assign table…"
msgstr "Assign table…" msgstr "Assign…"
msgid "Remove table" msgid "Remove table"
msgstr "Remove table" msgstr "Remove table"
msgid "Tables folder"
msgstr "Tables folder"
msgid "Select Cheat Engine table" msgid "Select Cheat Engine table"
msgstr "Select Cheat Engine table" msgstr "Select Cheat Engine table"
+7 -4
View File
@@ -4,7 +4,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vual 0.3.0\n" "Project-Id-Version: vual 0.3.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-19 00:00+0000\n" "POT-Creation-Date: 2026-03-19 00:00+0000\n"
"PO-Revision-Date: 2026-03-19 00:00+0000\n" "PO-Revision-Date: 2026-03-19 00:00+0000\n"
@@ -254,15 +254,18 @@ msgstr "Обновить обложку"
msgid "Launch game" msgid "Launch game"
msgstr "Запустить игру" msgstr "Запустить игру"
msgid "Launch Cheat Engine" msgid "Launch CE"
msgstr "Запустить Cheat Engine" msgstr "Запуск CE"
msgid "Assign table…" msgid "Assign table…"
msgstr "Назначить таблицу…" msgstr "Назначить…"
msgid "Remove table" msgid "Remove table"
msgstr "Убрать таблицу" msgstr "Убрать таблицу"
msgid "Tables folder"
msgstr "Папка таблиц"
msgid "Select Cheat Engine table" msgid "Select Cheat Engine table"
msgstr "Выберите таблицу Cheat Engine" msgstr "Выберите таблицу Cheat Engine"
+1 -1
View File
@@ -1,6 +1,6 @@
[project] [project]
name = "vual" name = "vual"
version = "0.3.0" version = "0.3.1"
description = "Launch Cheat Engine for Steam games via Proton" description = "Launch Cheat Engine for Steam games via Proton"
readme = "README.md" readme = "README.md"
license = "GPL-3.0-or-later" license = "GPL-3.0-or-later"
+1 -1
View File
@@ -2,7 +2,7 @@
from pathlib import Path from pathlib import Path
__version__ = "0.3.0" __version__ = "0.3.1"
APP_ID = "io.github.vual" APP_ID = "io.github.vual"
APP_NAME = "Vual" APP_NAME = "Vual"
Binary file not shown.
Binary file not shown.
+11 -2
View File
@@ -90,7 +90,8 @@ class GameTile(Gtk.Overlay):
self._update_ce_tooltip() self._update_ce_tooltip()
ce_menu = Gio.Menu() ce_menu = Gio.Menu()
ce_menu.append(_("Launch Cheat Engine"), "tile.launch-ce") ce_menu.append(_("Launch CE"), "tile.launch-ce")
ce_menu.append(_("Tables folder"), "tile.open-tables-folder")
ce_menu.append(_("Assign table\u2026"), "tile.assign-table") ce_menu.append(_("Assign table\u2026"), "tile.assign-table")
ce_menu.append(_("Remove table"), "tile.remove-table") ce_menu.append(_("Remove table"), "tile.remove-table")
@@ -113,6 +114,10 @@ class GameTile(Gtk.Overlay):
self._act_remove.set_enabled(tables.get_table(self._app_id) is not None) self._act_remove.set_enabled(tables.get_table(self._app_id) is not None)
group.add_action(self._act_remove) group.add_action(self._act_remove)
act_open_folder = Gio.SimpleAction.new("open-tables-folder", None)
act_open_folder.connect("activate", lambda *_: self._on_open_tables_folder())
group.add_action(act_open_folder)
self.insert_action_group("tile", group) self.insert_action_group("tile", group)
row.append(self._btn_ce) row.append(self._btn_ce)
@@ -223,12 +228,16 @@ class GameTile(Gtk.Overlay):
self._act_remove.set_enabled(False) self._act_remove.set_enabled(False)
self._update_ce_tooltip() self._update_ce_tooltip()
def _on_open_tables_folder(self) -> None:
tables.TABLES_DIR.mkdir(parents=True, exist_ok=True)
Gtk.FileLauncher.new(Gio.File.new_for_path(str(tables.TABLES_DIR))).launch(None, None, None)
def _update_ce_tooltip(self) -> None: def _update_ce_tooltip(self) -> None:
name = tables.get_table_name(self._app_id) name = tables.get_table_name(self._app_id)
if name: if name:
self._btn_ce.set_tooltip_text(f"CE: {name}") self._btn_ce.set_tooltip_text(f"CE: {name}")
else: else:
self._btn_ce.set_tooltip_text(_("Launch Cheat Engine")) self._btn_ce.set_tooltip_text(_("Launch CE"))
def mark_table_bound(self) -> None: def mark_table_bound(self) -> None:
"""Refresh table indicator after binding.""" """Refresh table indicator after binding."""
+1
View File
@@ -358,6 +358,7 @@ class MainPage(Adw.Bin):
"""Open file chooser to select a .CT table for *app_id*.""" """Open file chooser to select a .CT table for *app_id*."""
dialog = Gtk.FileDialog() dialog = Gtk.FileDialog()
dialog.set_title(_("Select Cheat Engine table")) dialog.set_title(_("Select Cheat Engine table"))
dialog.set_initial_folder(Gio.File.new_for_path(str(tables.TABLES_DIR)))
f = Gtk.FileFilter() f = Gtk.FileFilter()
f.set_name(_("CE tables (*.CT)")) f.set_name(_("CE tables (*.CT)"))