1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-13 20:48:42 +01:00
LibrePilot/ground/openpilotgcs/src/plugins/lineardial/lineardialgadgetconfiguration.cpp

120 lines
4.3 KiB
C++
Raw Normal View History

/**
******************************************************************************
*
* @file lineardialgadgetconfiguration.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup LinearDialPlugin Linear Dial Plugin
* @{
* @brief Implements a gadget that displays linear gauges
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "lineardialgadgetconfiguration.h"
#include "utils/pathutils.h"
/**
* Loads a saved configuration or defaults if non exist.
*
*/
LineardialGadgetConfiguration::LineardialGadgetConfiguration(QString classId, QSettings* qSettings, QObject *parent) :
IUAVGadgetConfiguration(classId, parent),
dialFile("Unknown"),
sourceDataObject("Unknown"),
sourceObjectField("Unknown"),
minValue(0),
maxValue(100),
redMin(0),
redMax(33),
yellowMin(33),
yellowMax(66),
greenMin(66),
greenMax(100),
factor(1.00),
decimalPlaces(0)
{
//if a saved configuration exists load it
if(qSettings != 0) {
QString dFile = qSettings->value("dFile").toString();
dialFile = Utils::PathUtils().InsertDataPath(dFile);
sourceDataObject = qSettings->value("sourceDataObject").toString();
sourceObjectField = qSettings->value("sourceObjectField").toString();
minValue = qSettings->value("minValue").toDouble();
maxValue = qSettings->value("maxValue").toDouble();
redMin = qSettings->value("redMin").toDouble();
redMax = qSettings->value("redMax").toDouble();
yellowMin = qSettings->value("yellowMin").toDouble();
yellowMax = qSettings->value("yellowMax").toDouble();
greenMin = qSettings->value("greenMin").toDouble();
greenMax = qSettings->value("greenMax").toDouble();
font = qSettings->value("font").toString();
decimalPlaces = qSettings->value("decimalPlaces").toInt();
factor = qSettings->value("factor").toDouble();
useOpenGLFlag = qSettings->value("useOpenGLFlag").toBool();
}
}
/**
* Clones a configuration.
*
*/
IUAVGadgetConfiguration *LineardialGadgetConfiguration::clone()
{
LineardialGadgetConfiguration *m = new LineardialGadgetConfiguration(this->classId());
m->dialFile=dialFile;
m->sourceDataObject = sourceDataObject;
m->sourceObjectField = sourceObjectField;
m->minValue = minValue;
m->maxValue = maxValue;
m->redMin = redMin;
m->redMax = redMax;
m->yellowMin = yellowMin;
m->yellowMax = yellowMax;
m->greenMin = greenMin;
m->greenMax = greenMax;
m->font = font;
m->decimalPlaces = decimalPlaces;
m->factor = factor;
m->useOpenGLFlag = useOpenGLFlag;
return m;
}
/**
* Saves a configuration.
*
*/
void LineardialGadgetConfiguration::saveConfig(QSettings* qSettings) const {
QString dFile = Utils::PathUtils().RemoveDataPath(dialFile);
qSettings->setValue("dFile", dFile);
qSettings->setValue("sourceDataObject", sourceDataObject);
qSettings->setValue("sourceObjectField", sourceObjectField);
qSettings->setValue("minValue", minValue);
qSettings->setValue("maxValue", maxValue);
qSettings->setValue("redMin", redMin);
qSettings->setValue("redMax", redMax);
qSettings->setValue("yellowMin", yellowMin);
qSettings->setValue("yellowMax", yellowMax);
qSettings->setValue("greenMin", greenMin);
qSettings->setValue("greenMax", greenMax);
qSettings->setValue("font", font);
qSettings->setValue("decimalPlaces", decimalPlaces);
qSettings->setValue("factor", factor);
qSettings->setValue("useOpenGLFlag", useOpenGLFlag);
}