diff --git a/src/ui/QGCUASFileView.cc b/src/ui/QGCUASFileView.cc index 9f2aeeb38a2a48e68f836cc0422b9b82d5c1081d..d194e4a2a3c85353c366de5340bb1bb2245370da 100644 --- a/src/ui/QGCUASFileView.cc +++ b/src/ui/QGCUASFileView.cc @@ -24,31 +24,37 @@ #include "QGCUASFileView.h" #include "FileManager.h" #include "QGCFileDialog.h" +#include "UAS.h" #include #include #include -QGCUASFileView::QGCUASFileView(QWidget *parent, FileManager *manager) : - QWidget(parent), - _manager(manager), - _currentCommand(commandNone) +QGCUASFileView::QGCUASFileView(QWidget *parent, Vehicle* vehicle) + : QWidget(parent) + , _manager(vehicle->uas()->getFileManager()) + , _currentCommand(commandNone) { _ui.setupUi(this); - - _ui.progressBar->reset(); - - // Connect UI signals - connect(_ui.listFilesButton, &QPushButton::clicked, this, &QGCUASFileView::_refreshTree); - connect(_ui.downloadButton, &QPushButton::clicked, this, &QGCUASFileView::_downloadFile); - connect(_ui.uploadButton, &QPushButton::clicked, this, &QGCUASFileView::_uploadFile); - connect(_ui.treeWidget, &QTreeWidget::currentItemChanged, this, &QGCUASFileView::_currentItemChanged); - // Connect signals from FileManager - connect(_manager, &FileManager::commandProgress, this, &QGCUASFileView::_commandProgress); - connect(_manager, &FileManager::commandComplete, this, &QGCUASFileView::_commandComplete); - connect(_manager, &FileManager::commandError, this, &QGCUASFileView::_commandError); - connect(_manager, &FileManager::listEntry, this, &QGCUASFileView::_listEntryReceived); + if (vehicle->px4Firmware()) { + _ui.progressBar->reset(); + + // Connect UI signals + connect(_ui.listFilesButton, &QPushButton::clicked, this, &QGCUASFileView::_refreshTree); + connect(_ui.downloadButton, &QPushButton::clicked, this, &QGCUASFileView::_downloadFile); + connect(_ui.uploadButton, &QPushButton::clicked, this, &QGCUASFileView::_uploadFile); + connect(_ui.treeWidget, &QTreeWidget::currentItemChanged, this, &QGCUASFileView::_currentItemChanged); + + // Connect signals from FileManager + connect(_manager, &FileManager::commandProgress, this, &QGCUASFileView::_commandProgress); + connect(_manager, &FileManager::commandComplete, this, &QGCUASFileView::_commandComplete); + connect(_manager, &FileManager::commandError, this, &QGCUASFileView::_commandError); + connect(_manager, &FileManager::listEntry, this, &QGCUASFileView::_listEntryReceived); + } else { + _setAllButtonsEnabled(false); + _ui.statusText->setText(QStringLiteral("Onboard Files not supported by this Vehicle")); + } } /// @brief Downloads the file currently selected in the tree view diff --git a/src/ui/QGCUASFileView.h b/src/ui/QGCUASFileView.h index f0a58c3e531dfc9359892e40bcbee29a71a9036d..496bdbc5613fe39762eb3656c5dcb8bf2e951234 100644 --- a/src/ui/QGCUASFileView.h +++ b/src/ui/QGCUASFileView.h @@ -27,6 +27,7 @@ #include #include +#include "Vehicle.h" #include "uas/FileManager.h" #include "ui_QGCUASFileView.h" @@ -35,7 +36,7 @@ class QGCUASFileView : public QWidget Q_OBJECT public: - explicit QGCUASFileView(QWidget *parent, FileManager *manager); + explicit QGCUASFileView(QWidget *parent, Vehicle* vehicle); protected: FileManager* _manager; diff --git a/src/ui/QGCUASFileViewMulti.cc b/src/ui/QGCUASFileViewMulti.cc index ace27c6888d6beef35584e3f8599bfd81134ed2a..81f07c943dcac7871829ae6c91fa617c0e49e5df 100644 --- a/src/ui/QGCUASFileViewMulti.cc +++ b/src/ui/QGCUASFileViewMulti.cc @@ -41,7 +41,7 @@ void QGCUASFileViewMulti::_vehicleAdded(Vehicle* vehicle) UAS* uas = vehicle->uas(); if (!lists.contains(uas)) { - QGCUASFileView* list = new QGCUASFileView(ui->stackedWidget, uas->getFileManager()); + QGCUASFileView* list = new QGCUASFileView(ui->stackedWidget, vehicle); lists.insert(uas, list); ui->stackedWidget->addWidget(list); }