aboutsummaryrefslogtreecommitdiff
path: root/core/src/UI/UI_MainWindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/UI/UI_MainWindow.cpp')
-rw-r--r--core/src/UI/UI_MainWindow.cpp65
1 files changed, 31 insertions, 34 deletions
diff --git a/core/src/UI/UI_MainWindow.cpp b/core/src/UI/UI_MainWindow.cpp
index 8131508..ce6e2e0 100644
--- a/core/src/UI/UI_MainWindow.cpp
+++ b/core/src/UI/UI_MainWindow.cpp
@@ -2,7 +2,7 @@
#include "Model/GlobalStates.hpp"
#include "Model/Project.hpp"
-#include "UI/Localization.hpp"
+#include "Utils/I18n.hpp"
#include <IconsFontAwesome.h>
#include <imgui.h>
@@ -16,25 +16,23 @@ namespace fs = std::filesystem;
namespace {
void ProjectTab_Normal()
{
- auto ls = LocaleStrings::Instance.get();
auto& gs = GlobalStates::GetInstance();
- if (ImGui::Button(ls->Close.Get())) {
+ if (ImGui::Button(ICON_FA_TIMES " " I18N_TEXT("Close", L10N_CLOSE))) {
gs.SetCurrentProject(nullptr);
return;
}
ImGui::SameLine();
- if (ImGui::Button(ls->OpenActiveProjectInFileSystem.Get())) {
+ if (ImGui::Button(ICON_FA_FOLDER " " I18N_TEXT("Open in filesystem", L10N_PROJECT_OPEN_IN_FILESYSTEM))) {
// TODO
}
- ImGui::Text("%s%s", ls->ActiveProjectName.Get(), gs.GetCurrentProject()->GetName().c_str());
- ImGui::Text("%s%s", ls->ActiveProjectPath.Get(), gs.GetCurrentProject()->GetPathString().c_str());
+ ImGui::Text("%s %s", I18N_TEXT("Project name", L10N_PROJECT_NAME), gs.GetCurrentProject()->GetName().c_str());
+ ImGui::Text("%s %s", I18N_TEXT("Project path", L10N_PROJECT_PATH), gs.GetCurrentProject()->GetPathString().c_str());
}
void ProjectTab_NoProject()
{
- auto ls = LocaleStrings::Instance.get();
auto& gs = GlobalStates::GetInstance();
bool openedDummy = true;
@@ -54,37 +52,37 @@ void ProjectTab_NoProject()
}
};
- if (ImGui::Button(ls->NewProject.Get())) {
+ if (ImGui::Button(I18N_TEXT("Create project....", L10N_PROJECT_NEW))) {
ImGui::SetNextWindowCentered();
- ImGui::OpenPopup(ls->NewProjectDialogTitle.Get());
+ ImGui::OpenPopup(I18N_TEXT("Create project wizard", L10N_PROJECT_NEW_DIALOG_TITLE));
}
// Make it so that the modal dialog has a close button
- if (ImGui::BeginPopupModal(ls->NewProjectDialogTitle.Get(), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) {
- ImGui::InputTextWithHint("##ProjectName", ls->NewProjectNameHint.Get(), &projectName);
+ if (ImGui::BeginPopupModal(I18N_TEXT("Create project wizard", L10N_PROJECT_NEW_DIALOG_TITLE), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) {
+ ImGui::InputTextWithHint("##ProjectName", I18N_TEXT("Project name", L10N_PROJECT_NAME), &projectName);
- if (ImGui::InputTextWithHint("##ProjectPath", ls->NewProjectPathHint.Get(), &dirName)) {
+ if (ImGui::InputTextWithHint("##ProjectPath", I18N_TEXT("Project path", L10N_PROJECT_PATH), &dirName)) {
// Changed, validate value
TrySelectPath(fs::path(dirName));
}
ImGui::SameLine();
if (ImGui::Button("...")) {
- auto selection = pfd::select_folder(ls->NewProjectPathDialogTitle.Get()).result();
+ auto selection = pfd::select_folder(I18N_TEXT("Project path", L10N_PROJECT_NEW_PATH_DIALOG_TITLE)).result();
if (!selection.empty()) {
TrySelectPath(fs::path(selection));
}
}
if (projectName.empty()) {
- ImGui::ErrorMessage("%s", ls->NewProjectEmptyNameError.Get());
+ ImGui::ErrorMessage("%s", I18N_TEXT("Name cannot be empty", L10N_EMPTY_NAME_ERROR));
}
if (!dirNameIsValid) {
- ImGui::ErrorMessage("%s", ls->NewProjectInvalidPathError.Get());
+ ImGui::ErrorMessage("%s", I18N_TEXT("Invalid path", L10N_INVALID_PATH_ERROR));
}
ImGui::Spacing();
- if (ImGui::Button(ls->Confirm.Get(), !dirNameIsValid || projectName.empty())) {
+ if (ImGui::Button(I18N_TEXT("Confirm", L10N_CONFIRM), !dirNameIsValid || projectName.empty())) {
ImGui::CloseCurrentPopup();
gs.SetCurrentProject(std::make_unique<Project>(std::move(dirPath), std::move(projectName)));
@@ -97,7 +95,7 @@ void ProjectTab_NoProject()
}
ImGui::SameLine();
- if (ImGui::Button(ls->Cancel.Get())) {
+ if (ImGui::Button(I18N_TEXT("Cancel", L10N_CANCEL))) {
ImGui::CloseCurrentPopup();
}
@@ -105,8 +103,8 @@ void ProjectTab_NoProject()
}
ImGui::SameLine();
- if (ImGui::Button(ls->OpenProject.Get())) {
- auto selection = pfd::open_file(ls->OpenProjectDialogTitle.Get()).result();
+ if (ImGui::Button(I18N_TEXT("Open project...", L10N_PROJECT_OPEN))) {
+ auto selection = pfd::open_file(I18N_TEXT("Open project", L10N_PROJECT_OPEN_DIALOG_TITLE)).result();
if (!selection.empty()) {
fs::path path(selection[0]);
@@ -124,10 +122,10 @@ void ProjectTab_NoProject()
// Recent projects
ImGui::Separator();
- ImGui::TextUnformatted(ls->RecentProjects.Get());
+ ImGui::TextUnformatted(I18N_TEXT("Recent projects", L10N_PROJECT_RECENTS));
ImGui::SameLine();
- if (ImGui::Button(ls->ClearRecentProjects.Get())) {
+ if (ImGui::Button(I18N_TEXT("Clear", L10N_PROJECT_RECENTS_CLEAR))) {
gs.ClearRecentProjects();
}
@@ -136,7 +134,7 @@ void ProjectTab_NoProject()
size_t toRemoveIdx = rp.size();
if (rp.empty()) {
- ImGui::TextUnformatted(ls->NoRecentProjectsMessage.Get());
+ ImGui::TextUnformatted(I18N_TEXT("No recent projects", L10N_PROJECT_RECENTS_NONE_PRESENT));
} else {
for (auto it = rp.rbegin(); it != rp.rend(); ++it) {
auto& [path, recent] = *it;
@@ -155,7 +153,7 @@ void ProjectTab_NoProject()
}
}
if (ImGui::IsItemHovered()) {
- ImGui::SetTooltip("%s", ls->OpenRecentProjectTooltip.Get());
+ ImGui::SetTooltip(I18N_TEXT("Open this project", L10N_PROJECT_RECENTS_OPEN_TOOLTIP));
}
ImGui::SameLine();
@@ -163,7 +161,7 @@ void ProjectTab_NoProject()
toRemoveIdx = idx;
}
if (ImGui::IsItemHovered()) {
- ImGui::SetTooltip("%s", ls->DeleteRecentProjectTooltip.Get());
+ ImGui::SetTooltip(I18N_TEXT("Delete this project from the Recent Projects list, the project itself will not be affected", L10N_PROJECT_RECENTS_DELETE_TOOLTIP));
}
ImGui::PopID();
@@ -176,10 +174,10 @@ void ProjectTab_NoProject()
if (openErrorDialog) {
ImGui::SetNextWindowCentered();
- ImGui::OpenPopup(ls->Error.Get());
+ ImGui::OpenPopup(I18N_TEXT("Error", L10N_ERROR));
}
- if (ImGui::BeginPopupModal(ls->Error.Get(), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) {
- ImGui::ErrorMessage("%s", ls->InvalidProjectFormat.Get());
+ if (ImGui::BeginPopupModal(I18N_TEXT("Error", L10N_ERROR), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) {
+ ImGui::ErrorMessage("%s", I18N_TEXT("Invalid project file", L10N_PROJECT_INVALID_PROJECT_FORMAT));
ImGui::EndPopup();
}
}
@@ -187,7 +185,6 @@ void ProjectTab_NoProject()
void UI::MainWindow()
{
- auto ls = LocaleStrings::Instance.get();
auto& gs = GlobalStates::GetInstance();
auto windowSize = ImGui::GetMainViewport()->Size;
@@ -195,12 +192,12 @@ void UI::MainWindow()
ImGui::SetNextWindowPos({ 0, 0 });
ImGui::Begin("##MainWindow", nullptr, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize);
if (ImGui::BeginTabBar("MainWindowTabs")) {
- if (ImGui::BeginTabItem(ls->SettingsTab.Get())) {
+ if (ImGui::BeginTabItem(ICON_FA_COGS " " I18N_TEXT("Settings", L10N_MAIN_TAB_SETTINGS))) {
UI::SettingsTab();
ImGui::EndTabItem();
}
- if (ImGui::BeginTabItem(ls->ProjectTab.Get(), nullptr)) {
+ if (ImGui::BeginTabItem(ICON_FA_FILE " " I18N_TEXT("Project", L10N_MAIN_WINDOW_TAB_PROJECT), nullptr)) {
if (gs.HasCurrentProject()) {
ProjectTab_Normal();
} else {
@@ -213,22 +210,22 @@ void UI::MainWindow()
goto endTab;
}
- if (ImGui::BeginTabItem(ls->DatabaseViewTab.Get())) {
+ if (ImGui::BeginTabItem(ICON_FA_DATABASE " " I18N_TEXT("Data", L10N_MAIN_WINDOW_TAB_DATABASE_VIEW))) {
UI::DatabaseViewTab();
ImGui::EndTabItem();
}
- if (ImGui::BeginTabItem(ls->ItemsTab.Get())) {
+ if (ImGui::BeginTabItem(ICON_FA_BOX " " I18N_TEXT("Items", L10N_MAIN_WINDOW_TAB_ITEMS))) {
UI::ItemsTab();
ImGui::EndTabItem();
}
- if (ImGui::BeginTabItem(ls->WorkflowsTab.Get())) {
+ if (ImGui::BeginTabItem(ICON_FA_SCROLL " " I18N_TEXT("Workflows", L10N_MAIN_WINDOW_TAB_WORKFLOWS))) {
UI::WorkflowsTab();
ImGui::EndTabItem();
}
- if (ImGui::BeginTabItem(ls->TemplatesTab.Get())) {
+ if (ImGui::BeginTabItem(ICON_FA_TABLE " " I18N_TEXT("Templates", L10N_MAIN_WINDOW_TAB_TEMPLATES))) {
UI::TemplatesTab();
ImGui::EndTabItem();
}