CustomPlugin.h 2.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/****************************************************************************
 *
 * (c) 2009-2019 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
 *
 * 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 <gus@auterion.com>
 */

#pragma once

#include "QGCCorePlugin.h"
#include "QGCOptions.h"
#include "QGCLoggingCategory.h"
17
#include "GstVideoReceiver.h"
18 19 20 21
#include "SettingsManager.h"

#include <QTranslator>

22
class CustomOptions;
23 24 25 26 27
class CustomPlugin;
class CustomSettings;

Q_DECLARE_LOGGING_CATEGORY(CustomLog)

28 29 30 31 32 33 34 35 36 37
class CustomFlyViewOptions : public QGCFlyViewOptions
{
public:
    CustomFlyViewOptions(CustomOptions* options, QObject* parent = nullptr);

    // Overrides from CustomFlyViewOptions
    bool                    showInstrumentPanel         (void) const final;
    bool                    showMultiVehicleList        (void) const final;
};

38 39 40 41 42
class CustomOptions : public QGCOptions
{
public:
    CustomOptions(CustomPlugin*, QObject* parent = nullptr);

43 44 45
    // Overrides from QGCOptions
    bool                    wifiReliableForCalibration  (void) const final;
    bool                    showFirmwareUpgrade         (void) const final;
46
    QGCFlyViewOptions*      flyViewOptions(void) final;
47

48 49 50
private:
    CustomFlyViewOptions* _flyViewOptions = nullptr;
};
51 52 53 54 55 56 57 58 59

class CustomPlugin : public QGCCorePlugin
{
    Q_OBJECT
public:
    CustomPlugin(QGCApplication* app, QGCToolbox *toolbox);
    ~CustomPlugin();

    // Overrides from QGCCorePlugin
60 61 62 63
    QVariantList&           settingsPages                   (void) final;
    QGCOptions*             options                         (void) final;
    QString                 brandImageIndoor                (void) const final;
    QString                 brandImageOutdoor               (void) const final;
64 65 66
    bool                    overrideSettingsGroupVisibility (QString name) final;
    bool                    adjustSettingMetaData           (const QString& settingsGroup, FactMetaData& metaData) final;
    void                    paletteOverride                 (QString colorName, QGCPalette::PaletteColorInfo_t& colorInfo) final;
67 68
    QQmlApplicationEngine*  createQmlApplicationEngine      (QObject* parent) final;

69 70 71 72
    // Overrides from QGCTool
    void                    setToolbox                      (QGCToolbox* toolbox);

private slots:
73
    void _advancedChanged(bool advanced);
74 75

private:
76
    void _addSettingsEntry(const QString& title, const char* qmlFile, const char* iconFile = nullptr);
77 78

private:
79 80
    CustomOptions*  _options = nullptr;
    QVariantList    _customSettingsList; // Not to be mixed up with QGCCorePlugin implementation
81
};