Commit 95fdac9e authored by Valentin Platzgummer's avatar Valentin Platzgummer

plan data class edited

parent bf22cf56
......@@ -259,7 +259,7 @@ void MissionController::sendToVehicle(void)
/// Converts from visual items to MissionItems
/// @param missionItemParent QObject parent for newly allocated MissionItems, _surveyMissionItemName (tr("Survey"))
/// @return true: Mission end action was added to end of list
bool MissionController::_convertToMissionItems(QmlObjectListModel* visualMissionItems, QList<MissionItem*>& rgMissionItems, QObject* missionItemParent)
bool MissionController::convertToMissionItems(QmlObjectListModel* visualMissionItems, QList<MissionItem*>& rgMissionItems, QObject* missionItemParent)
{
if (visualMissionItems->count() == 0) {
return false;
......@@ -294,7 +294,7 @@ void MissionController::convertToKMLDocument(QDomDocument& document)
QObject* deleteParent = new QObject();
QList<MissionItem*> rgMissionItems;
_convertToMissionItems(_visualItems, rgMissionItems, deleteParent);
convertToMissionItems(_visualItems, rgMissionItems, deleteParent);
if (rgMissionItems.count() == 0) {
return;
}
......@@ -336,7 +336,7 @@ void MissionController::sendItemsToVehicle(Vehicle* vehicle, QmlObjectListModel*
if (vehicle) {
QList<MissionItem*> rgMissionItems;
_convertToMissionItems(visualMissionItems, rgMissionItems, vehicle);
convertToMissionItems(visualMissionItems, rgMissionItems, vehicle);
// PlanManager takes control of MissionItems so no need to delete
vehicle->missionManager()->writeMissionItems(rgMissionItems);
......@@ -1043,7 +1043,7 @@ void MissionController::save(QJsonObject& json)
if (settingsItem) {
QList<MissionItem*> rgMissionItems;
if (_convertToMissionItems(_visualItems, rgMissionItems, this /* missionItemParent */)) {
if (convertToMissionItems(_visualItems, rgMissionItems, this /* missionItemParent */)) {
QJsonObject saveObject;
MissionItem* missionItem = rgMissionItems[rgMissionItems.count() - 1];
missionItem->save(saveObject);
......
......@@ -143,6 +143,9 @@ public:
/// Sends the mission items to the specified vehicle
static void sendItemsToVehicle(Vehicle* vehicle, QmlObjectListModel* visualMissionItems);
static bool convertToMissionItems(QmlObjectListModel* visualMissionItems, QList<MissionItem*>& rgMissionItems, QObject* missionItemParent);
bool loadJsonFile(QFile& file, QString& errorString);
bool loadTextFile(QFile& file, QString& errorString);
......@@ -269,7 +272,6 @@ private:
bool _loadTextMissionFile(QTextStream& stream, QmlObjectListModel* visualItems, QString& errorString);
int _nextSequenceNumber(void);
void _scanForAdditionalSettings(QmlObjectListModel* visualItems, Vehicle* vehicle);
static bool _convertToMissionItems(QmlObjectListModel* visualMissionItems, QList<MissionItem*>& rgMissionItems, QObject* missionItemParent);
void _setPlannedHomePositionFromFirstCoordinate(const QGeoCoordinate& clickCoordinate);
void _resetMissionFlightStatus(void);
void _addHoverTime(double hoverTime, double hoverDistance, int waypointIndex);
......
......@@ -40,6 +40,7 @@ public:
Q_PROPERTY(QStringList saveNameFilters READ saveNameFilters CONSTANT)
Q_PROPERTY(QString fileExtension READ fileExtension CONSTANT)
Q_PROPERTY(WimaDataContainer* dataContainer READ dataContainer WRITE setDataContainer NOTIFY dataContainerChanged)
Q_PROPERTY(QmlObjectListModel* missionItems READ missionItems NOTIFY missionItemsChanged)
// Property accessors
......@@ -103,5 +104,6 @@ private:
WimaServiceAreaData _serviceArea; // area for supplying
WimaCorridorData _corridor; // corridor connecting opArea and serArea
bool _localPlanDataValid;
QmlObjectListModel _missionItems;
};
......@@ -95,6 +95,11 @@ void WimaPlanData::append(const WimaMeasurementAreaData &areaData)
}
}
void WimaPlanData::append(const QList<const MissionItem *> &missionItems)
{
_missionItems.append(missionItems);
}
/*!
* \fn void WimaPlanData::append(const WimaServiceAreaData &areaData)
*
......@@ -103,6 +108,7 @@ void WimaPlanData::append(const WimaMeasurementAreaData &areaData)
void WimaPlanData::clear()
{
_areaList.clear();
_missionItems.clear();
}
QList<const WimaAreaData *> WimaPlanData::areaList() const
......@@ -110,6 +116,11 @@ QList<const WimaAreaData *> WimaPlanData::areaList() const
return _areaList;
}
QList<const MissionItem *> WimaPlanData::missionItems() const
{
return _missionItems;
}
/*!
* \class WimaPlanData
* \brief Class storing data generated by the \c WimaPlaner class.
......
......@@ -7,6 +7,7 @@
#include "WimaCorridorData.h"
#include "WimaMeasurementAreaData.h"
#include "WimaJoinedAreaData.h"
#include "MissionItem.h"
class WimaPlanData : QObject
{
......@@ -21,9 +22,11 @@ public:
void append(const WimaServiceAreaData &areaData);
void append(const WimaCorridorData &areaData);
void append(const WimaMeasurementAreaData &areaData);
void append(const QList<const MissionItem*> &missionItems);
void clear();
QList<const WimaAreaData *> areaList() const;
QList<const MissionItem *> missionItems() const;
......@@ -36,4 +39,6 @@ private:
WimaCorridorData _corridor;
WimaMeasurementAreaData _measurementArea;
QList<const WimaAreaData*> _areaList;
QList<const MissionItem*> _missionItems;
};
......@@ -672,11 +672,21 @@ void WimaPlaner::setInteractive()
WimaPlanData WimaPlaner::toPlanData()
{
WimaPlanData planData;
// store areas
planData.append(WimaMeasurementAreaData(_measurementArea));
planData.append(WimaServiceAreaData(_serviceArea));
planData.append(WimaCorridorData(_corridor));
planData.append(WimaJoinedAreaData(_joinedArea));
// convert mission items to mavlink commands
QList<MissionItem*> rgMissionItems;
MissionController::convertToMissionItems(_missionController->visualItems(), rgMissionItems, this);
QList<const MissionItem*> rgMissionItemsConst;
for (auto missionItem : rgMissionItems)
rgMissionItemsConst.append(missionItem);
// store mavlink commands
planData.append(rgMissionItemsConst);
return planData;
}
......
......@@ -1289,7 +1289,7 @@ QGCView {
QGCButton {
text: qsTr("Upload")
Layout.fillWidth: true
enabled: /*!masterController.offline &&*/ !masterController.syncInProgress && _visualItems.count > 1
enabled: !masterController.offline && !masterController.syncInProgress && _visualItems.count > 1
visible: !QGroundControl.corePlugin.options.disableVehicleConnection
onClicked: {
dropPanel.hide()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment