mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-18 08:54:15 +01:00
OP-1245 Added functionality to save settings as xml file.
This commit is contained in:
parent
171abbb111
commit
41865d5e78
@ -187,7 +187,10 @@ Rectangle {
|
||||
ComboBox {
|
||||
enabled: !logManager.disableControls && logManager.boardConnected
|
||||
model: logManager.logStatuses
|
||||
currentIndex: logSettings.getLoggingEnabled()
|
||||
currentIndex: logSettings.loggingEnabled
|
||||
onCurrentIndexChanged: {
|
||||
logManager.setLoggingEnabled(currentIndex);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -386,7 +386,39 @@ void FlightLogManager::loadSettings()
|
||||
{}
|
||||
|
||||
void FlightLogManager::saveSettings()
|
||||
{}
|
||||
{
|
||||
QString xmlFilter = tr("XML file %1").arg("(*.xml)");
|
||||
QString fileName = QFileDialog::getSaveFileName(NULL, tr("Save Log Settings"),
|
||||
QString("OP-FlightLogSettings"), QString("%1").arg(xmlFilter));
|
||||
if (!fileName.isEmpty()) {
|
||||
if (!fileName.endsWith(".xml")) {
|
||||
fileName.append(".xml");
|
||||
}
|
||||
QFile xmlFile(fileName);
|
||||
|
||||
if (xmlFile.open(QFile::WriteOnly | QFile::Truncate)) {
|
||||
QXmlStreamWriter xmlWriter(&xmlFile);
|
||||
xmlWriter.setAutoFormatting(true);
|
||||
xmlWriter.setAutoFormattingIndent(4);
|
||||
|
||||
xmlWriter.writeStartDocument("1.0", true);
|
||||
xmlWriter.writeComment("This file was created by the flight log settings function in OpenPilot GCS.");
|
||||
xmlWriter.writeStartElement("settings");
|
||||
xmlWriter.writeAttribute("enabled", QString::number(m_loggingEnabled));
|
||||
foreach(UAVOLogSettingsWrapper * wrapper, m_uavoEntries) {
|
||||
xmlWriter.writeStartElement("setting");
|
||||
xmlWriter.writeAttribute("name", wrapper->name());
|
||||
xmlWriter.writeAttribute("level", QString::number(wrapper->setting()));
|
||||
xmlWriter.writeAttribute("period", QString::number(wrapper->period()));
|
||||
xmlWriter.writeEndElement();
|
||||
}
|
||||
xmlWriter.writeEndElement();
|
||||
xmlWriter.writeEndDocument();
|
||||
xmlFile.flush();
|
||||
xmlFile.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FlightLogManager::resetSettings()
|
||||
{
|
||||
|
@ -43,7 +43,9 @@
|
||||
#include "uavtalk/telemetrymanager.h"
|
||||
|
||||
class UAVOLogSettingsWrapper : public QObject {
|
||||
Q_OBJECT Q_PROPERTY(QString name READ name NOTIFY nameChanged)
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(UAVObject *object READ object NOTIFY objectChanged)
|
||||
Q_PROPERTY(QString name READ name NOTIFY nameChanged)
|
||||
Q_PROPERTY(int setting READ setting WRITE setSetting NOTIFY settingChanged)
|
||||
Q_PROPERTY(int period READ period WRITE setPeriod NOTIFY periodChanged)
|
||||
|
||||
@ -69,6 +71,11 @@ public:
|
||||
return m_period;
|
||||
}
|
||||
|
||||
UAVObject *object() const
|
||||
{
|
||||
return m_object;
|
||||
}
|
||||
|
||||
public slots:
|
||||
void setSetting(int setting)
|
||||
{
|
||||
@ -89,7 +96,8 @@ public slots:
|
||||
signals:
|
||||
void settingChanged(int setting);
|
||||
void nameChanged(QString name);
|
||||
void periodChanged(int period);
|
||||
void periodChanged(int period);
|
||||
void objectChanged(UAVObject * arg);
|
||||
|
||||
private:
|
||||
UAVObject *m_object;
|
||||
@ -141,6 +149,7 @@ class FlightLogManager : public QObject {
|
||||
Q_PROPERTY(QQmlListProperty<UAVOLogSettingsWrapper> uavoEntries READ uavoEntries NOTIFY uavoEntriesChanged)
|
||||
Q_PROPERTY(QStringList logSettings READ logSettings NOTIFY logSettingsChanged)
|
||||
Q_PROPERTY(QStringList logStatuses READ logStatuses NOTIFY logStatusesChanged)
|
||||
Q_PROPERTY(int loggingEnabled READ loggingEnabled WRITE setLoggingEnabled NOTIFY loggingEnabledChanged)
|
||||
|
||||
|
||||
public:
|
||||
@ -199,6 +208,11 @@ public:
|
||||
return m_flightLogSettings;
|
||||
}
|
||||
|
||||
int loggingEnabled() const
|
||||
{
|
||||
return m_loggingEnabled;
|
||||
}
|
||||
|
||||
signals:
|
||||
void logEntriesChanged();
|
||||
void flightEntriesChanged();
|
||||
@ -211,6 +225,8 @@ signals:
|
||||
|
||||
void logStatusesChanged(QStringList arg);
|
||||
|
||||
void loggingEnabledChanged(int arg);
|
||||
|
||||
public slots:
|
||||
void clearAllLogs();
|
||||
void retrieveLogs(int flightToRetrieve = -1);
|
||||
@ -254,6 +270,14 @@ public slots:
|
||||
}
|
||||
}
|
||||
|
||||
void setLoggingEnabled(int arg)
|
||||
{
|
||||
if (m_loggingEnabled != arg) {
|
||||
m_loggingEnabled = arg;
|
||||
emit loggingEnabledChanged(arg);
|
||||
}
|
||||
}
|
||||
|
||||
private slots:
|
||||
void updateFlightEntries(quint16 currentFlight);
|
||||
void setupUAVOWrappers();
|
||||
@ -286,6 +310,7 @@ private:
|
||||
bool m_cancelDownload;
|
||||
bool m_adjustExportedTimestamps;
|
||||
bool m_boardConnected;
|
||||
int m_loggingEnabled;
|
||||
};
|
||||
|
||||
#endif // FLIGHTLOGMANAGER_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user