/**************************************************************************** * * (c) 2009-2019 QGROUNDCONTROL PROJECT * * QGroundControl is licensed according to the terms in the file * COPYING.md in the root of the source code directory. * * @brief Custom QGCCorePlugin Declaration * @author Gus Grubba */ #pragma once #include "QGCCorePlugin.h" #include "QGCOptions.h" #include "QGCLoggingCategory.h" #include "SettingsManager.h" #include class CustomOptions; class CustomPlugin; class CustomSettings; Q_DECLARE_LOGGING_CATEGORY(CustomLog) class CustomFlyViewOptions : public QGCFlyViewOptions { public: CustomFlyViewOptions(CustomOptions* options, QObject* parent = nullptr); // Overrides from CustomFlyViewOptions bool showInstrumentPanel (void) const final; bool showMultiVehicleList (void) const final; }; class CustomOptions : public QGCOptions { public: CustomOptions(CustomPlugin*, QObject* parent = nullptr); // Overrides from QGCOptions bool wifiReliableForCalibration (void) const final; bool showFirmwareUpgrade (void) const final; QGCFlyViewOptions* flyViewOptions(void) final; private: CustomFlyViewOptions* _flyViewOptions = nullptr; }; class CustomPlugin : public QGCCorePlugin { Q_OBJECT public: CustomPlugin(QGCApplication* app, QGCToolbox *toolbox); ~CustomPlugin(); // Overrides from QGCCorePlugin QVariantList& settingsPages (void) final; QGCOptions* options (void) final; QString brandImageIndoor (void) const final; QString brandImageOutdoor (void) const final; bool overrideSettingsGroupVisibility (QString name) final; bool adjustSettingMetaData (const QString& settingsGroup, FactMetaData& metaData) final; void paletteOverride (QString colorName, QGCPalette::PaletteColorInfo_t& colorInfo) final; QQmlApplicationEngine* createQmlApplicationEngine (QObject* parent) final; // Overrides from QGCTool void setToolbox (QGCToolbox* toolbox); private slots: void _advancedChanged(bool advanced); private: void _addSettingsEntry(const QString& title, const char* qmlFile, const char* iconFile = nullptr); private: CustomOptions* _options = nullptr; QVariantList _customSettingsList; // Not to be mixed up with QGCCorePlugin implementation };