summaryrefslogtreecommitdiffstats
path: root/Project/GeneralPropertiesForm.cpp
diff options
context:
space:
mode:
authorThales Lima Oliveira <thaleslima.ufu@gmail.com>2017-08-11 18:49:13 -0300
committerThales Lima Oliveira <thaleslima.ufu@gmail.com>2017-08-11 18:49:13 -0300
commit1fcb990bd02da945ac0204caaed6a9aa1f6a7d5f (patch)
treebfd5888f0d90d1248260e77ebc46492dc6aab250 /Project/GeneralPropertiesForm.cpp
parente5f19af9a5829a307951785e850e53fc4fcfac90 (diff)
downloadPSP.git-1fcb990bd02da945ac0204caaed6a9aa1f6a7d5f.tar.gz
PSP.git-1fcb990bd02da945ac0204caaed6a9aa1f6a7d5f.tar.xz
PSP.git-1fcb990bd02da945ac0204caaed6a9aa1f6a7d5f.zip
General settings implemented
A lot of pt-br translation Some forms sizes fixes init file fully implemented
Diffstat (limited to 'Project/GeneralPropertiesForm.cpp')
-rw-r--r--Project/GeneralPropertiesForm.cpp87
1 files changed, 86 insertions, 1 deletions
diff --git a/Project/GeneralPropertiesForm.cpp b/Project/GeneralPropertiesForm.cpp
index 305a26f..90ecf29 100644
--- a/Project/GeneralPropertiesForm.cpp
+++ b/Project/GeneralPropertiesForm.cpp
@@ -5,6 +5,35 @@ GeneralPropertiesForm::GeneralPropertiesForm(wxWindow* parent, PropertiesData* p
: GeneralPropertiesFormBase(parent)
{
m_properties = properties;
+ auto data = m_properties->GetGeneralPropertiesData();
+
+ // Clear the choices and rebuild to set the correct translations.
+ m_choiceLanguage->Clear();
+ m_choiceLanguage->Insert(_("English"), 0);
+ m_choiceLanguage->Insert(_("Portuguese"), 1);
+ m_choiceTheme->Clear();
+ m_choiceTheme->Insert(_("Light"), 0);
+ m_choiceTheme->Insert(_("Dark"), 1);
+
+ switch(data.language) {
+ case wxLANGUAGE_ENGLISH: {
+ m_choiceLanguage->SetSelection(0);
+ } break;
+ case wxLANGUAGE_PORTUGUESE_BRAZILIAN: {
+ m_choiceLanguage->SetSelection(1);
+ } break;
+ default: {
+ m_choiceLanguage->SetSelection(wxNOT_FOUND);
+ } break;
+ }
+ switch(data.theme) {
+ case THEME_LIGHT: {
+ m_choiceTheme->SetSelection(0);
+ } break;
+ case THEME_DARK: {
+ m_choiceTheme->SetSelection(1);
+ } break;
+ }
}
GeneralPropertiesForm::~GeneralPropertiesForm() {}
@@ -13,4 +42,60 @@ void GeneralPropertiesForm::OnButtonOKClick(wxCommandEvent& event)
if(ValidateData()) EndModal(wxID_OK);
}
-bool GeneralPropertiesForm::ValidateData() { return true; }
+bool GeneralPropertiesForm::ValidateData()
+{
+ auto data = m_properties->GetGeneralPropertiesData();
+ auto checkData = m_properties->GetGeneralPropertiesData();
+ bool hasChanges = false;
+
+ wxTextFile file("config.ini");
+ if(!file.Create()) {
+ if(!file.Open()) {
+ // Fail to access the file.
+ wxMessageDialog msgDialog(this,
+ _("It was not possible to access the init file.\nThe settings won't be applied."),
+ _("Error"), wxOK | wxCENTRE | wxICON_ERROR);
+ msgDialog.ShowModal();
+ }
+ file.Clear();
+ }
+
+ wxString line = "lang=";
+ switch(m_choiceLanguage->GetSelection()) {
+ case 0: {
+ line += "en";
+ data.language = wxLANGUAGE_ENGLISH;
+ } break;
+ case 1: {
+ line += "pt-br";
+ data.language = wxLANGUAGE_PORTUGUESE_BRAZILIAN;
+ } break;
+ }
+ file.AddLine(line);
+ if(data.language != checkData.language) hasChanges = true;
+
+ line = "theme=";
+ switch(m_choiceTheme->GetSelection()) {
+ case 0: {
+ line += "light";
+ data.theme = THEME_LIGHT;
+ } break;
+ case 1: {
+ line += "dark";
+ data.theme = THEME_DARK;
+ } break;
+ }
+ file.AddLine(line);
+ if(data.theme != checkData.theme) hasChanges = true;
+
+ file.Write();
+ file.Close();
+
+ if(hasChanges) {
+ wxMessageDialog msgDialog(this, _("The application must be restarted to settings changes be applied."),
+ _("Info"), wxOK | wxCENTRE | wxICON_INFORMATION);
+ msgDialog.ShowModal();
+ }
+ m_properties->SetGeneralPropertiesData(data);
+ return true;
+}