aboutsummaryrefslogtreecommitdiff
path: root/core/src/UI/UI_Items.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/UI/UI_Items.cpp')
-rw-r--r--core/src/UI/UI_Items.cpp62
1 files changed, 29 insertions, 33 deletions
diff --git a/core/src/UI/UI_Items.cpp b/core/src/UI/UI_Items.cpp
index 6887f23..a557eb4 100644
--- a/core/src/UI/UI_Items.cpp
+++ b/core/src/UI/UI_Items.cpp
@@ -2,8 +2,9 @@
#include "Model/GlobalStates.hpp"
#include "Model/Project.hpp"
-#include "UI/Localization.hpp"
+#include "Utils/I18n.hpp"
+#include <IconsFontAwesome.h>
#include <imgui.h>
#include <imgui_stdlib.h>
@@ -30,7 +31,6 @@ ActionResult ItemEditor(ItemList<T>& list, T* item)
t.GetEmail();
};
- auto ls = LocaleStrings::Instance.get();
auto& gs = GlobalStates::GetInstance();
static bool duplicateName = false;
@@ -50,23 +50,23 @@ ActionResult ItemEditor(ItemList<T>& list, T* item)
description = {};
};
- if (ImGui::InputText(ls->ItemNameColumn.Get(), &name)) {
+ if (ImGui::InputText(I18N_TEXT("Name", L10N_ITEM_COLUMN_NAME), &name)) {
duplicateName = name != item->GetName() && list.Find(name) != nullptr;
}
- if constexpr (kHasDescription) ImGui::InputText(ls->ItemDescriptionColumn.Get(), &description);
- if constexpr (kHasEmail) ImGui::InputText(ls->ItemEmailColumn.Get(), &email);
+ if constexpr (kHasDescription) ImGui::InputText(I18N_TEXT("Description", L10N_ITEM_COLUMN_DESCRIPTION), &description);
+ if constexpr (kHasEmail) ImGui::InputText(I18N_TEXT("Email", L10N_ITEM_COLUMN_EMAIL), &email);
if (name.empty()) {
- ImGui::ErrorMessage("%s", ls->EmptyNameError.Get());
+ ImGui::ErrorMessage(I18N_TEXT("Name cannot be empty", L10N_EMPTY_NAME_ERROR));
}
if (duplicateName) {
- ImGui::ErrorMessage("%s", ls->DuplicateNameError.Get());
+ ImGui::ErrorMessage(I18N_TEXT("Duplicate name", L10N_DUPLICATE_NAME_ERROR));
}
// Return Value
auto rv = ActionResult::Pending;
- if (ImGui::Button(ls->Confirm.Get(), name.empty() || duplicateName)) {
+ if (ImGui::Button(I18N_TEXT("Confirm", L10N_CONFIRM), name.empty() || duplicateName)) {
if (item->GetName() != name) {
item->SetName(std::move(name));
}
@@ -85,7 +85,7 @@ ActionResult ItemEditor(ItemList<T>& list, T* item)
}
ImGui::SameLine();
- if (ImGui::Button(ls->Cancel.Get())) {
+ if (ImGui::Button(I18N_TEXT("Cancel", L10N_CANCEL))) {
ImGui::CloseCurrentPopup();
ClearStates();
rv = ActionResult::Canceled;
@@ -115,16 +115,15 @@ void ItemListEntries(ItemList<T>& list, int& selectedIdx)
};
constexpr int kColumns = 1 /* Name column */ + kHasDescription + kHasEmail + kHasStock + kHasPrice;
- auto ls = LocaleStrings::Instance.get();
auto& gs = GlobalStates::GetInstance();
if (ImGui::BeginTable("", kColumns, ImGuiTableFlags_Borders)) {
- ImGui::TableSetupColumn(ls->ItemNameColumn.Get());
- if constexpr (kHasDescription) ImGui::TableSetupColumn(ls->ItemDescriptionColumn.Get());
- if constexpr (kHasEmail) ImGui::TableSetupColumn(ls->ItemEmailColumn.Get());
- if constexpr (kHasStock) ImGui::TableSetupColumn(ls->ItemStockColumn.Get());
- if constexpr (kHasPrice) ImGui::TableSetupColumn(ls->ItemPriceColumn.Get());
+ ImGui::TableSetupColumn(I18N_TEXT("Name", L10N_ITEM_COLUMN_NAME));
+ if constexpr (kHasDescription) ImGui::TableSetupColumn(I18N_TEXT("Description", L10N_ITEM_COLUMN_DESCRIPTION));
+ if constexpr (kHasEmail) ImGui::TableSetupColumn(I18N_TEXT("Email", L10N_ITEM_COLUMN_EMAIL));
+ if constexpr (kHasStock) ImGui::TableSetupColumn(I18N_TEXT("Stock", L10N_ITEM_COLUMN_STOCK));
+ if constexpr (kHasPrice) ImGui::TableSetupColumn(I18N_TEXT("Price", L10N_ITEM_COLUMN_PRICE));
ImGui::TableHeadersRow();
size_t idx = 0;
@@ -170,19 +169,17 @@ void ItemListEntries(ItemList<T>& list, int& selectedIdx)
template <class T>
void ItemListEditor(ItemList<T>& list)
{
- auto ls = LocaleStrings::Instance.get();
-
bool opened = true;
static int selectedIdx = -1;
static T* editingItem = nullptr;
- if (ImGui::Button(ls->Add.Get())) {
+ if (ImGui::Button(ICON_FA_PLUS " " I18N_TEXT("Add", L10N_ADD))) {
ImGui::SetNextWindowCentered();
- ImGui::OpenPopup(ls->AddItemDialogTitle.Get());
+ ImGui::OpenPopup(I18N_TEXT("Add item", L10N_ITEM_ADD_DIALOG_TITLE));
editingItem = &list.Insert("");
}
- if (ImGui::BeginPopupModal(ls->AddItemDialogTitle.Get(), &opened, ImGuiWindowFlags_AlwaysAutoResize)) {
+ if (ImGui::BeginPopupModal(I18N_TEXT("Add item", L10N_ITEM_ADD_DIALOG_TITLE), &opened, ImGuiWindowFlags_AlwaysAutoResize)) {
switch (ItemEditor(list, editingItem)) {
case ActionResult::Confirmed:
editingItem = nullptr;
@@ -198,13 +195,13 @@ void ItemListEditor(ItemList<T>& list)
}
ImGui::SameLine();
- if (ImGui::Button(ls->Edit.Get(), selectedIdx == -1)) {
+ if (ImGui::Button(ICON_FA_EDIT " " I18N_TEXT("Edit", L10N_EDIT), selectedIdx == -1)) {
ImGui::SetNextWindowCentered();
- ImGui::OpenPopup(ls->EditItemDialogTitle.Get());
+ ImGui::OpenPopup(I18N_TEXT("Edit item", L10N_ITEM_EDIT_DIALOG_TITLE));
editingItem = list.Find(selectedIdx);
}
- if (ImGui::BeginPopupModal(ls->EditItemDialogTitle.Get(), &opened, ImGuiWindowFlags_AlwaysAutoResize)) {
+ if (ImGui::BeginPopupModal(I18N_TEXT("Edit item", L10N_ITEM_EDIT_DIALOG_TITLE), &opened, ImGuiWindowFlags_AlwaysAutoResize)) {
if (ItemEditor(list, editingItem) != ActionResult::Pending) {
editingItem = nullptr;
}
@@ -212,21 +209,21 @@ void ItemListEditor(ItemList<T>& list)
}
ImGui::SameLine();
- if (ImGui::Button(ls->Delete.Get(), selectedIdx == -1)) {
+ if (ImGui::Button(ICON_FA_TRASH " " I18N_TEXT("Delete", L10N_DELETE), selectedIdx == -1)) {
ImGui::SetNextWindowCentered();
- ImGui::OpenPopup(ls->DeleteItemDialogTitle.Get());
+ ImGui::OpenPopup(I18N_TEXT("Delete item", L10N_ITEM_DELETE_DIALOG_TITLE));
list.Remove(selectedIdx);
}
- if (ImGui::BeginPopupModal(ls->DeleteItemDialogTitle.Get(), &opened, ImGuiWindowFlags_AlwaysAutoResize)) {
- ImGui::TextUnformatted(ls->DeleteItemDialogMessage.Get());
+ if (ImGui::BeginPopupModal(I18N_TEXT("Delete item", L10N_ITEM_DELETE_DIALOG_TITLE), &opened, ImGuiWindowFlags_AlwaysAutoResize)) {
+ ImGui::TextUnformatted(I18N_TEXT("Are you sure you want to delete this item?", L10N_ITEM_DELETE_DIALOG_MESSAGE));
- if (ImGui::Button(ls->Confirm.Get())) {
+ if (ImGui::Button(I18N_TEXT("Confirm", L10N_CONFIRM))) {
ImGui::CloseCurrentPopup();
}
ImGui::SameLine();
- if (ImGui::Button(ls->Cancel.Get())) {
+ if (ImGui::Button(I18N_TEXT("Cancel", L10N_CANCEL))) {
ImGui::CloseCurrentPopup();
}
@@ -239,19 +236,18 @@ void ItemListEditor(ItemList<T>& list)
void UI::ItemsTab()
{
- auto ls = LocaleStrings::Instance.get();
auto& gs = GlobalStates::GetInstance();
if (ImGui::BeginTabBar("ItemViewTabs")) {
- if (ImGui::BeginTabItem(ls->ProductCategoryName.Get())) {
+ if (ImGui::BeginTabItem(I18N_TEXT("Products", L10N_ITEM_CATEGORY_PRODUCT))) {
ItemListEditor(gs.GetCurrentProject()->Products);
ImGui::EndTabItem();
}
- if (ImGui::BeginTabItem(ls->FactoryCategoryName.Get())) {
+ if (ImGui::BeginTabItem(I18N_TEXT("Factories", L10N_ITEM_CATEGORY_FACTORY))) {
ItemListEditor(gs.GetCurrentProject()->Factories);
ImGui::EndTabItem();
}
- if (ImGui::BeginTabItem(ls->CustomerCategoryName.Get())) {
+ if (ImGui::BeginTabItem(I18N_TEXT("Customers", L10N_ITEM_CATEGORY_CUSTOMER))) {
ItemListEditor(gs.GetCurrentProject()->Customers);
ImGui::EndTabItem();
}