diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index 6a7de14..d1d0f4d 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -439,6 +439,9 @@ bool QGCApplication::_initForNormalAppBoot(void) "Your saved settings have been reset to defaults."); } + // Connect links with flag AutoconnectLink + toolbox()->linkManager()->startAutoConnectedLinks(); + if (getQGCMapEngine()->wasCacheReset()) { showMessage("The Offline Map Cache database has been upgraded. " "Your old map cache sets have been reset."); diff --git a/src/comm/BluetoothLink.h b/src/comm/BluetoothLink.h index 9e9d318..e639ac3 100644 --- a/src/comm/BluetoothLink.h +++ b/src/comm/BluetoothLink.h @@ -104,7 +104,6 @@ public: void loadSettings (QSettings& settings, const QString& root); void saveSettings (QSettings& settings, const QString& root); void updateSettings (); - bool isAutoConnectAllowed () { return false; } QString settingsURL () { return "BluetoothSettings.qml"; } public slots: diff --git a/src/comm/LinkConfiguration.h b/src/comm/LinkConfiguration.h index 42a181b..76a4bed 100644 --- a/src/comm/LinkConfiguration.h +++ b/src/comm/LinkConfiguration.h @@ -93,7 +93,7 @@ public: * Is Auto Connect allowed for this type? * @return True if this type can be set as an Auto Connect configuration */ - virtual bool isAutoConnectAllowed() { return true; } + virtual bool isAutoConnectAllowed() { return false; } /*! * @brief Connection type diff --git a/src/comm/LinkManager.cc b/src/comm/LinkManager.cc index 68d31c1..09233d4 100644 --- a/src/comm/LinkManager.cc +++ b/src/comm/LinkManager.cc @@ -990,3 +990,14 @@ QList LinkManager::links(void) return rawLinks; } + +void LinkManager::startAutoConnectedLinks(void) +{ + SharedLinkConfigurationPointer conf; + + for(int i = 0; i < _sharedConfigurations.count(); i++) { + conf = _sharedConfigurations[i]; + if (conf->isAutoConnect()) + createConnectedLink(conf); + } +} diff --git a/src/comm/LinkManager.h b/src/comm/LinkManager.h index 9383c38..8a2031b 100644 --- a/src/comm/LinkManager.h +++ b/src/comm/LinkManager.h @@ -171,6 +171,8 @@ public: SharedLinkConfigurationPointer addConfiguration(LinkConfiguration* config); + void startAutoConnectedLinks(void); + signals: void autoconnectUDPChanged (bool autoconnect); void autoconnectPixhawkChanged (bool autoconnect); diff --git a/src/comm/LogReplayLink.h b/src/comm/LogReplayLink.h index 2b78756..10b55d8 100644 --- a/src/comm/LogReplayLink.h +++ b/src/comm/LogReplayLink.h @@ -40,7 +40,6 @@ public: void loadSettings (QSettings& settings, const QString& root); void saveSettings (QSettings& settings, const QString& root); void updateSettings (); - bool isAutoConnectAllowed () { return false; } QString settingsURL () { return "LogReplaySettings.qml"; } signals: void fileNameChanged(); diff --git a/src/comm/UDPLink.h b/src/comm/UDPLink.h index df0c58e..a20efa2 100644 --- a/src/comm/UDPLink.h +++ b/src/comm/UDPLink.h @@ -131,12 +131,13 @@ public: QStringList hostList () { return _hostList; } /// From LinkConfiguration - LinkType type () { return LinkConfiguration::TypeUdp; } - void copyFrom (LinkConfiguration* source); - void loadSettings (QSettings& settings, const QString& root); - void saveSettings (QSettings& settings, const QString& root); - void updateSettings (); - QString settingsURL () { return "UdpSettings.qml"; } + LinkType type () { return LinkConfiguration::TypeUdp; } + void copyFrom (LinkConfiguration* source); + void loadSettings (QSettings& settings, const QString& root); + void saveSettings (QSettings& settings, const QString& root); + void updateSettings (); + bool isAutoConnectAllowed () { return true; } + QString settingsURL () { return "UdpSettings.qml"; } signals: void localPortChanged (); diff --git a/src/ui/preferences/LinkSettings.qml b/src/ui/preferences/LinkSettings.qml index 4479824..cd4d75b 100644 --- a/src/ui/preferences/LinkSettings.qml +++ b/src/ui/preferences/LinkSettings.qml @@ -271,12 +271,11 @@ Rectangle { height: ScreenTools.defaultFontPixelHeight * 0.5 width: parent.width } - /* - //-- Auto Connect + //-- Auto Connect on Start QGCCheckBox { text: "Automatically Connect on Start" checked: false - enabled: editConfig ? editConfig.autoConnectAllowed : false + visible: editConfig ? editConfig.autoConnectAllowed : false onCheckedChanged: { if(editConfig) { editConfig.autoConnect = checked @@ -287,7 +286,6 @@ Rectangle { checked = editConfig.autoConnect } } - */ Item { height: ScreenTools.defaultFontPixelHeight width: parent.width