From: APTX Date: Mon, 8 Aug 2011 23:26:23 +0000 (+0200) Subject: Show parse errors in Rename Settings Dialog. X-Git-Url: https://gitweb.aptx.org/?a=commitdiff_plain;h=ad271da2f93050932b8b5fb4680b9393371dfd6f;p=AniAdd.git Show parse errors in Rename Settings Dialog. --- diff --git a/renamesettingsdialog.cpp b/renamesettingsdialog.cpp index b6bc957..cd6e856 100644 --- a/renamesettingsdialog.cpp +++ b/renamesettingsdialog.cpp @@ -113,6 +113,7 @@ QString RenameSettingsDialog::renameEnv() const void RenameSettingsDialog::setRenameEnv(const QString &renameEnv) { ui->input->setPlainText(renameEnv); + originalEnv = renameEnv; } bool RenameSettingsDialog::filterResults() const @@ -133,6 +134,7 @@ RenameParser::RenameEngine::ParserType RenameSettingsDialog::parserType() const void RenameSettingsDialog::setParserType(RenameParser::RenameEngine::ParserType parserType) { ui->scriptLanguage->setCurrentIndex(parserType); + originalParserType = parserType; } @@ -140,6 +142,12 @@ void RenameSettingsDialog::on_input_textChanged() { bool success = environmentEngine->parse(ui->input->toPlainText() + "\n"); + if (!success) + { + ui->status->setText("Error in input field: " + environmentEngine->error()); + updateResult(RenameParser::Environment()); + return; + } RenameParser::Environment newEnv; environmentEngine->evaluate(newEnv); env = newEnv; @@ -154,9 +162,15 @@ void RenameSettingsDialog::on_renameScript_textChanged() bool success = rulesEngine->parse(ui->renameScript->toPlainText() + "\n"); + if (!success) + { + ui->status->setText("Error: " + rulesEngine->error()); + updateResult(RenameParser::Environment()); + return; + } rulesEngine->evaluate(newEnv); updateResult(newEnv); - + ui->status->setText("Success"); } void RenameSettingsDialog::on_scriptLanguage_currentIndexChanged() @@ -190,16 +204,37 @@ void RenameSettingsDialog::on_filterResultsCheckbox_toggled() QString RenameSettingsDialog::renameString() const { - return ui->renameScript->toPlainText(); + QString s = ui->renameScript->toPlainText(); + if (!s.endsWith(QChar('\n'))) + s += QChar('\n'); + return s; } void RenameSettingsDialog::setRenameString(const QString &renameScript) { ui->renameScript->setPlainText(renameScript); + originalScript = renameScript; } void RenameSettingsDialog::on_buttonBox_clicked(QAbstractButton *button) { - + switch (ui->buttonBox->standardButton(button)) + { + case QDialogButtonBox::Reset: + { + ui->input->setPlainText(originalEnv); + setParserType(originalParserType); + ui->renameScript->setPlainText(originalScript); + } + break; + case QDialogButtonBox::RestoreDefaults: + { + ui->input->setPlainText(QString::fromUtf8(envStrAniAdd)); + setParserType(RenameParser::RenameEngine::AniAdd); + ui->renameScript->setPlainText(QString::fromUtf8(rulesStrAniAddNoCompat)); + } + break; + default: + break; + } } - diff --git a/renamesettingsdialog.h b/renamesettingsdialog.h index 5bd5a66..b344546 100644 --- a/renamesettingsdialog.h +++ b/renamesettingsdialog.h @@ -52,6 +52,10 @@ private: RenameParser::RenameEngine *rulesEngine; RenameParser::Environment env; + + QString originalEnv; + RenameParser::RenameEngine::ParserType originalParserType; + QString originalScript; }; #endif // RENAMESETTINGSDIALOG_H diff --git a/renamesettingsdialog.ui b/renamesettingsdialog.ui index 4d60156..bcf4c8e 100644 --- a/renamesettingsdialog.ui +++ b/renamesettingsdialog.ui @@ -6,8 +6,8 @@ 0 0 - 601 - 596 + 1029 + 678 @@ -23,7 +23,13 @@ - + + + + DejaVu Sans Mono + + + @@ -35,7 +41,16 @@ - + + + + DejaVu Sans Mono + + + + true + + @@ -90,7 +105,29 @@ - + + + + DejaVu Sans Mono + + + + + + + + + + + Status + + + + + + + +