diff options
Diffstat (limited to 'core/src/UI/UI_Items.cpp')
-rw-r--r-- | core/src/UI/UI_Items.cpp | 62 |
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(); } |