mirror of
https://github.com/QuasarApp/Snake.git
synced 2025-05-05 22:19:45 +00:00
Merge branch 'main' into task_72
This commit is contained in:
commit
c8746abe3b
@ -73,3 +73,16 @@ if(QT_VERSION_MAJOR EQUAL 6)
|
||||
qt_import_qml_plugins(${CURRENT_PROJECT})
|
||||
qt_finalize_executable(${CURRENT_PROJECT})
|
||||
endif()
|
||||
|
||||
set(LANGS ${CMAKE_CURRENT_SOURCE_DIR}/languages/en.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/ru.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/uk.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/ja.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/tr.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/zh.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/de.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/fr.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/es.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/pl.ts)
|
||||
|
||||
prepareQM(${CURRENT_PROJECT} ${CMAKE_CURRENT_SOURCE_DIR}/../ "${LANGS}")
|
||||
|
14
src/Client/CrawlClient.qrc
Normal file
14
src/Client/CrawlClient.qrc
Normal file
@ -0,0 +1,14 @@
|
||||
<RCC>
|
||||
<qresource prefix="/crawlTranslations">
|
||||
<file>languages/de.qm</file>
|
||||
<file>languages/en.qm</file>
|
||||
<file>languages/es.qm</file>
|
||||
<file>languages/fr.qm</file>
|
||||
<file>languages/ja.qm</file>
|
||||
<file>languages/pl.qm</file>
|
||||
<file>languages/ru.qm</file>
|
||||
<file>languages/tr.qm</file>
|
||||
<file>languages/uk.qm</file>
|
||||
<file>languages/zh.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
@ -11,7 +11,22 @@
|
||||
#include <Crawl/clientapp.h>
|
||||
#include <testlvl.h>
|
||||
#include <abstractlvl.h>
|
||||
#include <quasarapp.h>
|
||||
|
||||
void initLang() {
|
||||
QLocale locale = QLocale::system();
|
||||
QString customLanguage = QuasarAppUtils::Params::getArg("lang");
|
||||
if(customLanguage.size()) {
|
||||
locale = QLocale(customLanguage);
|
||||
}
|
||||
|
||||
if(!QuasarAppUtils::Locales::init(locale, {":/crawlTranslations/languages/",
|
||||
":/credits_languages/",
|
||||
":/qmlNotify_languages/",
|
||||
":/lv_languages/"})){
|
||||
QuasarAppUtils::Params::log("Error load language : ", QuasarAppUtils::Error);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
@ -29,5 +44,8 @@ int main(int argc, char *argv[])
|
||||
if (!client.init(&engine)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
initLang();
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
|
@ -35,17 +35,4 @@ target_link_libraries(${CURRENT_PROJECT} PUBLIC
|
||||
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
|
||||
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
|
||||
|
||||
set(LANGS ${CMAKE_CURRENT_SOURCE_DIR}/languages/en.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/ru.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/uk.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/ja.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/tr.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/zh.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/de.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/fr.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/es.ts
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/pl.ts)
|
||||
|
||||
prepareQM(${CURRENT_PROJECT} ${CMAKE_CURRENT_SOURCE_DIR}/../ "${LANGS}")
|
||||
|
||||
set(QML_IMPORT_PATH ${QML_IMPORT_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/" CACHE STRING "" FORCE)
|
||||
|
@ -14,19 +14,4 @@
|
||||
<file>CrawlModule/DefaultMenu.qml</file>
|
||||
<file>CrawlModule/AbstractMenuView.qml</file>
|
||||
</qresource>
|
||||
<qresource prefix="/SnakeTr">
|
||||
<file>languages/de.qm</file>
|
||||
<file>languages/en.qm</file>
|
||||
<file>languages/es.qm</file>
|
||||
<file>languages/fr.qm</file>
|
||||
<file>languages/ja.qm</file>
|
||||
<file>languages/pl.qm</file>
|
||||
<file>languages/ru.qm</file>
|
||||
<file>languages/tr.qm</file>
|
||||
<file>languages/zh.qm</file>
|
||||
<file>languages/uk.qm</file>
|
||||
</qresource>
|
||||
<qresource prefix="/images"/>
|
||||
<qresource prefix="/mesh"/>
|
||||
<qresource prefix="/hdr"/>
|
||||
</RCC>
|
||||
|
@ -54,21 +54,6 @@ ClientApp::~ClientApp() {
|
||||
_availableLvls.clear();
|
||||
}
|
||||
|
||||
void ClientApp::initLang() {
|
||||
QLocale locale = QLocale::system();
|
||||
QString customLanguage = QuasarAppUtils::Params::getArg("lang");
|
||||
if(customLanguage.size()) {
|
||||
locale = QLocale(customLanguage);
|
||||
}
|
||||
|
||||
if(!QuasarAppUtils::Locales::init(locale, {":/languages/languages/",
|
||||
":/credits_languages/",
|
||||
":/qmlNotify_languages/",
|
||||
":/lv_languages/"})){
|
||||
QuasarAppUtils::Params::log("Error load language : " , QuasarAppUtils::Error);
|
||||
}
|
||||
}
|
||||
|
||||
IWorld *ClientApp::getLastWorld() {
|
||||
for (const auto &data : qAsConst(_availableLvls)) {
|
||||
if (data.viewModel && data.viewModel->unlocked()) {
|
||||
@ -120,7 +105,6 @@ bool ClientApp::init(QQmlApplicationEngine *engine) {
|
||||
"Error: only enums");
|
||||
|
||||
initCrawlResources();
|
||||
initLang();
|
||||
|
||||
engine->addImportPath(":/CrawlModule/");
|
||||
|
||||
|
@ -67,7 +67,6 @@ public:
|
||||
|
||||
private:
|
||||
QByteArray initTheme();
|
||||
void initLang();
|
||||
IWorld* getLastWorld();
|
||||
|
||||
/**
|
||||
|
@ -165,10 +165,10 @@ bool IWorld::prepare() {
|
||||
}
|
||||
|
||||
void IWorld::clearItems() {
|
||||
QMutexLocker lock(&_ItemsMutex);
|
||||
stop();
|
||||
|
||||
for (const auto& item : qAsConst(_items)) {
|
||||
delete item;
|
||||
while (_items.cbegin() != _items.cend()) {
|
||||
removeItem(*_items.cbegin());
|
||||
}
|
||||
|
||||
_items.clear();
|
||||
@ -202,16 +202,18 @@ void IWorld::addItem(IWorldItem *obj, QList<int> *addedObjectsList) {
|
||||
}
|
||||
|
||||
void IWorld::removeItem(int id, QList<int> *removedObjectsList) {
|
||||
removeItem(getItem(id), removedObjectsList);
|
||||
}
|
||||
|
||||
auto obj = getItem(id);
|
||||
void IWorld::removeItem(IWorldItem* item, QList<int> *removedObjectsList) {
|
||||
|
||||
if (!obj)
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
Diff diff;
|
||||
|
||||
// Work wih claster
|
||||
if (auto claster = dynamic_cast<Claster*>(obj)) {
|
||||
if (auto claster = dynamic_cast<Claster*>(item)) {
|
||||
const auto copyOfObjectsList = claster->objects();
|
||||
for (auto item : copyOfObjectsList) {
|
||||
if (!item || item->parentClastersCount() > 1)
|
||||
@ -226,8 +228,8 @@ void IWorld::removeItem(int id, QList<int> *removedObjectsList) {
|
||||
}
|
||||
}
|
||||
|
||||
removeAtomicItem(obj);
|
||||
diff.removeIds.push_back(id);
|
||||
removeAtomicItem(item);
|
||||
diff.removeIds.push_back(item->guiId());
|
||||
|
||||
if (removedObjectsList)
|
||||
*removedObjectsList = diff.removeIds;
|
||||
@ -238,7 +240,6 @@ void IWorld::removeItem(int id, QList<int> *removedObjectsList) {
|
||||
void IWorld::reset() {
|
||||
|
||||
if (_player) {
|
||||
delete _player;
|
||||
_player = nullptr;
|
||||
}
|
||||
|
||||
@ -287,7 +288,7 @@ bool IWorld::removeAtomicItem(int id) {
|
||||
_itemsGroup.remove(obj->className(), id);
|
||||
_items.remove(id);
|
||||
|
||||
delete obj;
|
||||
obj->deleteLater();
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -302,7 +303,7 @@ bool IWorld::removeAtomicItem(IWorldItem *obj) {
|
||||
_itemsGroup.remove(obj->className(), obj->guiId());
|
||||
_items.remove(obj->guiId());
|
||||
|
||||
delete obj;
|
||||
obj->deleteLater();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -419,10 +419,19 @@ private:
|
||||
* @brief removeItem This method remove item from the world. If the @a id are id of the claster object then its child object will be removed too.
|
||||
* @param id This is id of removed object.
|
||||
* @param removedObjectsList This is list of removed objects. Leave this argument nullptr for ignore this argument.
|
||||
* @note this is wrapper of the removeItem(IWorldItem*, QList<int>*);
|
||||
*/
|
||||
void removeItem(int id,
|
||||
QList<int>* removedObjectsList = nullptr);
|
||||
|
||||
/**
|
||||
* @brief removeItem This method remove item from the world. If the @a id are id of the claster object then its child object will be removed too.
|
||||
* @param item This is object than will be removed.
|
||||
* @param removedObjectsList This is list of removed objects. Leave this argument nullptr for ignore this argument.
|
||||
*/
|
||||
void removeItem(IWorldItem* item,
|
||||
QList<int>* removedObjectsList = nullptr);
|
||||
|
||||
/**
|
||||
* @brief addAtomicItem This method execure atomic operation of add new item. This method support only atomic objects. (not clasters)
|
||||
* @param obj This is pointer to the atomic object. If the object are claster then it will be added without childs objects.
|
||||
|
Loading…
x
Reference in New Issue
Block a user