Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 2 additions & 24 deletions src/Convert.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "Unsorted.hpp"
#include "Windows/Locale.hpp"
#include "Convert.hpp"
using namespace std;

Expand All @@ -24,27 +24,5 @@ namespace Convert
return retList;
}

Languages LangEnumFromLocale(const QString& locale)
{
QString lowerLocale = locale.toLower();

for(auto elem = PROGRAM_CONSTANTS->LANGUAGES_STRINGS.cbegin(); elem != PROGRAM_CONSTANTS->LANGUAGES_STRINGS.cend(); ++elem)
if (Unsorted::GetLanguageShortName(elem.key()) == lowerLocale)
return elem.key();

return Languages::English;
}

Languages ToLangEnum(const std::string& locale) { return LangEnumFromLocale(QString::fromStdString(locale)); }
Languages ToLangEnum(const QString& locale) { return LangEnumFromLocale(locale); }
Qt::Key ToQtKey(const QChar& ch) { return static_cast<Qt::Key>(QChar(ch).unicode()); }

QString ToQString(const Languages& locale)
{
for(auto elem = PROGRAM_CONSTANTS->LANGUAGES_STRINGS.cbegin(); elem != PROGRAM_CONSTANTS->LANGUAGES_STRINGS.cend(); ++elem)
if (elem.key() == locale)
return elem.value().first;

return "en";
}
Qt::Key ToQtKey(const QChar& ch) { return static_cast<Qt::Key>(QChar(ch).unicode()); }
}
6 changes: 0 additions & 6 deletions src/Convert.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,6 @@ namespace Convert
QStringList ToQStringList(const std::list<std::string>& srcList);
/// @brief Returns list `std::list` of `std::string` as element by converting `QStringList<QString>` value.
inline std::list<std::string> ToStdStringList(const QStringList& srcList);
/// @brief Return enum `Languages` value that equivalent to the text value.
Languages ToLangEnum(const std::string& locale);
/// @brief Return enum `Languages` value that equivalent to the text value.
Languages ToLangEnum(const QString& locale);
/// @brief Converts `QChar` to `Qt::Key` enum equivalent.
Qt::Key ToQtKey(const QChar& ch);
/// @brief Converts enum `Language` to `QString`.
QString ToQString(const Languages& locale);
}
17 changes: 8 additions & 9 deletions src/Faction.cpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#include <QSet>
#include "Windows/Locale.hpp"
#include "Parsers/CSFParser.hpp"
#include "Parsers/JSONFile.hpp"
#include "Logger.hpp"
#include "Faction.hpp"
#include "Unsorted.hpp"

Faction::Faction(const QString& _shortName, const QString& _displayName, const QString& _displayNameDescription)
: shortName{_shortName}
Expand All @@ -18,15 +18,14 @@ Faction::Faction(const QJsonObject& factionAsObject)
, displayNameDescription{factionAsObject[PROGRAM_CONSTANTS->DISPLAY_NAME_DESCRIPTION].toString()}
, techTree{ParseJsonObject(factionAsObject)}
{
for (int currLng = 0; currLng < static_cast<int>(Languages::Count); currLng++)
for (size_t lng : PROGRAM_CONSTANTS->Languages.keys())
{
QString _displayName = "";
QString _displayNameDescription = "";
Languages lng = static_cast<Languages>(currLng);

if (lng != Languages::English)
if (lng != PROGRAM_CONSTANTS->DEFAULT_LANGUAGE_CODE)
{
auto translatedNames = factionAsObject[Unsorted::GetLanguageShortName(lng)].toObject();
auto translatedNames = factionAsObject[PROGRAM_CONSTANTS->Languages.value(lng).first].toObject();

if (!translatedNames.isEmpty())
{
Expand Down Expand Up @@ -57,23 +56,23 @@ const QString Faction::GetDisplayName() const { return displayName; }
const QString Faction::GetDisplayNameDescription() const { return displayNameDescription; }
const QMap<Faction::GameObject, GameObjectTypes>& Faction::GetTechTree() const { return techTree; }

const QString Faction::GetDisplayName(Languages lng) const
const QString Faction::GetDisplayName(size_t lng) const
{
QString ret;

if (lng != Languages::English)
if (lng != PROGRAM_CONSTANTS->DEFAULT_LANGUAGE_CODE)
ret = localizedDisplay.value(lng).first;

if (ret == StringExt::EmptyString)
ret = displayName;

return ret;
}
const QString Faction::GetDisplayNameDescription(Languages lng) const
const QString Faction::GetDisplayNameDescription(size_t lng) const
{
QString ret;

if (lng != Languages::English)
if (lng != PROGRAM_CONSTANTS->DEFAULT_LANGUAGE_CODE)
ret = localizedDisplay.value(lng).second;

if (ret == StringExt::EmptyString)
Expand Down
6 changes: 3 additions & 3 deletions src/Faction.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class Faction
QString displayName;
QString displayNameDescription;
QMap<GameObject, GameObjectTypes> techTree;
QMap<Languages, QPair<QString, QString>> localizedDisplay;
QMap<size_t, QPair<QString, QString>> localizedDisplay;
public:
inline static const int BASIC_FACTION_COUNT = 12;

Expand All @@ -43,11 +43,11 @@ class Faction
/// @brief Returns another one short faction name from field `DisplayName` of TechTree.json.
const QString GetDisplayName() const;
/// @brief Returns another one short faction name from field `DisplayName` of TechTree.json for the specific locale.
const QString GetDisplayName(Languages lng) const;
const QString GetDisplayName(size_t lng) const;
/// @brief Returns long faction name from field `DisplayNameDescription` of TechTree.json.
const QString GetDisplayNameDescription() const;
/// @brief Returns long faction name from field `DisplayNameDescription` of TechTree.json for the specific locale.
const QString GetDisplayNameDescription(Languages lng) const;
const QString GetDisplayNameDescription(size_t lng) const;
/// @brief Returns link to the techTree field.
const QMap<GameObject, GameObjectTypes>& GetTechTree() const;
/// @brief Returns link to the keyboard layout vector searching by object name.
Expand Down
12 changes: 7 additions & 5 deletions src/GUI/EditorWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
#include <QComboBox>
#include <QFileDialog>

#include "../Windows/Locale.hpp"
#include "../Parsers/CSFParser.hpp"
#include "../Info.hpp"
#include "../Logger.hpp"
#include "../Unsorted.hpp"
#include "../Convert.hpp"
#include "../FactionsManager.hpp"

Expand All @@ -20,8 +20,10 @@
#include "SettingsWindow.hpp"
#include "EditorWindow.hpp"

using namespace StringExt;

// TODO: Move definition to the something like reflection header
int operator+(Qt::Modifier mod, Qt::Key key) { return (static_cast<int>(mod) + static_cast<int>(key)); }
inline int operator+(Qt::Modifier mod, Qt::Key key) { return (static_cast<int>(mod) + static_cast<int>(key)); }

#pragma region CTORs and Setters

Expand Down Expand Up @@ -49,7 +51,7 @@ EditorWindow::EditorWindow(QWidget* parent)

QBoxLayout* ltFactions = nullptr;
int factonsCount = FACTIONS_MANAGER->Count();
Languages language = PROGRAM_CONSTANTS->pSettingsFile->GetLanguage();
size_t language = PROGRAM_CONSTANTS->pSettingsFile->GetLanguage();

if (factonsCount == Faction::BASIC_FACTION_COUNT)
{
Expand Down Expand Up @@ -420,8 +422,8 @@ void EditorWindow::KeyboardWindow_Update(int id)
auto currTab = pHotkeysPanelsWidget->findChild<QWidget*>(QString("Layout ") + QString::number(id + 1), Qt::FindChildrenRecursively);

QString accum;
for (const auto& elem : currTab->findChildren<ActionHotkeyWidget*>(QString(), Qt::FindChildrenRecursively))
accum += QString(elem->GetHotkey()).toUpper();
for (const auto& elem : currTab->findChildren<ActionHotkeyWidget*>(EmptyString, Qt::FindChildrenRecursively))
accum += elem->GetHotkey().toUpper();

for (const QChar& ch : accum)
{
Expand Down
2 changes: 1 addition & 1 deletion src/GUI/GreetingWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
#include <QPushButton>
#include <QVBoxLayout>

#include "../Windows/Locale.hpp"
#include "../Logger.hpp"
#include "../ProgramConstants.hpp"
#include "../Unsorted.hpp"
#include "WindowManager.hpp"
#include "ImageManager.hpp"
#include "GreetingWindow.hpp"
Expand Down
13 changes: 7 additions & 6 deletions src/GUI/SettingsWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include "../Logger.hpp"
#include "../ProgramConstants.hpp"
#include "../Unsorted.hpp"
#include "../Windows/Locale.hpp"
#include "WindowManager.hpp"
#include "SettingsWindow.hpp"

Expand Down Expand Up @@ -48,10 +48,11 @@ SettingsWindow::SettingsWindow(QWidget* parent) : QWidget(parent)
lblLanguage->setText(tr("Language:"));
lblLanguage->setObjectName(nameof(lblLanguage));

for (int i = 0; i < static_cast<int>(Languages::Count); ++i)
cmbLanguage->addItem(Unsorted::GetLanguageFullName(static_cast<Languages>(i)));
for (size_t i : PROGRAM_CONSTANTS->Languages.keys())
cmbLanguage->addItem(PROGRAM_CONSTANTS->Languages.value(i).second);

cmbLanguage->setCurrentIndex(static_cast<int>(PROGRAM_CONSTANTS->pSettingsFile->GetLanguage()));
cmbLanguage->setCurrentText(PROGRAM_CONSTANTS->LANGUAGES_STRINGS.value(PROGRAM_CONSTANTS->pSettingsFile->GetLanguage()).second);
cmbLanguage->setCurrentText(PROGRAM_CONSTANTS->Languages.value(PROGRAM_CONSTANTS->pSettingsFile->GetLanguage()).second);

ltLanguage->setAlignment(Qt::AlignLeading);
ltLanguage->addWidget(lblLanguage);
Expand Down Expand Up @@ -101,10 +102,10 @@ void SettingsWindow::BtnSave_Clicked()

PROGRAM_CONSTANTS->pSettingsFile->SetForceSystemLanguageOnStartUp(chkForceSystemLanguageOnStartUp->checkState());

bool isNewLanguageAssigned = static_cast<Languages>(cmbLanguage->currentIndex()) != PROGRAM_CONSTANTS->pSettingsFile->GetLanguage();
bool isNewLanguageAssigned = cmbLanguage->currentIndex() != PROGRAM_CONSTANTS->pSettingsFile->GetLanguage();

if (isNewLanguageAssigned)
PROGRAM_CONSTANTS->pSettingsFile->SetLanguage(static_cast<Languages>(cmbLanguage->currentIndex()));
PROGRAM_CONSTANTS->pSettingsFile->SetLanguage(cmbLanguage->currentIndex());

PROGRAM_CONSTANTS->pSettingsFile->Save();

Expand Down
Loading