1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-14 21:23:52 +01:00
LibrePilot/ground/openpilotgcs/src/plugins/dial/dialgadgetconfiguration.cpp
pip e5e80bde27 Made openGL option default to not used, added smooth option to dials plugin
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2615 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-28 21:20:45 +00:00

173 lines
6.8 KiB
C++

/**
******************************************************************************
*
* @file dialgadgetconfiguration.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @see The GNU Public License (GPL) Version 3
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup DialPlugin Dial Plugin
* @{
* @brief Plots flight information rotary style dials
*****************************************************************************/
/*
* 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 "dialgadgetconfiguration.h"
#include "utils/pathutils.h"
/**
* Loads a saved configuration or defaults if non exist.
*
*/
DialGadgetConfiguration::DialGadgetConfiguration(QString classId, QSettings* qSettings, QObject *parent) :
IUAVGadgetConfiguration(classId, parent),
m_defaultDial("Unknown"),
dialBackgroundID("background"),
dialForegroundID("foreground"),
dialNeedleID1("needle"),
dialNeedleID2("needle2"),
dialNeedleID3("needle3"),
needle1MinValue(0),
needle1MaxValue(100),
needle2MinValue(0),
needle2MaxValue(100),
needle3MinValue(0),
needle3MaxValue(100),
needle1Factor(1),
needle2Factor(1),
needle3Factor(1),
needle1Move("Rotate"),
needle2Move("Rotate"),
needle3Move("Rotate"),
useOpenGLFlag(false),
beSmooth(true)
{
//if a saved configuration exists load it
if(qSettings != 0) {
QString dialFile = qSettings->value("dialFile").toString();
m_defaultDial=Utils::PathUtils().InsertDataPath(dialFile);
dialBackgroundID = qSettings->value("dialBackgroundID").toString();
dialForegroundID = qSettings->value("dialForegroundID").toString();
dialNeedleID1 = qSettings->value("dialNeedleID1").toString();
dialNeedleID2 = qSettings->value("dialNeedleID2").toString();
dialNeedleID3 = qSettings->value("dialNeedleID3").toString();
needle1MinValue = qSettings->value("needle1MinValue").toDouble();
needle1MaxValue = qSettings->value("needle1MaxValue").toDouble();
needle2MinValue = qSettings->value("needle2MinValue").toDouble();
needle2MaxValue = qSettings->value("needle2MaxValue").toDouble();
needle3MinValue = qSettings->value("needle3MinValue").toDouble();
needle3MaxValue = qSettings->value("needle3MaxValue").toDouble();
needle1DataObject = qSettings->value("needle1DataObject").toString();
needle1ObjectField = qSettings->value("needle1ObjectField").toString();
needle2DataObject = qSettings->value("needle2DataObject").toString();
needle2ObjectField = qSettings->value("needle2ObjectField").toString();
needle3DataObject = qSettings->value("needle3DataObject").toString();
needle3ObjectField = qSettings->value("needle3ObjectField").toString();
needle1Factor = qSettings->value("needle1Factor").toDouble();
needle2Factor = qSettings->value("needle2Factor").toDouble();
needle3Factor = qSettings->value("needle3Factor").toDouble();
needle1Move = qSettings->value("needle1Move").toString();
needle2Move = qSettings->value("needle2Move").toString();
needle3Move = qSettings->value("needle3Move").toString();
font = qSettings->value("font").toString();
useOpenGLFlag = qSettings->value("useOpenGLFlag").toBool();
beSmooth = qSettings->value("beSmooth").toBool();
}
}
/**
* Clones a configuration.
*
*/
IUAVGadgetConfiguration *DialGadgetConfiguration::clone()
{
DialGadgetConfiguration *m = new DialGadgetConfiguration(this->classId());
m->m_defaultDial=m_defaultDial;
m->setDialBackgroundID(dialBackgroundID);
m->setDialForegroundID(dialForegroundID);
m->setDialNeedleID1(dialNeedleID1);
m->setDialNeedleID2(dialNeedleID2);
m->setDialNeedleID3(dialNeedleID3);
m->setN1Min(needle1MinValue);
m->setN1Max(needle1MaxValue);
m->setN2Min(needle2MinValue);
m->setN2Max(needle2MaxValue);
m->setN3Min(needle3MinValue);
m->setN3Max(needle3MaxValue);
m->setN1DataObject(needle1DataObject);
m->setN1ObjField(needle1ObjectField);
m->setN2DataObject(needle2DataObject);
m->setN2ObjField(needle2ObjectField);
m->setN3DataObject(needle3DataObject);
m->setN3ObjField(needle3ObjectField);
m->setN1Factor(needle1Factor);
m->setN2Factor(needle2Factor);
m->setN3Factor(needle3Factor);
m->setN1Move(needle1Move);
m->setN2Move(needle2Move);
m->setN3Move(needle3Move);
m->setFont(font);
m->useOpenGLFlag = useOpenGLFlag;
m->beSmooth = beSmooth;
return m;
}
/**
* Saves a configuration.
*
*/
void DialGadgetConfiguration::saveConfig(QSettings* settings) const {
QString dialFile = Utils::PathUtils().RemoveDataPath(m_defaultDial);
settings->setValue("dialFile", dialFile);
settings->setValue("dialBackgroundID", dialBackgroundID);
settings->setValue("dialForegroundID", dialForegroundID);
settings->setValue("dialNeedleID1", dialNeedleID1);
settings->setValue("dialNeedleID2", dialNeedleID2);
settings->setValue("dialNeedleID3", dialNeedleID3);
settings->setValue("needle1MinValue", needle1MinValue);
settings->setValue("needle1MaxValue", needle1MaxValue);
settings->setValue("needle2MinValue", needle2MinValue);
settings->setValue("needle2MaxValue", needle2MaxValue);
settings->setValue("needle3MinValue", needle3MinValue);
settings->setValue("needle3MaxValue", needle3MaxValue);
settings->setValue("needle1DataObject", needle1DataObject);
settings->setValue("needle1ObjectField", needle1ObjectField);
settings->setValue("needle2DataObject", needle2DataObject);
settings->setValue("needle2ObjectField", needle2ObjectField);
settings->setValue("needle3DataObject", needle3DataObject);
settings->setValue("needle3ObjectField", needle3ObjectField);
settings->setValue("needle1Factor", needle1Factor);
settings->setValue("needle2Factor", needle2Factor);
settings->setValue("needle3Factor", needle3Factor);
settings->setValue("needle1Move", needle1Move);
settings->setValue("needle2Move", needle2Move);
settings->setValue("needle3Move", needle3Move);
settings->setValue("font", font);
settings->setValue("useOpenGLFlag", useOpenGLFlag);
settings->setValue("beSmooth", beSmooth);
}