mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-13 20:48:42 +01:00
138 lines
5.7 KiB
C++
138 lines
5.7 KiB
C++
/**
|
|
******************************************************************************
|
|
*
|
|
* @file opmapgadgetconfiguration.cpp
|
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
|
* @addtogroup GCSPlugins GCS Plugins
|
|
* @{
|
|
* @addtogroup OPMapPlugin OpenPilot Map Plugin
|
|
* @{
|
|
* @brief The OpenPilot Map plugin
|
|
*****************************************************************************/
|
|
/*
|
|
* 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 "opmapgadgetconfiguration.h"
|
|
#include "utils/pathutils.h"
|
|
#include <QDir>
|
|
|
|
OPMapGadgetConfiguration::OPMapGadgetConfiguration(QString classId, QSettings* qSettings, QObject *parent) :
|
|
IUAVGadgetConfiguration(classId, parent),
|
|
m_mapProvider("GoogleHybrid"),
|
|
m_defaultZoom(2),
|
|
m_defaultLatitude(0),
|
|
m_defaultLongitude(0),
|
|
m_useOpenGL(false),
|
|
m_showTileGridLines(false),
|
|
m_accessMode("ServerAndCache"),
|
|
m_useMemoryCache(true),
|
|
m_cacheLocation(Utils::PathUtils().GetStoragePath() + "mapscache" + QDir::separator()),
|
|
m_uavSymbol(QString::fromUtf8(":/uavs/images/mapquad.png")),
|
|
m_maxUpdateRate(2000), // ms
|
|
m_settings(qSettings),
|
|
m_opacity(1)
|
|
{
|
|
|
|
//if a saved configuration exists load it
|
|
if (qSettings != 0) {
|
|
|
|
QString mapProvider = qSettings->value("mapProvider").toString();
|
|
int zoom = qSettings->value("defaultZoom").toInt();
|
|
double latitude= qSettings->value("defaultLatitude").toDouble();
|
|
double longitude= qSettings->value("defaultLongitude").toDouble();
|
|
bool useOpenGL= qSettings->value("useOpenGL").toBool();
|
|
bool showTileGridLines= qSettings->value("showTileGridLines").toBool();
|
|
QString accessMode= qSettings->value("accessMode").toString();
|
|
bool useMemoryCache= qSettings->value("useMemoryCache").toBool();
|
|
QString cacheLocation= qSettings->value("cacheLocation").toString();
|
|
QString uavSymbol=qSettings->value("uavSymbol").toString();
|
|
int max_update_rate = qSettings->value("maxUpdateRate").toInt();
|
|
|
|
m_opacity=qSettings->value("overlayOpacity",1).toReal();
|
|
|
|
if (!mapProvider.isEmpty()) m_mapProvider = mapProvider;
|
|
m_defaultZoom = zoom;
|
|
m_defaultLatitude = latitude;
|
|
m_defaultLongitude = longitude;
|
|
m_useOpenGL = useOpenGL;
|
|
m_showTileGridLines = showTileGridLines;
|
|
m_uavSymbol = uavSymbol;
|
|
|
|
m_maxUpdateRate = max_update_rate;
|
|
if (m_maxUpdateRate < 100 || m_maxUpdateRate > 5000)
|
|
m_maxUpdateRate = 2000;
|
|
|
|
if (!accessMode.isEmpty())
|
|
m_accessMode = accessMode;
|
|
m_useMemoryCache = useMemoryCache;
|
|
if (!cacheLocation.isEmpty())
|
|
m_cacheLocation = Utils::PathUtils().InsertStoragePath(cacheLocation);
|
|
}
|
|
}
|
|
|
|
IUAVGadgetConfiguration * OPMapGadgetConfiguration::clone()
|
|
{
|
|
OPMapGadgetConfiguration *m = new OPMapGadgetConfiguration(this->classId());
|
|
|
|
m->m_mapProvider = m_mapProvider;
|
|
m->m_defaultZoom = m_defaultZoom;
|
|
m->m_defaultLatitude = m_defaultLatitude;
|
|
m->m_defaultLongitude = m_defaultLongitude;
|
|
m->m_useOpenGL = m_useOpenGL;
|
|
m->m_showTileGridLines = m_showTileGridLines;
|
|
m->m_accessMode = m_accessMode;
|
|
m->m_useMemoryCache = m_useMemoryCache;
|
|
m->m_cacheLocation = m_cacheLocation;
|
|
m->m_uavSymbol = m_uavSymbol;
|
|
m->m_maxUpdateRate = m_maxUpdateRate;
|
|
m->m_opacity=m_opacity;
|
|
|
|
return m;
|
|
}
|
|
void OPMapGadgetConfiguration::saveConfig() const {
|
|
if(!m_settings)
|
|
return;
|
|
m_settings->setValue("mapProvider", m_mapProvider);
|
|
m_settings->setValue("defaultZoom", m_defaultZoom);
|
|
m_settings->setValue("defaultLatitude", m_defaultLatitude);
|
|
m_settings->setValue("defaultLongitude", m_defaultLongitude);
|
|
m_settings->setValue("useOpenGL", m_useOpenGL);
|
|
m_settings->setValue("showTileGridLines", m_showTileGridLines);
|
|
m_settings->setValue("accessMode", m_accessMode);
|
|
m_settings->setValue("useMemoryCache", m_useMemoryCache);
|
|
m_settings->setValue("uavSymbol", m_uavSymbol);
|
|
m_settings->setValue("cacheLocation", Utils::PathUtils().RemoveStoragePath(m_cacheLocation));
|
|
m_settings->setValue("maxUpdateRate", m_maxUpdateRate);
|
|
m_settings->setValue("overlayOpacity",m_opacity);
|
|
}
|
|
void OPMapGadgetConfiguration::saveConfig(QSettings* qSettings) const {
|
|
qSettings->setValue("mapProvider", m_mapProvider);
|
|
qSettings->setValue("defaultZoom", m_defaultZoom);
|
|
qSettings->setValue("defaultLatitude", m_defaultLatitude);
|
|
qSettings->setValue("defaultLongitude", m_defaultLongitude);
|
|
qSettings->setValue("useOpenGL", m_useOpenGL);
|
|
qSettings->setValue("showTileGridLines", m_showTileGridLines);
|
|
qSettings->setValue("accessMode", m_accessMode);
|
|
qSettings->setValue("useMemoryCache", m_useMemoryCache);
|
|
qSettings->setValue("uavSymbol", m_uavSymbol);
|
|
qSettings->setValue("cacheLocation", Utils::PathUtils().RemoveStoragePath(m_cacheLocation));
|
|
qSettings->setValue("maxUpdateRate", m_maxUpdateRate);
|
|
qSettings->setValue("overlayOpacity",m_opacity);
|
|
}
|
|
void OPMapGadgetConfiguration::setCacheLocation(QString cacheLocation){
|
|
m_cacheLocation = cacheLocation;
|
|
}
|