aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/qt/column_editor_frame.cpp43
-rw-r--r--ui/qt/column_editor_frame.h2
2 files changed, 34 insertions, 11 deletions
diff --git a/ui/qt/column_editor_frame.cpp b/ui/qt/column_editor_frame.cpp
index 6762227a66..d23071042f 100644
--- a/ui/qt/column_editor_frame.cpp
+++ b/ui/qt/column_editor_frame.cpp
@@ -57,24 +57,41 @@ ColumnEditorFrame::~ColumnEditorFrame()
delete ui;
}
+void ColumnEditorFrame::setFields(int index)
+{
+ bool ok = true;
+
+ if (index == COL_CUSTOM) {
+ ui->fieldNameLineEdit->setText(saved_field_);
+ ui->fieldNameLineEdit->checkFieldName(saved_field_);
+ ui->occurrenceLineEdit->setText(saved_occurrence_);
+ ui->occurrenceLineEdit->checkInteger(saved_occurrence_);
+ if ((ui->fieldNameLineEdit->syntaxState() != SyntaxLineEdit::Valid) ||
+ (ui->occurrenceLineEdit->syntaxState() != SyntaxLineEdit::Valid)) {
+ ok = false;
+ }
+ } else {
+ ui->fieldNameLineEdit->clear();
+ ui->fieldNameLineEdit->setSyntaxState(SyntaxLineEdit::Empty);
+ ui->occurrenceLineEdit->clear();
+ ui->occurrenceLineEdit->setSyntaxState(SyntaxLineEdit::Empty);
+ }
+ ui->okButton->setEnabled(ok);
+}
+
void ColumnEditorFrame::editColumn(int column)
{
cur_column_ = column;
ui->titleLineEdit->setText(get_column_title(column));
saved_field_ = get_column_custom_field(column);
- saved_occurrence_ = get_column_custom_occurrence(column);
+ saved_occurrence_ = QString::number(get_column_custom_occurrence(column));
ui->typeComboBox->setCurrentIndex(get_column_format(column));
+ setFields(ui->typeComboBox->currentIndex());
}
void ColumnEditorFrame::on_typeComboBox_activated(int index)
{
- if (index == COL_CUSTOM) {
- ui->fieldNameLineEdit->setText(saved_field_);
- ui->occurrenceLineEdit->setText(saved_occurrence_);
- } else {
- ui->fieldNameLineEdit->clear();
- ui->occurrenceLineEdit->clear();
- }
+ setFields(index);
}
void ColumnEditorFrame::on_fieldNameLineEdit_textEdited(const QString &field)
@@ -86,7 +103,10 @@ void ColumnEditorFrame::on_fieldNameLineEdit_textEdited(const QString &field)
}
bool ok = true;
- if (ui->fieldNameLineEdit->syntaxState() == SyntaxLineEdit::Invalid) ok = false;
+ if ((ui->fieldNameLineEdit->syntaxState() == SyntaxLineEdit::Invalid) ||
+ ((ui->typeComboBox->currentIndex() == COL_CUSTOM) &&
+ (ui->occurrenceLineEdit->syntaxState() == SyntaxLineEdit::Empty)))
+ ok = false;
ui->okButton->setEnabled(ok);
saved_field_ = field;
@@ -101,7 +121,10 @@ void ColumnEditorFrame::on_occurrenceLineEdit_textEdited(const QString &occurren
}
bool ok = true;
- if (ui->occurrenceLineEdit->syntaxState() == SyntaxLineEdit::Invalid) ok = false;
+ if ((ui->occurrenceLineEdit->syntaxState() == SyntaxLineEdit::Invalid) ||
+ ((ui->typeComboBox->currentIndex() == COL_CUSTOM) &&
+ (ui->occurrenceLineEdit->syntaxState() == SyntaxLineEdit::Empty)))
+ ok = false;
ui->okButton->setEnabled(ok);
saved_occurrence_ = occurrence;
diff --git a/ui/qt/column_editor_frame.h b/ui/qt/column_editor_frame.h
index dbaad4e50b..b35200dcad 100644
--- a/ui/qt/column_editor_frame.h
+++ b/ui/qt/column_editor_frame.h
@@ -49,10 +49,10 @@ private slots:
private:
Ui::ColumnEditorFrame *ui;
-
int cur_column_;
QString saved_field_;
QString saved_occurrence_;
+ void setFields(int index);
};
#endif // COLUMN_EDITOR_FRAME_H