From 5da564595b99c594405b8067feb8a33feb491825 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Tue, 19 Aug 2025 18:19:42 +0200 Subject: [PATCH] end support of saving .ini file format for mirror configs --- dftfringe_fr.ts | 2 +- metricsdisplay.ui | 2 +- mirrordlg.cpp | 66 +++++++++-------------------------------------- 3 files changed, 14 insertions(+), 56 deletions(-) diff --git a/dftfringe_fr.ts b/dftfringe_fr.ts index 343f672c..81bf2348 100644 --- a/dftfringe_fr.ts +++ b/dftfringe_fr.ts @@ -2473,7 +2473,7 @@ Wave Length nm - Read mirror configuratoin file + Read mirror configuration file diff --git a/metricsdisplay.ui b/metricsdisplay.ui index 076ef8eb..c657abba 100644 --- a/metricsdisplay.ui +++ b/metricsdisplay.ui @@ -188,7 +188,7 @@ Conic: false - <html><head/><body><p>Only computed if Artificial null is checked in Mirror Configuratoin.</p></body></html> + <html><head/><body><p>Only computed if Artificial null is checked in Mirror Configuration.</p></body></html> QFrame::Panel diff --git a/mirrordlg.cpp b/mirrordlg.cpp index a065f2bb..b5038108 100644 --- a/mirrordlg.cpp +++ b/mirrordlg.cpp @@ -185,65 +185,23 @@ void mirrorDlg:: on_saveBtn_clicked() { QSettings settings; QString path = settings.value("mirrorConfigFile").toString(); - if (m_useAnnular){ - path.replace(".ini",".json"); - } - QString extensionTypes(tr((m_useAnnular)? "config file (*.json)" : "config file (*.ini *.json)")); - QString fileName = QFileDialog::getSaveFileName(0, + QString extensionTypes("config file (*.json)"); + QString fileName = QFileDialog::getSaveFileName(this, tr("Save config file"), path, extensionTypes); - if (fileName.isEmpty()) - return; - if (QFileInfo(fileName).suffix().isEmpty()) { fileName.append(".json"); } - std::ofstream file(fileName.toStdString().c_str(),std::ios_base::out|std::ios_base::binary); - if (!file.is_open()) { - QMessageBox::warning(0, tr("Save mirror config."), - tr("Cannot write file %1: ") - .arg(fileName)); + if (fileName.isEmpty()){ + // cancel has been pressed return; } - if (fileName.endsWith(".json" )){ - saveJson(fileName); - } - else { - if (m_useAnnular){ - QMessageBox::warning(0, tr("Save Mirror config."), - tr(".ini file can not save annular data. Chose file type of .json instead")); - return; - } - const unsigned char flag[] = {0xFF,0xFE,0xFF}; - const unsigned char zeros[] = {0,0,0,0}; - file.write((char*)flag,3); - - int cnt = m_name.length(); - - file.write((char*)(&cnt),1); - const ushort *m = m_name.utf16(); - file.write((char*)m,2 * cnt); - file.write((char *)&doNull, 1); // OpenFringe size of bool was 4 bytes but modern size is 1; - file.write((char *)zeros, 3); // fill out to size of 4 bytes; - - file.write((char*)&fringeSpacing,8); - file.write((char*)&diameter,8); - file.write((char*)&lambda,8); - file.write((char*)&mm,4); - file.write((char*)&obs,8); - file.write((char*)&roc,8); - file.write((char*)&cc,8); - file.write((char*)&z8,8); - file.write((char*)&zeros,4); // double pass - file.write((char*)&zeros,4); // two colors traced - file.write((char*)&fliph,1); // flip lr - file.write((char*)&zeros,3); // remainder of flip - file.write((char*)&flipv,1); - file.write((char*)&zeros,3); // remainder vr - file.write((char*)&m_outlineShape,4); // use ellipse - file.write((char*)&m_verticalAxis,8); // minor axis - - file.close(); + if (!fileName.endsWith(".json" )){ + // filename.extension => filename.extension.json + // filename => filename.json + // filename.json => filename.json (unchanged) + fileName.append(".json"); } + saveJson(fileName); QFileInfo info(fileName); - settings.setValue("mirrorConfigFile",fileName); + settings.setValue("mirrorConfigFile", fileName); settings.setValue("projectPath", info.absolutePath()); m_projectPath = info.absolutePath(); } @@ -484,7 +442,7 @@ void mirrorDlg::on_ReadBtn_clicked() QSettings settings; QString lastPath = settings.value("lastPath",".").toString(); QString fileName = QFileDialog::getOpenFileName(this, - tr("Read mirror configuratoin file"), lastPath, + tr("Read mirror configuration file"), lastPath, tr("ini (*.ini *.json)")); if (fileName.isEmpty()) return;