mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 14:25:27 +00:00
Mark Air/Water temp field red for wrong input.
As a warining for the user mark the field red. If the user inputs invalid input that will be ignored while parsing. But with adding a one character error margin to prevent it from toggling between Red and Yellow while editing existing values, for example "After Deleting unit and last number after '.'" Signed-off-by: Yousef Hamza <jo.adam.93@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
f46e2803eb
commit
ad9eb73d73
2 changed files with 30 additions and 0 deletions
|
@ -881,14 +881,43 @@ void MainTab::on_airtemp_textChanged(const QString &text)
|
|||
{
|
||||
EDIT_SELECTED_DIVES(select_dc(mydive)->airtemp.mkelvin = parseTemperatureToMkelvin(text));
|
||||
markChangedWidget(ui.airtemp);
|
||||
validate_temp_field(ui.airtemp, text);
|
||||
}
|
||||
|
||||
void MainTab::on_watertemp_textChanged(const QString &text)
|
||||
{
|
||||
EDIT_SELECTED_DIVES(select_dc(mydive)->watertemp.mkelvin = parseTemperatureToMkelvin(text));
|
||||
markChangedWidget(ui.watertemp);
|
||||
validate_temp_field(ui.watertemp, text);
|
||||
}
|
||||
|
||||
void MainTab::validate_temp_field(QLineEdit *tempField,const QString &text)
|
||||
{
|
||||
static bool missing_unit = false;
|
||||
static bool missing_precision = false;
|
||||
if (!text.contains(QRegExp("^[-+]{0,1}[0-9]+([,.][0-9]+){0,1}(°[CF]){0,1}$")) &&
|
||||
!text.isEmpty() &&
|
||||
!text.contains(QRegExp("^[-+]$"))) {
|
||||
if (text.contains(QRegExp("^[-+]{0,1}[0-9]+([,.][0-9]+){0,1}(°)$")) && !missing_unit) {
|
||||
if (!missing_unit) {
|
||||
missing_unit = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (text.contains(QRegExp("^[-+]{0,1}[0-9]+([,.]){0,1}(°[CF]){0,1}$")) && !missing_precision) {
|
||||
if (!missing_precision) {
|
||||
missing_precision = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
QPalette p;
|
||||
p.setBrush(QPalette::Base, QColor(Qt::red).lighter());
|
||||
tempField->setPalette(p);
|
||||
} else {
|
||||
missing_unit = false;
|
||||
missing_precision = false;
|
||||
}
|
||||
}
|
||||
void MainTab::on_dateTimeEdit_dateTimeChanged(const QDateTime &datetime)
|
||||
{
|
||||
QDateTime dateTimeUtc(datetime);
|
||||
|
|
|
@ -81,6 +81,7 @@ slots:
|
|||
void on_notes_textChanged();
|
||||
void on_airtemp_textChanged(const QString &text);
|
||||
void on_watertemp_textChanged(const QString &text);
|
||||
void validate_temp_field(QLineEdit *tempField,const QString &text);
|
||||
void on_dateTimeEdit_dateTimeChanged(const QDateTime &datetime);
|
||||
void on_rating_valueChanged(int value);
|
||||
void on_visibility_valueChanged(int value);
|
||||
|
|
Loading…
Add table
Reference in a new issue