Improve support of empty input data

This commit is contained in:
Gres 2020-03-31 19:43:28 +03:00
parent e36fbbf3b0
commit ff19f87b44
2 changed files with 10 additions and 3 deletions

View File

@ -82,8 +82,7 @@ Substitutions SubstitutionsTable::substitutions() const
Substitutions result;
for (auto row = 0, end = rowCount(); row < end; ++row) {
const auto pair = at(row);
SOFT_ASSERT(!pair.first.isEmpty(), continue);
if (pair.second.source.isEmpty())
if (pair.first.isEmpty() || pair.second.source.isEmpty())
continue;
result.emplace(pair.first, pair.second);
}
@ -124,6 +123,9 @@ std::pair<LanguageId, Substitution> SubstitutionsTable::at(int row) const
auto combo = static_cast<QComboBox *>(cellWidget(row, int(E::Language)));
SOFT_ASSERT(combo, return {});
if (combo->currentText().isEmpty())
return {};
const auto langId = LanguageCodes::idForName(combo->currentText());
SOFT_ASSERT(!langId.isEmpty(), return {});

View File

@ -123,11 +123,16 @@ void Translator::updateSettings()
}
tabs_->blockSignals(false);
if (settings_.translators.empty()) {
manager_.fatalError(tr("No translators selected"));
return;
}
const auto loaded =
loadScripts(settings_.translatorsDir, settings_.translators);
if (loaded.empty()) {
manager_.fatalError(
tr("No translators loaded from %1 (named %2)")
tr("No translators loaded from %1 (%2)")
.arg(settings_.translatorsDir, settings_.translators.join(", ")));
return;
}