File indexing completed on 2024-04-28 05:49:10
0001 /* This file is part of the KDE project 0002 SPDX-FileCopyrightText: 2014 Martin Sandsmark <martin.sandsmark@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "replicodeconfig.h" 0008 #include "replicodesettings.h" 0009 #include "ui_config.h" 0010 0011 enum TraceLevels { 0012 CompositeInputs = 1 << 0, 0013 CompositeOutputs = 1 << 1, 0014 ModelInputs = 1 << 2, 0015 ModelOutputs = 1 << 3, 0016 PredictionMonitoring = 1 << 4, 0017 GoalMonitoring = 1 << 5, 0018 ModelRevision = 1 << 6, 0019 ModelCompositeInjection = 1 << 7 0020 }; 0021 0022 ReplicodeConfig::ReplicodeConfig(QWidget *parent) 0023 : QTabWidget(parent) 0024 , m_ui(new Ui_tabWidget) 0025 , m_settings(new ReplicodeSettings(this)) 0026 { 0027 m_ui->setupUi(this); 0028 load(); 0029 } 0030 0031 ReplicodeConfig::~ReplicodeConfig() 0032 { 0033 delete m_ui; 0034 } 0035 0036 void ReplicodeConfig::load() 0037 { 0038 m_ui->basePeriod->setValue(m_settings->basePeriod); 0039 m_ui->debug->setChecked(m_settings->debug); 0040 m_ui->debugWindows->setValue(m_settings->debugWindows); 0041 m_ui->decObjFile->setText(m_settings->decompilationFilePath); 0042 m_ui->decompileModels->setChecked(m_settings->decompileModels); 0043 m_ui->decompileObjects->setChecked(m_settings->decompileObjects); 0044 m_ui->dumpModelsFile->setText(m_settings->modelsPath); 0045 m_ui->dumpObjFile->setText(m_settings->objectsPath); 0046 m_ui->floatTolerance->setValue(m_settings->floatTolerance); 0047 m_ui->goalPredSuccessRes->setValue(m_settings->goalPredictionSuccessResilience); 0048 m_ui->ignoreNamedModels->setChecked(m_settings->ignoreNamedModels); 0049 m_ui->maxSimTimeHoriz->setValue(m_settings->maximumSimulationTimeHorizon); 0050 m_ui->minSimTimeHoriz->setValue(m_settings->minimumSimulationTimeHorizon); 0051 m_ui->modelInertiacount->setValue(m_settings->mdlInertiaCountThreshold); 0052 m_ui->modelInertiaSuccessRate->setValue(m_settings->mdlInertiaSuccessRateThreshold); 0053 m_ui->notifMarkerRes->setValue(m_settings->notificationMarkerResilience); 0054 m_ui->perfSamplePeriod->setValue(m_settings->perfSamplingPeriod); 0055 m_ui->primaryTimeHoriz->setValue(m_settings->primaryTimeHorizon); 0056 m_ui->probeLevel->setValue(m_settings->probeLevel); 0057 m_ui->reductionCoreCount->setValue(m_settings->reductionCoreCount); 0058 m_ui->runTime->setValue(m_settings->runTime); 0059 m_ui->secondaryTimeHoriz->setValue(m_settings->secondaryTimeHorizon); 0060 m_ui->simTimeHoriz->setValue(m_settings->simulationTimeHorizon); 0061 m_ui->testModels->setChecked(m_settings->testModels); 0062 m_ui->testObj->setChecked(m_settings->testObjects); 0063 m_ui->timeCoreCount->setValue(m_settings->timeCoreCount); 0064 m_ui->timerTolerance->setValue(m_settings->timeTolerance); 0065 m_ui->tpxDeltaSuccessRate->setValue(m_settings->tpxDeltaSuccessRateThreshold); 0066 m_ui->tpxTimeHoriz->setValue(m_settings->tpxTimehorizon); 0067 m_ui->userClassPath->setText(m_settings->userClassPath); 0068 m_ui->userModulePath->setText(m_settings->userOperatorPath); 0069 0070 m_ui->traceCompInputs->setChecked(m_settings->traceLevels & CompositeInputs); 0071 m_ui->traceCompOutputs->setChecked(m_settings->traceLevels & CompositeOutputs); 0072 m_ui->traceModelIn->setChecked(m_settings->traceLevels & ModelInputs); 0073 m_ui->traceModelOut->setChecked(m_settings->traceLevels & ModelOutputs); 0074 m_ui->tracePredMon->setChecked(m_settings->traceLevels & PredictionMonitoring); 0075 m_ui->traceGoalMon->setChecked(m_settings->traceLevels & GoalMonitoring); 0076 m_ui->traceModelRev->setChecked(m_settings->traceLevels & ModelRevision); 0077 m_ui->traceModComInj->setChecked(m_settings->traceLevels & ModelCompositeInjection); 0078 } 0079 0080 void ReplicodeConfig::save() 0081 { 0082 m_settings->basePeriod = m_ui->basePeriod->value(); 0083 m_settings->debug = m_ui->debug->isChecked(); 0084 m_settings->debugWindows = m_ui->debugWindows->value(); 0085 m_settings->decompilationFilePath = m_ui->decObjFile->text(); 0086 m_settings->decompileModels = m_ui->decompileModels->isChecked(); 0087 m_settings->decompileObjects = m_ui->decompileObjects->isChecked(); 0088 m_settings->modelsPath = m_ui->dumpModelsFile->text(); 0089 m_settings->objectsPath = m_ui->dumpObjFile->text(); 0090 m_settings->floatTolerance = m_ui->floatTolerance->value(); 0091 m_settings->goalPredictionSuccessResilience = m_ui->goalPredSuccessRes->value(); 0092 m_settings->ignoreNamedModels = m_ui->ignoreNamedModels->isChecked(); 0093 m_settings->maximumSimulationTimeHorizon = m_ui->maxSimTimeHoriz->value(); 0094 m_settings->minimumSimulationTimeHorizon = m_ui->minSimTimeHoriz->value(); 0095 m_settings->mdlInertiaCountThreshold = m_ui->modelInertiacount->value(); 0096 m_settings->mdlInertiaSuccessRateThreshold = m_ui->modelInertiaSuccessRate->value(); 0097 m_settings->notificationMarkerResilience = m_ui->notifMarkerRes->value(); 0098 m_settings->perfSamplingPeriod = m_ui->perfSamplePeriod->value(); 0099 m_settings->primaryTimeHorizon = m_ui->primaryTimeHoriz->value(); 0100 m_settings->probeLevel = m_ui->probeLevel->value(); 0101 m_settings->reductionCoreCount = m_ui->reductionCoreCount->value(); 0102 m_settings->runTime = m_ui->runTime->value(); 0103 m_settings->secondaryTimeHorizon = m_ui->secondaryTimeHoriz->value(); 0104 m_settings->simulationTimeHorizon = m_ui->simTimeHoriz->value(); 0105 m_settings->testModels = m_ui->testModels->isChecked(); 0106 m_settings->testObjects = m_ui->testObj->isChecked(); 0107 m_settings->timeCoreCount = m_ui->timeCoreCount->value(); 0108 m_settings->timeTolerance = m_ui->timerTolerance->value(); 0109 m_settings->tpxDeltaSuccessRateThreshold = m_ui->tpxDeltaSuccessRate->value(); 0110 m_settings->tpxTimehorizon = m_ui->tpxTimeHoriz->value(); 0111 m_settings->userClassPath = m_ui->userClassPath->text(); 0112 m_settings->userOperatorPath = m_ui->userModulePath->text(); 0113 0114 int trace = 0; 0115 if (m_ui->traceCompInputs->isChecked()) { 0116 trace |= CompositeInputs; 0117 } 0118 if (m_ui->traceCompOutputs->isChecked()) { 0119 trace |= CompositeOutputs; 0120 } 0121 if (m_ui->traceModelIn->isChecked()) { 0122 trace |= ModelInputs; 0123 } 0124 if (m_ui->traceModelOut->isChecked()) { 0125 trace |= ModelOutputs; 0126 } 0127 if (m_ui->tracePredMon->isChecked()) { 0128 trace |= PredictionMonitoring; 0129 } 0130 if (m_ui->traceGoalMon->isChecked()) { 0131 trace |= GoalMonitoring; 0132 } 0133 if (m_ui->traceModelRev->isChecked()) { 0134 trace |= ModelRevision; 0135 } 0136 if (m_ui->traceModComInj->isChecked()) { 0137 trace |= ModelCompositeInjection; 0138 } 0139 m_settings->traceLevels = trace; 0140 m_settings->save(); 0141 } 0142 0143 void ReplicodeConfig::reset() 0144 { 0145 m_settings->setDefaults(); 0146 load(); 0147 } 0148 0149 #include "moc_replicodeconfig.cpp"