3#include <QtCore/QObject>
4#include <QtCore/QString>
5#include <QtCore/QStringList>
7#include <QtQmlIntegration/QtQmlIntegration>
9#include "MAVLinkEnums.h"
23 Q_MOC_INCLUDE(
"Vehicle.h")
44 bool busy()
const {
return _busy; }
60 Q_INVOKABLE
bool listDirectory(
const QString &uri,
int componentId = MAV_COMP_ID_AUTOPILOT1);
61 Q_INVOKABLE
bool downloadFile(
const QString &uri,
const QString &localDir,
const QString &fileName = QString(),
int componentId = MAV_COMP_ID_AUTOPILOT1);
62 Q_INVOKABLE
bool uploadFile(
const QString &localFile,
const QString &uri,
int componentId = MAV_COMP_ID_AUTOPILOT1);
63 Q_INVOKABLE
bool deleteFile(
const QString &uri,
int componentId = MAV_COMP_ID_AUTOPILOT1);
75 Q_INVOKABLE
bool extractArchive(
const QString &archivePath,
const QString &outputDir = QString());
97 void _handleDownloadComplete(
const QString &filePath,
const QString &
error);
98 void _handleUploadComplete(
const QString &remotePath,
const QString &
error);
99 void _handleDirectoryComplete(
const QStringList &entries,
const QString &
error);
100 void _handleDeleteComplete(
const QString &remotePath,
const QString &
error);
101 void _handleCommandProgress(
float value);
102 void _handleExtractionProgress(qreal
progress);
103 void _handleExtractionFinished(
bool success);
106 enum class Operation {
114 void _setBusy(
bool busy);
115 void _setOperation(Operation operation);
116 void _clearOperation();
117 void _setErrorString(
const QString &
error);
118 void _resetDirectoryState();
119 uint8_t _componentIdForRequest(
int componentId)
const;
123 Operation _operation = Operation::None;
125 float _progress = 0.0F;
126 QString _errorString;
127 QString _currentPath;
128 QStringList _directoryEntries;
129 QString _lastDownloadFile;
130 QString _lastUploadTarget;
131 bool _lastDownloadIsArchive =
false;
132 bool _extracting =
false;
133 float _extractionProgress = 0.0F;
134 QString _extractionOutputDir;
QML-facing controller for MAVLink FTP operations.
void uploadComplete(const QString &remotePath, const QString &error)
void directoryEntriesChanged()
void downloadComplete(const QString &filePath, const QString &error)
bool uploadInProgress() const
void extractionComplete(const QString &outputDir, const QString &error)
bool downloadInProgress() const
Q_INVOKABLE void cancelActiveOperation()
Q_INVOKABLE bool downloadFile(const QString &uri, const QString &localDir, const QString &fileName=QString(), int componentId=MAV_COMP_ID_AUTOPILOT1)
void currentPathChanged()
QGCArchiveModel * archiveModel() const
void errorStringChanged()
bool listInProgress() const
Q_INVOKABLE bool extractArchive(const QString &archivePath, const QString &outputDir=QString())
Q_INVOKABLE bool uploadFile(const QString &localFile, const QString &uri, int componentId=MAV_COMP_ID_AUTOPILOT1)
bool deleteInProgress() const
Q_INVOKABLE void cancelExtraction()
Cancel an in-progress extraction.
float extractionProgress() const
QString lastDownloadFile() const
QString lastUploadTarget() const
void deleteComplete(const QString &remotePath, const QString &error)
void extractionProgressChanged()
Q_INVOKABLE bool browseArchive(const QString &archivePath)
QString errorString() const
void activeOperationChanged()
void lastDownloadFileChanged()
QStringList directoryEntries() const
void lastUploadTargetChanged()
Q_INVOKABLE bool deleteFile(const QString &uri, int componentId=MAV_COMP_ID_AUTOPILOT1)
bool lastDownloadIsArchive() const
QString currentPath() const
Q_INVOKABLE bool listDirectory(const QString &uri, int componentId=MAV_COMP_ID_AUTOPILOT1)
List model for archive contents, suitable for QML ListView binding.
QObject wrapper for compression operations with progress signals.