diff --git a/src/Airmap/AirMapFlightManager.cc b/src/Airmap/AirMapFlightManager.cc index b52f9da029c22b80655cfa7918a837d0de6ad457..1d34f87de34b9e9b29a898dac07d3058c995cb2f 100644 --- a/src/Airmap/AirMapFlightManager.cc +++ b/src/Airmap/AirMapFlightManager.cc @@ -94,7 +94,7 @@ void AirMapFlightManager::createFlight(const QList& missionItems) qCDebug(AirMapManagerLog) << "Got Pilot ID:"<<_pilotID; _uploadFlight(); } else { - _flightPermitStatus = AirspaceFlightPlanProvider::PermitUnknown; + _flightPermitStatus = AirspaceFlightPlanProvider::PermitNone; emit flightPermitStatusChanged(); _state = State::Idle; @@ -372,7 +372,7 @@ void AirMapFlightManager::endFlight() } _endFlight(_currentFlightId); - _flightPermitStatus = AirspaceFlightPlanProvider::PermitUnknown; + _flightPermitStatus = AirspaceFlightPlanProvider::PermitNone; emit flightPermitStatusChanged(); } diff --git a/src/Airmap/AirMapFlightManager.h b/src/Airmap/AirMapFlightManager.h index b8439fc7ccc9d2f5533cb9f946077f5c24e04be5..e708d690cb232e4c46df3facac1a5b53d50a47c7 100644 --- a/src/Airmap/AirMapFlightManager.h +++ b/src/Airmap/AirMapFlightManager.h @@ -108,7 +108,7 @@ private: QString _currentFlightId; ///< Flight ID, empty if there is none QString _pendingFlightId; ///< current flight ID, not necessarily accepted yet (once accepted, it's equal to _currentFlightId) QString _pendingFlightPlan; ///< current flight plan, waiting to be submitted - AirspaceFlightPlanProvider::PermitStatus _flightPermitStatus = AirspaceFlightPlanProvider::PermitUnknown; + AirspaceFlightPlanProvider::PermitStatus _flightPermitStatus = AirspaceFlightPlanProvider::PermitNone; QString _pilotID; ///< Pilot ID in the form "auth0|abc123" bool _noFlightCreatedYet = true; QTimer _pollTimer; ///< timer to poll for approval check diff --git a/src/Airmap/AirMapFlightPlanManager.cc b/src/Airmap/AirMapFlightPlanManager.cc index 9c4b56bbdc6d0a88918f9616ed42f7157d6fcac9..a7571aed1430343b1cd7046109e58aa1afedb20f 100644 --- a/src/Airmap/AirMapFlightPlanManager.cc +++ b/src/Airmap/AirMapFlightPlanManager.cc @@ -143,7 +143,7 @@ AirMapFlightPlanManager::_createFlightPlan() qCDebug(AirMapManagerLog) << "Got Pilot ID:"<<_pilotID; _uploadFlightPlan(); } else { - _flightPermitStatus = AirspaceFlightPlanProvider::PermitUnknown; + _flightPermitStatus = AirspaceFlightPlanProvider::PermitNone; emit flightPermitStatusChanged(); _state = State::Idle; QString description = QString::fromStdString(result.error().description() ? result.error().description().get() : ""); diff --git a/src/Airmap/AirMapFlightPlanManager.h b/src/Airmap/AirMapFlightPlanManager.h index 7ee79175e6d73cb19039efc30a0654bf211d9381..b13b56a002738d939b7866f758af7e7c58f8f80b 100644 --- a/src/Airmap/AirMapFlightPlanManager.h +++ b/src/Airmap/AirMapFlightPlanManager.h @@ -88,7 +88,7 @@ private: QmlObjectListModel _rulesets; AirspaceAdvisoryProvider::AdvisoryColor _airspaceColor; - AirspaceFlightPlanProvider::PermitStatus _flightPermitStatus = AirspaceFlightPlanProvider::PermitUnknown; + AirspaceFlightPlanProvider::PermitStatus _flightPermitStatus = AirspaceFlightPlanProvider::PermitNone; }; diff --git a/src/Airmap/AirMapManager.cc b/src/Airmap/AirMapManager.cc index a995f2769dac7926a3a80d92000af66ffca246ee..58b24c03942bf8e07c8e37f68f36522da3d2aa41 100644 --- a/src/Airmap/AirMapManager.cc +++ b/src/Airmap/AirMapManager.cc @@ -37,8 +37,8 @@ AirMapManager::AirMapManager(QGCApplication* app, QGCToolbox* toolbox) { _logger = std::make_shared(); qt::register_types(); // TODO: still needed? - _logger->logging_category().setEnabled(QtDebugMsg, false); - _logger->logging_category().setEnabled(QtInfoMsg, false); + _logger->logging_category().setEnabled(QtDebugMsg, true); + _logger->logging_category().setEnabled(QtInfoMsg, true); _logger->logging_category().setEnabled(QtWarningMsg, true); _dispatchingLogger = std::make_shared(_logger); connect(&_shared, &AirMapSharedState::error, this, &AirMapManager::_error); diff --git a/src/Airmap/AirMapRulesetsManager.cc b/src/Airmap/AirMapRulesetsManager.cc index e8de64098ec0fd9daca1e5e58aaf8f02d977cab1..346013bf67b1377e59c8be564500acba2bc426d9 100644 --- a/src/Airmap/AirMapRulesetsManager.cc +++ b/src/Airmap/AirMapRulesetsManager.cc @@ -248,8 +248,8 @@ void AirMapRulesetsManager::setROI(const QGCGeoBoundingCube& roi) //-- Sort rules by display order std::sort(pRuleSet->_rules.objectList()->begin(), pRuleSet->_rules.objectList()->end(), rules_sort); _ruleSets.append(pRuleSet); - /* qCDebug(AirMapManagerLog) << "Adding ruleset" << pRuleSet->name(); + /* qDebug() << "------------------------------------------"; qDebug() << "Jurisdiction:" << ruleset.jurisdiction.name.data() << (int)ruleset.jurisdiction.region; qDebug() << "Name: " << ruleset.name.data(); diff --git a/src/Airmap/AirspaceControl.qml b/src/Airmap/AirspaceControl.qml index 8f7a601dfaabca0c61f1199fb827f69e77c03033..3a2563d5bbed996363ba781ba86592ee602cc8a7 100644 --- a/src/Airmap/AirspaceControl.qml +++ b/src/Airmap/AirspaceControl.qml @@ -27,6 +27,7 @@ Item { property bool _validAdvisories: QGroundControl.airspaceManager.advisories.valid property color _textColor: qgcPal.text property bool _colapsed: !QGroundControl.airspaceManager.airspaceVisible + property var _flightPermit: QGroundControl.airspaceManager.flightPlan.flightPermitStatus readonly property real _radius: ScreenTools.defaultFontPixelWidth * 0.5 readonly property color _colorOrange: "#d75e0d" @@ -342,6 +343,26 @@ Item { } } //-- Footer + Row { + spacing: ScreenTools.defaultFontPixelWidth * 2 + anchors.horizontalCenter: parent.horizontalCenter + QGCButton { + text: qsTr("Details") + backRadius: 4 + heightFactor: 0.3333 + showBorder: true + enabled: _flightPermit !== AirspaceFlightPlanProvider.PermitNone + width: ScreenTools.defaultFontPixelWidth * 10 + } + QGCButton { + text: qsTr("File Plan") + backRadius: 4 + heightFactor: 0.3333 + showBorder: true + enabled: _flightPermit !== AirspaceFlightPlanProvider.PermitNone + width: ScreenTools.defaultFontPixelWidth * 10 + } + } QGCLabel { text: qsTr("Powered by AIRMAP") color: _textColor diff --git a/src/Airmap/airmap.qrc b/src/Airmap/airmap.qrc index efbf6ed99c27c812b1e36b03e2be0dd2009b8389..8a18ef01dc88b6b63348a5ca2e341549a4f0c3d9 100644 --- a/src/Airmap/airmap.qrc +++ b/src/Airmap/airmap.qrc @@ -1,11 +1,11 @@ - QGroundControl.Airmap.qmldir + AirmapSettings.qml AirspaceControl.qml AirspaceRegulation.qml AirspaceWeather.qml + QGroundControl.Airmap.qmldir RuleSelector.qml - AirmapSettings.qml AirMap.SettingsGroup.json diff --git a/src/AirspaceManagement/AirspaceFlightPlanProvider.h b/src/AirspaceManagement/AirspaceFlightPlanProvider.h index abc20300c56e6e913d5099d1f4c019c0e0acc24b..6d30a6ba407c596ccfabb0f7b724652aba081e63 100644 --- a/src/AirspaceManagement/AirspaceFlightPlanProvider.h +++ b/src/AirspaceManagement/AirspaceFlightPlanProvider.h @@ -29,7 +29,7 @@ class AirspaceFlightPlanProvider : public QObject public: enum PermitStatus { - PermitUnknown = 0, + PermitNone = 0, //-- No flght plan PermitPending, PermitAccepted, PermitRejected, @@ -48,7 +48,7 @@ public: Q_PROPERTY(QmlObjectListModel* ruleSets READ ruleSets NOTIFY advisoryChanged) Q_PROPERTY(AirspaceAdvisoryProvider::AdvisoryColor airspaceColor READ airspaceColor NOTIFY advisoryChanged) - virtual PermitStatus flightPermitStatus () const { return PermitUnknown; } + virtual PermitStatus flightPermitStatus () const { return PermitNone; } virtual QDateTime flightStartTime () const = 0; virtual QDateTime flightEndTime () const = 0; virtual bool valid () = 0; ///< Current advisory list is valid diff --git a/src/FlightDisplay/FlightDisplayView.qml b/src/FlightDisplay/FlightDisplayView.qml index c5af36c3e6a3d57c8c688ab33afd6720f48686e6..bc815e8e059d3236efd81545365371f2a7f170e6 100644 --- a/src/FlightDisplay/FlightDisplayView.qml +++ b/src/FlightDisplay/FlightDisplayView.qml @@ -634,7 +634,7 @@ QGCView { width: airspaceRow.width + (ScreenTools.defaultFontPixelWidth * 3) height: airspaceRow.height * 1.25 color: qgcPal.globalTheme === QGCPalette.Light ? Qt.rgba(1,1,1,0.95) : Qt.rgba(0,0,0,0.75) - visible: QGroundControl.airmapSupported && _mainIsMap && flightPermit && flightPermit !== AirspaceFlightPlanProvider.PermitUnknown && !messageArea.visible && !criticalMmessageArea.visible + visible: QGroundControl.airmapSupported && _mainIsMap && flightPermit && flightPermit !== AirspaceFlightPlanProvider.PermitNone && !messageArea.visible && !criticalMmessageArea.visible radius: 3 border.width: 1 border.color: qgcPal.globalTheme === QGCPalette.Light ? Qt.rgba(0,0,0,0.35) : Qt.rgba(1,1,1,0.35) diff --git a/src/QmlControls/QGCButton.qml b/src/QmlControls/QGCButton.qml index f9cbe883583a6acd69dcd319a30a09633bb89f35..c0cc68fb157a0f1d60ea435527eba7b19b1ed83d 100644 --- a/src/QmlControls/QGCButton.qml +++ b/src/QmlControls/QGCButton.qml @@ -6,12 +6,14 @@ import QGroundControl.Palette 1.0 import QGroundControl.ScreenTools 1.0 Button { - property bool primary: false ///< primary button for a group of buttons - property real pointSize: ScreenTools.defaultFontPointSize ///< Point size for button text + property bool primary: false ///< primary button for a group of buttons + property real pointSize: ScreenTools.defaultFontPointSize ///< Point size for button text + property bool showBorder: _qgcPal.globalTheme === QGCPalette.Light + property real backRadius: 0 + property real heightFactor: 0.5 property var _qgcPal: QGCPalette { colorGroupEnabled: enabled } property bool _showHighlight: (pressed | hovered | checked) && !__forceHoverOff - property bool _showBorder: _qgcPal.globalTheme === QGCPalette.Light // This fixes the issue with button hover where if a Button is near the edge oa QQuickWidget you can // move the mouse fast enough such that the MouseArea does not trigger an onExited. This is turn @@ -22,7 +24,7 @@ Button { property int __lastGlobalMouseX: 0 property int __lastGlobalMouseY: 0 property int _horizontalPadding: ScreenTools.defaultFontPixelWidth - property int _verticalPadding: Math.round(ScreenTools.defaultFontPixelHeight / 2) + property int _verticalPadding: Math.round(ScreenTools.defaultFontPixelHeight * heightFactor) Connections { target: __behavior @@ -58,9 +60,11 @@ Button { /*! This defines the background of the button. */ background: Rectangle { + id: backRect implicitWidth: ScreenTools.implicitButtonWidth implicitHeight: ScreenTools.implicitButtonHeight - border.width: _showBorder ? 1: 0 + radius: backRadius + border.width: showBorder ? 1 : 0 border.color: _qgcPal.buttonText color: _showHighlight ? control._qgcPal.buttonHighlight :