feat(cpn): refactor handling of erroneous models (#7377)

This commit is contained in:
Neil Horne
2026-06-16 15:19:24 +10:00
committed by GitHub
parent 6a3349f095
commit 4ebf3486f1
7 changed files with 115 additions and 21 deletions
+16 -6
View File
@@ -677,9 +677,9 @@ void MainWindow::updateMenus()
saveAsAct->setEnabled(activeChild);
closeAct->setEnabled(activeChild);
compareAct->setEnabled(activeChild);
writeSettingsAct->setEnabled(activeChild && !activeMdiChild()->invalidModels());
writeSettingsAct->setEnabled(activeChild);
readSettingsAct->setEnabled(true);
writeSettingsSDPathAct->setEnabled(activeChild && isSDPathValid() && !activeMdiChild()->invalidModels());
writeSettingsSDPathAct->setEnabled(activeChild && isSDPathValid());
readSettingsSDPathAct->setEnabled(isSDPathValid());
writeBUToRadioAct->setEnabled(false);
readBUToFileAct->setEnabled(false);
@@ -1518,12 +1518,22 @@ bool MainWindow::readSettingsFromSDPath(const QString & filename)
void MainWindow::writeSettingsSDPath()
{
StatusDialog *status = new StatusDialog(this, tr("Writing models and settings to SD path"), tr("In progress..."), 400);
if (activeMdiChild()) {
int cnt = activeMdiChild()->invalidModels();
if (activeMdiChild())
if (cnt) {
QMessageBox::critical(this, tr("Write Models and Settings to SD Path"),
tr("Operation aborted: %1 models have errors that may affect operation.\n%2")
.arg(cnt)
.arg(activeMdiChild()->modelErrorsList().join("\n")));
return;
}
StatusDialog *status = new StatusDialog(this, tr("Writing models and settings to SD path"), tr("In progress..."), 400);
activeMdiChild()->writeSettings(status, false);
delete status;
delete status;
}
}
bool MainWindow::isSDPathValid()