diff --git a/src/filterBeforeBox.cpp b/src/filterBeforeBox.cpp index 052218418487f59760a5081e7203458bf14b7be4..b9a6255d9e6305ca9013cc0d5255205f72b17274 100644 --- a/src/filterBeforeBox.cpp +++ b/src/filterBeforeBox.cpp @@ -112,14 +112,7 @@ bool FilterBeforeBox::getXmlSub(QDomElement &subSubElem) } if(subSubElem.hasAttribute("VALUE")) { - try - { - setValue(mUi->filterBorderParamSize, subSubElem.attribute("VALUE").toInt()); - } - catch(std::domain_error &e) - { - PCritical(nullptr, "Out-of-range value", QString::fromStdString(e.what())); - } + setValue(mUi->filterBorderParamSize, subSubElem.attribute("VALUE").toInt()); } // bgColor still needs to be read by control return false; diff --git a/src/intrinsicBox.cpp b/src/intrinsicBox.cpp index f3faaa8e093915d2ef30a7b4a5de1b42b73e8528..bf96c6a66fabb1309b9e799487ba4034a521d00c 100644 --- a/src/intrinsicBox.cpp +++ b/src/intrinsicBox.cpp @@ -77,34 +77,24 @@ void IntrinsicBox::setIntrinsicCameraParams(const IntrinsicCameraParams ¶ms) // don't want to send signals for intermediate params const QSignalBlocker blocker(this); - try - { - setValue(mUi->fx, params.getFx()); - setValue(mUi->fy, params.getFy()); - setValue(mUi->cx, params.getCx()); - setValue(mUi->cy, params.getCy()); - setValue(mUi->r2, static_cast<double>(params.distortionCoeffs.at<float>(0))); - setValue(mUi->r4, static_cast<double>(params.distortionCoeffs.at<float>(1))); - setValue(mUi->tx, static_cast<double>(params.distortionCoeffs.at<float>(2))); - setValue(mUi->ty, static_cast<double>(params.distortionCoeffs.at<float>(3))); - setValue(mUi->r6, static_cast<double>(params.distortionCoeffs.at<float>(4))); - setValue(mUi->k4, static_cast<double>(params.distortionCoeffs.at<float>(5))); - setValue(mUi->k5, static_cast<double>(params.distortionCoeffs.at<float>(6))); - setValue(mUi->k6, static_cast<double>(params.distortionCoeffs.at<float>(7))); - setValue(mUi->s1, static_cast<double>(params.distortionCoeffs.at<float>(8))); - setValue(mUi->s2, static_cast<double>(params.distortionCoeffs.at<float>(9))); - setValue(mUi->s3, static_cast<double>(params.distortionCoeffs.at<float>(10))); - setValue(mUi->s4, static_cast<double>(params.distortionCoeffs.at<float>(11))); - setValue(mUi->taux, static_cast<double>(params.distortionCoeffs.at<float>(12))); - setValue(mUi->tauy, static_cast<double>(params.distortionCoeffs.at<float>(13))); - } - catch(std::domain_error &e) - { - std::stringstream ss; - ss << e.what() << "\nUsing old values instead"; - PCritical(nullptr, "Out-of-range value", QString::fromStdString(ss.str())); - return; - } + setValue(mUi->fx, params.getFx()); + setValue(mUi->fy, params.getFy()); + setValue(mUi->cx, params.getCx()); + setValue(mUi->cy, params.getCy()); + setValue(mUi->r2, static_cast<double>(params.distortionCoeffs.at<float>(0))); + setValue(mUi->r4, static_cast<double>(params.distortionCoeffs.at<float>(1))); + setValue(mUi->tx, static_cast<double>(params.distortionCoeffs.at<float>(2))); + setValue(mUi->ty, static_cast<double>(params.distortionCoeffs.at<float>(3))); + setValue(mUi->r6, static_cast<double>(params.distortionCoeffs.at<float>(4))); + setValue(mUi->k4, static_cast<double>(params.distortionCoeffs.at<float>(5))); + setValue(mUi->k5, static_cast<double>(params.distortionCoeffs.at<float>(6))); + setValue(mUi->k6, static_cast<double>(params.distortionCoeffs.at<float>(7))); + setValue(mUi->s1, static_cast<double>(params.distortionCoeffs.at<float>(8))); + setValue(mUi->s2, static_cast<double>(params.distortionCoeffs.at<float>(9))); + setValue(mUi->s3, static_cast<double>(params.distortionCoeffs.at<float>(10))); + setValue(mUi->s4, static_cast<double>(params.distortionCoeffs.at<float>(11))); + setValue(mUi->taux, static_cast<double>(params.distortionCoeffs.at<float>(12))); + setValue(mUi->tauy, static_cast<double>(params.distortionCoeffs.at<float>(13))); if(params.reprojectionError == std::numeric_limits<float>::quiet_NaN()) { diff --git a/src/logoItem.cpp b/src/logoItem.cpp index 0b1d675bafb4b5cc5466a077bd3f13c90a8f703f..2d1d2ac79e9ac41d0b793570b9251a1b2d2f2613 100644 --- a/src/logoItem.cpp +++ b/src/logoItem.cpp @@ -68,5 +68,3 @@ void LogoItem::fadeIn() mFadeAnimation->setDuration(mFadeDuration); mFadeAnimation->start(); } - -#include "moc_logoItem.cpp" diff --git a/src/petrack.cpp b/src/petrack.cpp index ac259d06c2e16f6542c15b8460cd50b9f30e68fc..ee949ef81546d903592bf6e9490cb67c685d4936 100644 --- a/src/petrack.cpp +++ b/src/petrack.cpp @@ -686,6 +686,11 @@ void Petrack::openProject(QString fileName, bool openSeq) // default fileName="" PCritical(this, tr("PeTrack"), tr("Cannot open %1:\n%2.").arg(fileName, file.errorString())); return; } + + QDomDocument oldSettings; + QString oldProFilename = mProFileName; + saveXml(oldSettings); + resetSettings(); QDomDocument doc("PETRACK"); // eigentlich Pfad zu Beschreibungsdatei fuer Dateiaufbau if(!doc.setContent(&file)) @@ -711,7 +716,20 @@ void Petrack::openProject(QString fileName, bool openSeq) // default fileName="" .arg(fileName, mPetrackVersion, root.attribute("VERSION"))); } } - openXml(doc, openSeq); + try + { + openXml(doc, openSeq); + } + catch(std::domain_error &e) + { + // reset to settings before trying to load new file + openXml(oldSettings); + setProFileName(oldProFilename); + + auto errorStr = QString{"Error during reading of pet file:\n%1"}.arg(e.what()); + PCritical(this, "Could not read pet-file", errorStr); + return; + } mLastTrackerExport = mTrcFileName; updateWindowTitle(); diff --git a/tests/unit_test/tst_intrinsicBox.cpp b/tests/unit_test/tst_intrinsicBox.cpp index 611fcd5dbd5d9f9c35ed53b27deb9d736215888d..bb21d7bbf7d65d8eecdf273757636d6fdaae7ea0 100644 --- a/tests/unit_test/tst_intrinsicBox.cpp +++ b/tests/unit_test/tst_intrinsicBox.cpp @@ -126,10 +126,9 @@ TEST_CASE("IntrinsicCameraParams values") { params.distortionCoeffs.at<float>(12) = 56468; auto oldParams = intrBox.getIntrinsicCameraParams(); - THEN("The values do not get changed") + THEN("An exception is thrown") { - intrBox.setIntrinsicCameraParams(params); - CHECK(intrBox.getIntrinsicCameraParams() == oldParams); + CHECK_THROWS_AS(intrBox.setIntrinsicCameraParams(params), std::domain_error); } }