mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 23:00:04 +00:00
Add whitespace trimming to some settings
This commit is contained in:
parent
67706dc186
commit
25fb9bdae0
3 changed files with 25 additions and 1 deletions
|
|
@ -56,6 +56,8 @@ public:
|
|||
double unitScale_ {1};
|
||||
std::optional<std::string> unitAbbreviation_ {};
|
||||
bool unitEnabled_ {false};
|
||||
|
||||
bool trimmingEnabled_ {false};
|
||||
};
|
||||
|
||||
template<class T>
|
||||
|
|
@ -191,8 +193,11 @@ void SettingsInterface<T>::SetEditWidget(QWidget* widget)
|
|||
p->context_.get(),
|
||||
[this](const QString& text)
|
||||
{
|
||||
QString trimmedText =
|
||||
p->trimmingEnabled_ ? text.trimmed() : text;
|
||||
|
||||
// Map to value if required
|
||||
std::string value {text.toStdString()};
|
||||
std::string value {trimmedText.toStdString()};
|
||||
if (p->mapToValue_ != nullptr)
|
||||
{
|
||||
value = p->mapToValue_(value);
|
||||
|
|
@ -488,6 +493,12 @@ void SettingsInterface<T>::SetUnit(const double& scale,
|
|||
p->UpdateUnitLabel();
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void SettingsInterface<T>::EnableTrimming(bool trimmingEnabled)
|
||||
{
|
||||
p->trimmingEnabled_ = trimmingEnabled;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
template<class U>
|
||||
void SettingsInterface<T>::Impl::SetWidgetText(U* widget, const T& currentValue)
|
||||
|
|
|
|||
|
|
@ -126,6 +126,15 @@ public:
|
|||
*/
|
||||
void SetUnit(const double& scale, const std::string& abbreviation);
|
||||
|
||||
/**
|
||||
* Enables or disables whitespace trimming of text input.
|
||||
* Removes whitespace ('\t', '\n', '\v', '\f', '\r', and ' ') at the
|
||||
* beginning and end of the string from a QLineEdit.
|
||||
*
|
||||
* @param trimmingEnabled If trimming should be enabled.
|
||||
*/
|
||||
void EnableTrimming(bool trimmingEnabled = true);
|
||||
|
||||
private:
|
||||
class Impl;
|
||||
std::unique_ptr<Impl> p;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue