| 265 | } |
| 266 | |
| 267 | QString ConfigWindow::saveConfig(int index) |
| 268 | { |
| 269 | auto sc = configs[index]; |
| 270 | auto oldSc = sc; |
| 271 | updateSolverConfig(configs[currentIndex()]); |
| 272 | |
| 273 | if (sc->isBuiltin) { |
| 274 | // Must clone built-in configs |
| 275 | sc = new SolverConfiguration(*sc); |
| 276 | } |
| 277 | |
| 278 | QString target = sc->paramFile; |
| 279 | if (sc->paramFile.isEmpty()) { |
| 280 | QFileInfo fi(sc->paramFile); |
| 281 | target = QFileDialog::getSaveFileName(this, |
| 282 | "Save configuration", |
| 283 | fi.canonicalFilePath(), |
| 284 | "Solver configuration files (*.mpc)"); |
| 285 | } |
| 286 | |
| 287 | if (target.isEmpty()) { |
| 288 | return ""; |
| 289 | } |
| 290 | |
| 291 | QFile f(target); |
| 292 | f.open(QFile::WriteOnly | QFile::Truncate); |
| 293 | f.write(sc->toJSON()); |
| 294 | f.close(); |
| 295 | |
| 296 | oldSc->modified = false; |
| 297 | sc->modified = false; |
| 298 | sc->paramFile = target; |
| 299 | populateComboBox(); |
| 300 | |
| 301 | emit configSaved(target); |
| 302 | return target; |
| 303 | } |
| 304 | |
| 305 | QString ConfigWindow::saveConfig() |
| 306 | { |
no test coverage detected