diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro
index 47e517ca3eb482397d2665d582ac9f9caabff5ec..c9145d77f6d6606391f71db3c6241ab7e75e4cab 100644
--- a/qgroundcontrol.pro
+++ b/qgroundcontrol.pro
@@ -554,6 +554,7 @@ HEADERS += \
src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h \
src/Settings/AppSettings.h \
src/Settings/AutoConnectSettings.h \
+ src/Settings/BrandImageSettings.h \
src/Settings/FlightMapSettings.h \
src/Settings/GuidedSettings.h \
src/Settings/RTKSettings.h \
@@ -736,6 +737,7 @@ SOURCES += \
src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc \
src/Settings/AppSettings.cc \
src/Settings/AutoConnectSettings.cc \
+ src/Settings/BrandImageSettings.cc \
src/Settings/FlightMapSettings.cc \
src/Settings/GuidedSettings.cc \
src/Settings/RTKSettings.cc \
diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc
index adc4f7795d9deb24189bc3ee4eee36099592eff2..ce13d5a07c6f47b1338cb42d0acc832678dce46b 100644
--- a/qgroundcontrol.qrc
+++ b/qgroundcontrol.qrc
@@ -222,6 +222,7 @@
src/Vehicle/VibrationFact.json
src/Vehicle/TemperatureFact.json
src/Vehicle/SubmarineFact.json
+ src/Settings/BrandImage.SettingsGroup.json
src/comm/APMArduCopterMockLink.params
diff --git a/src/Settings/AppSettings.cc b/src/Settings/AppSettings.cc
index 3f2375bdf058433ae6930fe9a8ba3af8403b90d9..65068ef39ef40bd38d44838f2f86cffec647a62b 100644
--- a/src/Settings/AppSettings.cc
+++ b/src/Settings/AppSettings.cc
@@ -32,8 +32,6 @@ const char* AppSettings::appFontPointSizeName = "BaseDev
const char* AppSettings::indoorPaletteName = "StyleIsDark";
const char* AppSettings::showLargeCompassName = "ShowLargeCompass";
const char* AppSettings::savePathName = "SavePath";
-const char* AppSettings::userBrandImageIndoorName = "UserBrandImageIndoor";
-const char* AppSettings::userBrandImageOutdoorName = "UserBrandImageOutdoor";
const char* AppSettings::autoLoadMissionsName = "AutoLoadMissions";
const char* AppSettings::mapboxTokenName = "MapboxToken";
const char* AppSettings::esriTokenName = "EsriToken";
@@ -73,8 +71,6 @@ AppSettings::AppSettings(QObject* parent)
, _indoorPaletteFact(NULL)
, _showLargeCompassFact(NULL)
, _savePathFact(NULL)
- , _userBrandImageIndoorFact(NULL)
- , _userBrandImageOutdoorFact(NULL)
, _autoLoadMissionsFact(NULL)
, _mapboxTokenFact(NULL)
, _esriTokenFact(NULL)
@@ -335,24 +331,6 @@ QString AppSettings::videoSavePath(void)
return fullPath;
}
-Fact* AppSettings::userBrandImageIndoor(void)
-{
- if (!_userBrandImageIndoorFact) {
- _userBrandImageIndoorFact = _createSettingsFact(userBrandImageIndoorName);
- }
-
- return _userBrandImageIndoorFact;
-}
-
-Fact* AppSettings::userBrandImageOutdoor(void)
-{
- if (!_userBrandImageOutdoorFact) {
- _userBrandImageOutdoorFact = _createSettingsFact(userBrandImageOutdoorName);
- }
-
- return _userBrandImageOutdoorFact;
-}
-
Fact* AppSettings::autoLoadMissions(void)
{
if (!_autoLoadMissionsFact) {
diff --git a/src/Settings/AppSettings.h b/src/Settings/AppSettings.h
index 0314a17ac0aed79f688444888aee48eb5d312b91..5b29ac37096b61e46ef5ca16e5b1b593edbf89e5 100644
--- a/src/Settings/AppSettings.h
+++ b/src/Settings/AppSettings.h
@@ -36,8 +36,6 @@ public:
Q_PROPERTY(Fact* indoorPalette READ indoorPalette CONSTANT)
Q_PROPERTY(Fact* showLargeCompass READ showLargeCompass CONSTANT)
Q_PROPERTY(Fact* savePath READ savePath CONSTANT)
- Q_PROPERTY(Fact* userBrandImageIndoor READ userBrandImageIndoor CONSTANT)
- Q_PROPERTY(Fact* userBrandImageOutdoor READ userBrandImageOutdoor CONSTANT)
Q_PROPERTY(Fact* autoLoadMissions READ autoLoadMissions CONSTANT)
Q_PROPERTY(Fact* mapboxToken READ mapboxToken CONSTANT)
Q_PROPERTY(Fact* esriToken READ esriToken CONSTANT)
@@ -73,8 +71,6 @@ public:
Fact* indoorPalette (void);
Fact* showLargeCompass (void);
Fact* savePath (void);
- Fact* userBrandImageIndoor (void);
- Fact* userBrandImageOutdoor (void);
Fact* autoLoadMissions (void);
Fact* mapboxToken (void);
Fact* esriToken (void);
@@ -107,8 +103,6 @@ public:
static const char* indoorPaletteName;
static const char* showLargeCompassName;
static const char* savePathName;
- static const char* userBrandImageIndoorName;
- static const char* userBrandImageOutdoorName;
static const char* autoLoadMissionsName;
static const char* mapboxTokenName;
static const char* esriTokenName;
@@ -156,8 +150,6 @@ private:
SettingsFact* _indoorPaletteFact;
SettingsFact* _showLargeCompassFact;
SettingsFact* _savePathFact;
- SettingsFact* _userBrandImageIndoorFact;
- SettingsFact* _userBrandImageOutdoorFact;
SettingsFact* _autoLoadMissionsFact;
SettingsFact* _mapboxTokenFact;
SettingsFact* _esriTokenFact;
diff --git a/src/Settings/BrandImage.SettingsGroup.json b/src/Settings/BrandImage.SettingsGroup.json
new file mode 100644
index 0000000000000000000000000000000000000000..2d80c20bc0f2b6f40a94866f0d878b2584b6a480
--- /dev/null
+++ b/src/Settings/BrandImage.SettingsGroup.json
@@ -0,0 +1,16 @@
+[
+{
+ "name": "UserBrandImageIndoor",
+ "shortDescription": "User-selected brand image",
+ "longDescription": "Location in file system of user-selected brand image (indoor)",
+ "type": "string",
+ "defaultValue": ""
+},
+{
+ "name": "UserBrandImageOutdoor",
+ "shortDescription": "User-selected brand image",
+ "longDescription": "Location in file system of user-selected brand image (outdoor)",
+ "type": "string",
+ "defaultValue": ""
+}
+]
diff --git a/src/Settings/BrandImageSettings.cc b/src/Settings/BrandImageSettings.cc
new file mode 100644
index 0000000000000000000000000000000000000000..20bdc6d3f3e81a8740ffdc64b34fd527e711bf2b
--- /dev/null
+++ b/src/Settings/BrandImageSettings.cc
@@ -0,0 +1,44 @@
+/****************************************************************************
+ *
+ * (c) 2009-2017 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
+
+#include "BrandImageSettings.h"
+
+#include
+#include
+
+const char* BrandImageSettings::brandImageSettingsGroupName = "BrandImage";
+const char* BrandImageSettings::userBrandImageIndoorName = "UserBrandImageIndoor";
+const char* BrandImageSettings::userBrandImageOutdoorName = "UserBrandImageOutdoor";
+
+BrandImageSettings::BrandImageSettings(QObject* parent)
+ : SettingsGroup(brandImageSettingsGroupName, QString() /* root settings group */, parent)
+ , _userBrandImageIndoorFact(NULL)
+ , _userBrandImageOutdoorFact(NULL)
+{
+ QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
+ qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "BrandImageSettings", "Reference only");
+}
+
+Fact* BrandImageSettings::userBrandImageIndoor(void)
+{
+ if (!_userBrandImageIndoorFact) {
+ _userBrandImageIndoorFact = _createSettingsFact(userBrandImageIndoorName);
+ }
+
+ return _userBrandImageIndoorFact;
+}
+
+Fact* BrandImageSettings::userBrandImageOutdoor(void)
+{
+ if (!_userBrandImageOutdoorFact) {
+ _userBrandImageOutdoorFact = _createSettingsFact(userBrandImageOutdoorName);
+ }
+
+ return _userBrandImageOutdoorFact;
+}
diff --git a/src/Settings/BrandImageSettings.h b/src/Settings/BrandImageSettings.h
new file mode 100644
index 0000000000000000000000000000000000000000..c2f66b3d36203b2574329aa5c46f875d41c51228
--- /dev/null
+++ b/src/Settings/BrandImageSettings.h
@@ -0,0 +1,38 @@
+/****************************************************************************
+ *
+ * (c) 2009-2017 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
+
+#ifndef BrandImageSettings_H
+#define BrandImageSettings_H
+
+#include "SettingsGroup.h"
+
+class BrandImageSettings : public SettingsGroup
+{
+ Q_OBJECT
+
+public:
+ BrandImageSettings(QObject* parent = NULL);
+
+ Q_PROPERTY(Fact* userBrandImageIndoor READ userBrandImageIndoor CONSTANT)
+ Q_PROPERTY(Fact* userBrandImageOutdoor READ userBrandImageOutdoor CONSTANT)
+
+ Fact* userBrandImageIndoor (void);
+ Fact* userBrandImageOutdoor (void);
+
+ static const char* brandImageSettingsGroupName;
+
+ static const char* userBrandImageIndoorName;
+ static const char* userBrandImageOutdoorName;
+
+private:
+ SettingsFact* _userBrandImageIndoorFact;
+ SettingsFact* _userBrandImageOutdoorFact;
+};
+
+#endif
diff --git a/src/Settings/SettingsManager.cc b/src/Settings/SettingsManager.cc
index d2e8e10cbb9e6af6381a8e3c017c20a90b0adaed..643bf234515342e8b52af8e66fbe829e8907723d 100644
--- a/src/Settings/SettingsManager.cc
+++ b/src/Settings/SettingsManager.cc
@@ -21,6 +21,7 @@ SettingsManager::SettingsManager(QGCApplication* app, QGCToolbox* toolbox)
, _flightMapSettings (NULL)
, _rtkSettings (NULL)
, _guidedSettings (NULL)
+ , _brandImageSettings (NULL)
{
}
@@ -38,4 +39,5 @@ void SettingsManager::setToolbox(QGCToolbox *toolbox)
_flightMapSettings = new FlightMapSettings(this);
_rtkSettings = new RTKSettings(this);
_guidedSettings = new GuidedSettings(this);
+ _brandImageSettings = new BrandImageSettings(this);
}
diff --git a/src/Settings/SettingsManager.h b/src/Settings/SettingsManager.h
index c38cd725c308fd69f64b3c3d7bb3f0ce736d3d24..a69b7f6bc55fcb7eec112da77aeaa0d7322a6c59 100644
--- a/src/Settings/SettingsManager.h
+++ b/src/Settings/SettingsManager.h
@@ -21,6 +21,7 @@
#include "FlightMapSettings.h"
#include "RTKSettings.h"
#include "GuidedSettings.h"
+#include "BrandImageSettings.h"
#include
@@ -39,6 +40,7 @@ public:
Q_PROPERTY(QObject* flightMapSettings READ flightMapSettings CONSTANT)
Q_PROPERTY(QObject* rtkSettings READ rtkSettings CONSTANT)
Q_PROPERTY(QObject* guidedSettings READ guidedSettings CONSTANT)
+ Q_PROPERTY(QObject* brandImageSettings READ brandImageSettings CONSTANT)
// Override from QGCTool
virtual void setToolbox(QGCToolbox *toolbox);
@@ -50,6 +52,7 @@ public:
FlightMapSettings* flightMapSettings (void) { return _flightMapSettings; }
RTKSettings* rtkSettings (void) { return _rtkSettings; }
GuidedSettings* guidedSettings (void) { return _guidedSettings; }
+ BrandImageSettings* brandImageSettings (void) { return _brandImageSettings; }
private:
AppSettings* _appSettings;
@@ -59,6 +62,7 @@ private:
FlightMapSettings* _flightMapSettings;
RTKSettings* _rtkSettings;
GuidedSettings* _guidedSettings;
+ BrandImageSettings* _brandImageSettings;
};
#endif
diff --git a/src/ui/preferences/GeneralSettings.qml b/src/ui/preferences/GeneralSettings.qml
index dafc78a26854aca652adcea099eeda4091c79ac1..c7faeebdeaf0c01c389c2e3931fded84bd7eeffb 100644
--- a/src/ui/preferences/GeneralSettings.qml
+++ b/src/ui/preferences/GeneralSettings.qml
@@ -34,9 +34,9 @@ QGCView {
property Fact _percentRemainingAnnounce: QGroundControl.settingsManager.appSettings.batteryPercentRemainingAnnounce
property Fact _savePath: QGroundControl.settingsManager.appSettings.savePath
- property Fact _userBrandImageIndoor: QGroundControl.settingsManager.appSettings.userBrandImageIndoor
- property Fact _userBrandImageOutdoor: QGroundControl.settingsManager.appSettings.userBrandImageOutdoor
property Fact _appFontPointSize: QGroundControl.settingsManager.appSettings.appFontPointSize
+ property Fact _userBrandImageIndoor: QGroundControl.settingsManager.brandImageSettings.userBrandImageIndoor
+ property Fact _userBrandImageOutdoor: QGroundControl.settingsManager.brandImageSettings.userBrandImageOutdoor
property real _labelWidth: ScreenTools.defaultFontPixelWidth * 15
property real _editFieldWidth: ScreenTools.defaultFontPixelWidth * 30
property Fact _mapProvider: QGroundControl.settingsManager.flightMapSettings.mapProvider
@@ -697,7 +697,7 @@ QGCView {
anchors.baseline: userBrandImageIndoorBrowse.baseline
readOnly: true
width: _editFieldWidth
- text: QGroundControl.settingsManager.appSettings.userBrandImageIndoor.valueString.replace("file:///","")
+ text: _userBrandImageIndoor.valueString.replace("file:///","")
}
QGCButton {
id: userBrandImageIndoorBrowse
@@ -729,7 +729,7 @@ QGCView {
anchors.baseline: userBrandImageOutdoorBrowse.baseline
readOnly: true
width: _editFieldWidth
- text: QGroundControl.settingsManager.appSettings.userBrandImageOutdoor.valueString.replace("file:///","")
+ text: _userBrandImageOutdoor.valueString.replace("file:///","")
}
QGCButton {
id: userBrandImageOutdoorBrowse
diff --git a/src/ui/toolbar/MainToolBarIndicators.qml b/src/ui/toolbar/MainToolBarIndicators.qml
index 8cf0d4775057f3f17070a1f2e0926d4f7ddc73ef..1698ce61af42ae60f877ebe2bc55ec025e7ec6d8 100644
--- a/src/ui/toolbar/MainToolBarIndicators.qml
+++ b/src/ui/toolbar/MainToolBarIndicators.qml
@@ -96,8 +96,8 @@ Item {
property bool _outdoorPalette: qgcPal.globalTheme === QGCPalette.Light
property bool _corePluginBranding: QGroundControl.corePlugin.brandImageIndoor.length != 0
- property string _userBrandImageIndoor: QGroundControl.settingsManager.appSettings.userBrandImageIndoor.value
- property string _userBrandImageOutdoor: QGroundControl.settingsManager.appSettings.userBrandImageOutdoor.value
+ property string _userBrandImageIndoor: QGroundControl.settingsManager.brandImageSettings.userBrandImageIndoor.value
+ property string _userBrandImageOutdoor: QGroundControl.settingsManager.brandImageSettings.userBrandImageOutdoor.value
property bool _userBrandingIndoor: _userBrandImageIndoor.length != 0
property bool _userBrandingOutdoor: _userBrandImageOutdoor.length != 0
property string _brandImageIndoor: _userBrandingIndoor ? _userBrandImageIndoor : (_userBrandingOutdoor ? _userBrandImageOutdoor : (_corePluginBranding ? QGroundControl.corePlugin.brandImageIndoor : (_activeVehicle ? _activeVehicle.brandImageIndoor : "") ) )