diff --git a/src/QGCQmlWidgetHolder.cpp b/src/QGCQmlWidgetHolder.cpp index 9651cf262cb85969edf2c9ad1349f02aca86d925..a769ea39e69d8ea1f566df4306cded44f69d99d1 100644 --- a/src/QGCQmlWidgetHolder.cpp +++ b/src/QGCQmlWidgetHolder.cpp @@ -30,7 +30,7 @@ QGCQmlWidgetHolder::QGCQmlWidgetHolder(QWidget *parent) : QWidget(parent) { _ui.setupUi(this); - _ui.qmlWidget->setResizeMode(QQuickWidget::SizeRootObjectToView); + setResizeMode(QQuickWidget::SizeRootObjectToView); } QGCQmlWidgetHolder::~QGCQmlWidgetHolder() @@ -62,3 +62,8 @@ QQuickItem* QGCQmlWidgetHolder::getRootObject(void) { return _ui.qmlWidget->rootObject(); } + +void QGCQmlWidgetHolder::setResizeMode(QQuickWidget::ResizeMode resizeMode) +{ + _ui.qmlWidget->setResizeMode(resizeMode); +} \ No newline at end of file diff --git a/src/QGCQmlWidgetHolder.h b/src/QGCQmlWidgetHolder.h index 0439d01b8b6f4de8909fcf0f2a9846f9e096b29a..ae99070283fafdd6ca5e37902342f32fa69a1e92 100644 --- a/src/QGCQmlWidgetHolder.h +++ b/src/QGCQmlWidgetHolder.h @@ -60,6 +60,9 @@ public: bool setSource(const QUrl& qmlUrl); void setContextPropertyObject(const QString& name, QObject* object); + + /// Sets the resize mode for the QQuickWidget container + void setResizeMode(QQuickWidget::ResizeMode resizeMode); private: Ui::QGCQmlWidgetHolder _ui; diff --git a/src/ui/toolbar/MainToolBar.cc b/src/ui/toolbar/MainToolBar.cc index 73e7a48c170ce707e02fda2fb51b5c2c5284e436..8048875cfec9cd059098be8e054e70c246e05c3a 100644 --- a/src/ui/toolbar/MainToolBar.cc +++ b/src/ui/toolbar/MainToolBar.cc @@ -92,6 +92,8 @@ MainToolBar::MainToolBar(QWidget* parent) SLOT(_telemetryChanged(LinkInterface*, unsigned, unsigned, unsigned, unsigned, unsigned, unsigned, unsigned))); connect(UASManager::instance(), SIGNAL(activeUASSet(UASInterface*)), this, SLOT(_setActiveUAS(UASInterface*))); connect(UASManager::instance(), SIGNAL(UASDeleted(UASInterface*)), this, SLOT(_forgetUAS(UASInterface*))); + + connect(this, &MainToolBar::heightChanged, this, &MainToolBar::_heightChanged); } MainToolBar::~MainToolBar() @@ -396,3 +398,9 @@ void MainToolBar::_setProgressBarValue(float value) _progressBarValue = value; emit progressBarValueChanged(value); } + +void MainToolBar::_heightChanged(double height) +{ + setMinimumHeight(height); + setMaximumHeight(height); +} diff --git a/src/ui/toolbar/MainToolBar.h b/src/ui/toolbar/MainToolBar.h index 94bf57af40b7a5afb22522cf6702e391c15bf4be..0e0ab74eddb034527f68487f1da0b36ef491bbaa 100644 --- a/src/ui/toolbar/MainToolBar.h +++ b/src/ui/toolbar/MainToolBar.h @@ -69,19 +69,20 @@ public: Q_INVOKABLE void onDisconnect(QString conf); Q_INVOKABLE void onEnterMessageArea(int x, int y); - Q_PROPERTY(ViewType_t currentView MEMBER _currentView NOTIFY currentViewChanged) - Q_PROPERTY(QStringList configList MEMBER _linkConfigurations NOTIFY configListChanged) - Q_PROPERTY(int connectionCount READ connectionCount NOTIFY connectionCountChanged) - Q_PROPERTY(QStringList connectedList MEMBER _connectedList NOTIFY connectedListChanged) - Q_PROPERTY(bool showGPS MEMBER _showGPS NOTIFY showGPSChanged) - Q_PROPERTY(bool showMav MEMBER _showMav NOTIFY showMavChanged) - Q_PROPERTY(bool showMessages MEMBER _showMessages NOTIFY showMessagesChanged) - Q_PROPERTY(bool showBattery MEMBER _showBattery NOTIFY showBatteryChanged) - Q_PROPERTY(bool showRSSI MEMBER _showRSSI NOTIFY showRSSIChanged) - Q_PROPERTY(float progressBarValue MEMBER _progressBarValue NOTIFY progressBarValueChanged) - Q_PROPERTY(int remoteRSSI READ remoteRSSI NOTIFY remoteRSSIChanged) - Q_PROPERTY(int telemetryRRSSI READ telemetryRRSSI NOTIFY telemetryRRSSIChanged) - Q_PROPERTY(int telemetryLRSSI READ telemetryLRSSI NOTIFY telemetryLRSSIChanged) + Q_PROPERTY(double height MEMBER _toolbarHeight NOTIFY heightChanged) + Q_PROPERTY(ViewType_t currentView MEMBER _currentView NOTIFY currentViewChanged) + Q_PROPERTY(QStringList configList MEMBER _linkConfigurations NOTIFY configListChanged) + Q_PROPERTY(int connectionCount READ connectionCount NOTIFY connectionCountChanged) + Q_PROPERTY(QStringList connectedList MEMBER _connectedList NOTIFY connectedListChanged) + Q_PROPERTY(bool showGPS MEMBER _showGPS NOTIFY showGPSChanged) + Q_PROPERTY(bool showMav MEMBER _showMav NOTIFY showMavChanged) + Q_PROPERTY(bool showMessages MEMBER _showMessages NOTIFY showMessagesChanged) + Q_PROPERTY(bool showBattery MEMBER _showBattery NOTIFY showBatteryChanged) + Q_PROPERTY(bool showRSSI MEMBER _showRSSI NOTIFY showRSSIChanged) + Q_PROPERTY(float progressBarValue MEMBER _progressBarValue NOTIFY progressBarValueChanged) + Q_PROPERTY(int remoteRSSI READ remoteRSSI NOTIFY remoteRSSIChanged) + Q_PROPERTY(int telemetryRRSSI READ telemetryRRSSI NOTIFY telemetryRRSSIChanged) + Q_PROPERTY(int telemetryLRSSI READ telemetryLRSSI NOTIFY telemetryLRSSIChanged) void setCurrentView (int currentView); void viewStateChanged (const QString& key, bool value); @@ -89,7 +90,7 @@ public: int telemetryRRSSI () { return _telemetryRRSSI; } int telemetryLRSSI () { return _telemetryLRSSI; } int connectionCount () { return _connectionCount; } - + signals: void connectionCountChanged (int count); void currentViewChanged (); @@ -104,6 +105,10 @@ signals: void remoteRSSIChanged (int value); void telemetryRRSSIChanged (int value); void telemetryLRSSIChanged (int value); + void heightChanged (double height); + + /// Shows a non-modal message below the toolbar + void showMessage(const QString& message); private slots: void _forgetUAS (UASInterface* uas); @@ -115,6 +120,7 @@ private slots: void _setProgressBarValue (float value); void _remoteControlRSSIChanged (uint8_t rssi); void _telemetryChanged (LinkInterface* link, unsigned rxerrors, unsigned fixed, unsigned rssi, unsigned remrssi, unsigned txbuf, unsigned noise, unsigned remnoise); + void _heightChanged (double height); private: void _updateConnection (LinkInterface *disconnectedLink = NULL); @@ -137,6 +143,7 @@ private: double _remoteRSSIstore; int _telemetryRRSSI; int _telemetryLRSSI; + double _toolbarHeight; UASMessageViewRollDown* _rollDownMessages; }; diff --git a/src/ui/toolbar/MainToolBar.qml b/src/ui/toolbar/MainToolBar.qml index 11bc7309b4972f563e1bda6441e6e44996d383b6..96c9e631b35c1a52652a82fe2d295d300417b403 100644 --- a/src/ui/toolbar/MainToolBar.qml +++ b/src/ui/toolbar/MainToolBar.qml @@ -43,14 +43,15 @@ Rectangle { property var qgcPal: QGCPalette { id: palette; colorGroupEnabled: true } - property int cellSpacerSize: ScreenTools.isMobile ? getProportionalDimmension(6) : getProportionalDimmension(4) - property int cellHeight: getProportionalDimmension(30) + readonly property real toolBarHeight: ScreenTools.defaultFontPixelHeight * 3 + property int cellSpacerSize: ScreenTools.isMobile ? getProportionalDimmension(6) : getProportionalDimmension(4) + readonly property int cellHeight: getProportionalDimmension(30) - property var colorBlue: "#1a6eaa" - property var colorGreen: "#329147" - property var colorRed: "#942324" - property var colorOrange: "#a76f26" - property var colorWhite: "#f0f0f0" + readonly property var colorBlue: "#1a6eaa" + readonly property var colorGreen: "#329147" + readonly property var colorRed: "#942324" + readonly property var colorOrange: "#a76f26" + readonly property var colorWhite: "#f0f0f0" property var colorOrangeText: (qgcPal.globalTheme === QGCPalette.Light) ? "#b75711" : "#ea8225" property var colorRedText: (qgcPal.globalTheme === QGCPalette.Light) ? "#ee1112" : "#ef2526" @@ -59,8 +60,13 @@ Rectangle { color: qgcPal.windowShade + Connections { + target: mainToolBar + onShowMessage: mainToolBar.height = 100 + } + function getProportionalDimmension(val) { - return toolBarHolder.height * val / 40 + return toolBarHeight * val / 40 } function getMessageColor() {