From 4f3b77347ab1aa40cfe70712360f61fe5203ee84 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Tue, 10 Apr 2018 20:17:21 +0200 Subject: [PATCH] DIALOG_ENV_VAR_CONFIG: allows using lowercase chars when typing an env var name. these lowercase chars are converted to uppercase on the fly. Previously, lowercase chars were not accepted, and nothing was displayed when trying to type a name in lowercase chars. --- common/dialogs/dialog_env_var_config.cpp | 19 +++++++++++++++++++ common/dialogs/dialog_env_var_config_base.cpp | 10 ++++++---- common/dialogs/dialog_env_var_config_base.fbp | 6 +++--- common/dialogs/dialog_env_var_config_base.h | 7 +++++-- common/validators.cpp | 2 +- 5 files changed, 34 insertions(+), 10 deletions(-) diff --git a/common/dialogs/dialog_env_var_config.cpp b/common/dialogs/dialog_env_var_config.cpp index 8e327ccb22..ef50409674 100644 --- a/common/dialogs/dialog_env_var_config.cpp +++ b/common/dialogs/dialog_env_var_config.cpp @@ -65,6 +65,11 @@ public: protected: void OnSelectPath( wxCommandEvent& event ) override; void onHelpClick( wxCommandEvent& event ) override; + + // Currently, only upper case variable names are acepted. onVarNameChange + // changes on the fly any lower case char by the corresponding upper case + void onVarNameChange( wxCommandEvent& event ) override; + bool TransferDataFromWindow() override; }; @@ -427,6 +432,20 @@ void DIALOG_ENV_VAR_SINGLE::OnSelectPath( wxCommandEvent& event ) } +void DIALOG_ENV_VAR_SINGLE::onVarNameChange( wxCommandEvent& event ) +{ + wxString upper_var = m_envVarName->GetValue().Upper(); + + if( upper_var != m_envVarName->GetValue() ) + { + int pos = m_envVarName->GetInsertionPoint(); + m_envVarName->ChangeValue( upper_var ); + m_envVarName->SetInsertionPoint( pos ); + } + +} + + bool DIALOG_ENV_VAR_SINGLE::TransferDataFromWindow() { // The user pressed the OK button, test data validity diff --git a/common/dialogs/dialog_env_var_config_base.cpp b/common/dialogs/dialog_env_var_config_base.cpp index 549f30379f..e0e95bc6ab 100644 --- a/common/dialogs/dialog_env_var_config_base.cpp +++ b/common/dialogs/dialog_env_var_config_base.cpp @@ -1,8 +1,8 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 22 2017) +// C++ code generated with wxFormBuilder (version Aug 4 2017) // http://www.wxformbuilder.org/ // -// PLEASE DO *NOT* EDIT THIS FILE! +// PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "dialog_env_var_config_base.h" @@ -61,7 +61,7 @@ DIALOG_ENV_VAR_CONFIG_BASE::DIALOG_ENV_VAR_CONFIG_BASE( wxWindow* parent, wxWind m_sdbSizer->AddButton( m_sdbSizerHelp ); m_sdbSizer->Realize(); - mainSizer->Add( m_sdbSizer, 0, wxBOTTOM|wxEXPAND, 5 ); + mainSizer->Add( m_sdbSizer, 0, wxBOTTOM|wxALIGN_RIGHT, 5 ); this->SetSizer( mainSizer ); @@ -142,7 +142,7 @@ DIALOG_ENV_VAR_SINGLE_BASE::DIALOG_ENV_VAR_SINGLE_BASE( wxWindow* parent, wxWind m_sdbSizer2->AddButton( m_sdbSizer2Cancel ); m_sdbSizer2->Realize(); - bSizerMain->Add( m_sdbSizer2, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); + bSizerMain->Add( m_sdbSizer2, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxALIGN_RIGHT, 5 ); this->SetSizer( bSizerMain ); @@ -152,6 +152,7 @@ DIALOG_ENV_VAR_SINGLE_BASE::DIALOG_ENV_VAR_SINGLE_BASE( wxWindow* parent, wxWind this->Centre( wxBOTH ); // Connect Events + m_envVarName->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_ENV_VAR_SINGLE_BASE::onVarNameChange ), NULL, this ); m_buttonHelp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_SINGLE_BASE::onHelpClick ), NULL, this ); m_selectPathButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_SINGLE_BASE::OnSelectPath ), NULL, this ); } @@ -159,6 +160,7 @@ DIALOG_ENV_VAR_SINGLE_BASE::DIALOG_ENV_VAR_SINGLE_BASE( wxWindow* parent, wxWind DIALOG_ENV_VAR_SINGLE_BASE::~DIALOG_ENV_VAR_SINGLE_BASE() { // Disconnect Events + m_envVarName->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_ENV_VAR_SINGLE_BASE::onVarNameChange ), NULL, this ); m_buttonHelp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_SINGLE_BASE::onHelpClick ), NULL, this ); m_selectPathButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_ENV_VAR_SINGLE_BASE::OnSelectPath ), NULL, this ); diff --git a/common/dialogs/dialog_env_var_config_base.fbp b/common/dialogs/dialog_env_var_config_base.fbp index 0f7933c0b7..e695b4b20f 100644 --- a/common/dialogs/dialog_env_var_config_base.fbp +++ b/common/dialogs/dialog_env_var_config_base.fbp @@ -577,7 +577,7 @@ 5 - wxBOTTOM|wxEXPAND + wxBOTTOM|wxALIGN_RIGHT 0 0 @@ -853,7 +853,7 @@ - + onVarNameChange @@ -1305,7 +1305,7 @@ 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT + wxBOTTOM|wxLEFT|wxRIGHT|wxALIGN_RIGHT 0 0 diff --git a/common/dialogs/dialog_env_var_config_base.h b/common/dialogs/dialog_env_var_config_base.h index c8e67a74a9..7ef5f5db36 100644 --- a/common/dialogs/dialog_env_var_config_base.h +++ b/common/dialogs/dialog_env_var_config_base.h @@ -1,8 +1,8 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 22 2017) +// C++ code generated with wxFormBuilder (version Aug 4 2017) // http://www.wxformbuilder.org/ // -// PLEASE DO *NOT* EDIT THIS FILE! +// PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __DIALOG_ENV_VAR_CONFIG_BASE_H__ @@ -11,6 +11,8 @@ #include #include #include +class DIALOG_SHIM; + #include "dialog_shim.h" #include #include @@ -85,6 +87,7 @@ class DIALOG_ENV_VAR_SINGLE_BASE : public DIALOG_SHIM wxButton* m_sdbSizer2Cancel; // Virtual event handlers, overide them in your derived class + virtual void onVarNameChange( wxCommandEvent& event ) { event.Skip(); } virtual void onHelpClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnSelectPath( wxCommandEvent& event ) { event.Skip(); } diff --git a/common/validators.cpp b/common/validators.cpp index bb67a7e969..f105a557d5 100644 --- a/common/validators.cpp +++ b/common/validators.cpp @@ -80,6 +80,6 @@ FILE_NAME_WITH_PATH_CHAR_VALIDATOR::FILE_NAME_WITH_PATH_CHAR_VALIDATOR( wxString ENVIRONMENT_VARIABLE_CHAR_VALIDATOR::ENVIRONMENT_VARIABLE_CHAR_VALIDATOR( wxString* aValue ) : wxTextValidator( wxFILTER_INCLUDE_CHAR_LIST | wxFILTER_EMPTY, aValue ) { - wxString includeChars( wxT( "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_" ) ); + wxString includeChars( wxT( "abcdefghijklmnopqrstuvwxyABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_" ) ); SetCharIncludes( includeChars ); }