path fixes

This commit is contained in:
2026-09-21 01:23:00 +03:00
parent 5dba4e89cb
commit 441021b9a6
4 changed files with 6 additions and 27 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.20)
project(Minecraft_launcher VERSION 0.1 LANGUAGES CXX C)
project(BiLauncher VERSION 0.1 LANGUAGES CXX C)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(QT_NO_PRIVATE_MODULE_WARNING ON)
@@ -69,7 +69,7 @@ qt_add_resources(BiLauncher "appicon"
)
qt_add_qml_module(BiLauncher
URI Minecraft_launcher
URI BiLauncher
SOURCES
localization.h
localization.cpp
+1 -1
View File
@@ -1,7 +1,7 @@
import QtQuick
import QtQuick.Layouts 2.15
import QtQuick.Controls 2.15
import Minecraft_launcher
import BiLauncher
Window {
id: window
+2 -23
View File
@@ -15,24 +15,10 @@
#include <utility>
// ── Про потоки ──────────────────────────────────────────────────────────────
//
// Каталог (m_singles, m_lists, m_codes, m_displayNames) заполняется ровно один
// раз в load(), который отрабатывает в main() до того, как BuildSwitcher создаст
// свой QThread. Дальше эти поля только читаются, а копирование QString из хэша
// безопасно само по себе — поэтому Loc::text() зовётся из рабочего потока
// BuildArchiveWorker без единой блокировки.
//
// Единственное, что меняется на ходу, — m_index, и он QAtomicInt. В худшем
// случае сообщение, уже собиравшееся в момент переключения, уедет на прежнем
// языке; заметить это невозможно.
//
// setLanguage(), m_tree, rebuildTree() и languageChanged — только GUI-поток.
namespace {
const QString kCatalogPath =
QStringLiteral(":/qt/qml/Minecraft_launcher/i18n/translations.json");
QStringLiteral(":/qt/qml/BiLauncher/i18n/translations.json");
const QString kSystem = QStringLiteral("system");
@@ -43,9 +29,6 @@ QString systemLanguage()
: QStringLiteral("en");
}
// Язык из settings.json. Читается напрямую, не через LauncherBackend: тот
// появляется только вместе с QML, а язык нужен раньше первой привязки.
// Обратной зависимости это не создаёт — файл только читается.
QString storedLanguage()
{
QFile file(LauncherPaths::settingsFile());
@@ -60,7 +43,7 @@ QString storedLanguage()
return value.isString() ? value.toString() : kSystem;
}
} // namespace
}
Localization::Localization(QObject *parent)
: QObject(parent)
@@ -78,8 +61,6 @@ Localization *Localization::create(QQmlEngine *, QJSEngine *jsEngine)
Localization &loc = instance();
loc.m_engine = jsEngine;
loc.rebuildTree();
// Синглтон живёт до конца процесса и движку не принадлежит — иначе сборщик
// мусора QML попытается удалить статический объект.
QJSEngine::setObjectOwnership(&loc, QJSEngine::CppOwnership);
return &loc;
}
@@ -132,8 +113,6 @@ bool Localization::load()
m_lists.clear();
for (auto it = strings.constBegin(); it != strings.constEnd(); ++it) {
const QJsonObject entry = it.value().toObject();
// Тип значения определяется по первому языку и обязан совпадать у всех:
// за этим следит tools/check_translations.py.
const bool isList = entry.value(m_codes.first()).isArray();
if (isList) {
+1 -1
View File
@@ -59,7 +59,7 @@ int main(int argc, char *argv[])
&app,
[]() { QCoreApplication::exit(-1); },
Qt::QueuedConnection);
engine.loadFromModule("Minecraft_launcher", "Main");
engine.loadFromModule("BiLauncher", "Main");
return app.exec();
}