From df140d38d5b55dac253d56c149177185d0831482 Mon Sep 17 00:00:00 2001 From: Bryant Date: Sat, 22 Jun 2013 13:15:29 -0700 Subject: [PATCH] Fixed styling of the toolbar, specifically coloring and sizing of the buttons, and made the labels aware of the current window theme. Also made some changes to updating the toolbar when switching UASes or when UASes disconnect/reconnect. --- files/styles/style-dark.css | 49 +++++++++++++++++++++++---------- files/styles/style-light.css | 47 ++++++++++++++++++++++---------- src/ui/QGCToolBar.cc | 53 +++++++++++++++++++++++++++--------- src/ui/QGCToolBar.h | 1 + 4 files changed, 108 insertions(+), 42 deletions(-) diff --git a/files/styles/style-dark.css b/files/styles/style-dark.css index ad6508812..68468d9b5 100644 --- a/files/styles/style-dark.css +++ b/files/styles/style-dark.css @@ -83,54 +83,73 @@ QGCMAVLinkLogPlayer { } QGCMAVLinkLogPlayer QLabel { - color: #FFF; + color: #FFF; } QGCMAVLinkLogPlayer QLabel:disabled { - color: #AAA; + color: #AAA; } QGCToolBar { border-top-color: #969696; border-bottom-color: #484848; background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #4B4B4B, stop: 0.3 #404040, stop: 0.34 #383838, stop:1 #181818); + padding: 0; + margin: 0; } QGCToolBar QLabel { font-size: 12pt; font-weight: bold; - margin: 3px 2px; -} - -QGCToolBar QLabel#symbolLabel { - background-clip: content; + margin: 4px 2px; + padding: 0 2px; + border-radius: 4px; } QGCToolBar QLabel#toolBarBatteryBar { - color: #008000; + color: #0F0; } QGCToolBar QLabel#toolBarTimeoutLabel { - border-radius: 4px; - padding: 0; color: #000; background-color: #FF0037; } +QGCToolBar QLabel#toolBarModeLabel { + color: #ACEBFE; +} + +QGCToolBar QLabel#toolBarStateLabel { + color: #FEC654; +} + +QGCToolBar QLabel#toolBarBatteryVoltageLabel { + color: #0F0; +} + +QGCToolBar QLabel#toolBarWpLabel { + color: #ACEBFE; +} + +QGCToolBar QLabel#toolBarMessageLabel { + color: #ACEBFE; +} + QGCToolBar QProgressBar { - height: 26px; - max-height: 16px; + margin: 4px 2px; } QGCToolBar QToolButton { margin: 0; - padding-left: 0; - padding-right: 0; + padding: 0; border: none; border-top: 1px solid #333; border-bottom: 1px solid #333; border-radius: 0; + height: 24px; + margin-bottom: 4px; text-align: left; + font-weight: bold; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #AAA, stop: 1 #BBB); color: #000; } @@ -147,7 +166,7 @@ QGCToolBar QToolButton:hover { QGCToolBar QToolButton#advancedButton { margin-left: 0; margin-right: 13px; - padding-left: 4px; + padding: 0 12px 0 4px; padding-right: 8px; border-radius: 0; border-bottom-right-radius: 6px; diff --git a/files/styles/style-light.css b/files/styles/style-light.css index 18f736baa..455a5b459 100644 --- a/files/styles/style-light.css +++ b/files/styles/style-light.css @@ -83,27 +83,27 @@ QGCMAVLinkLogPlayer { } QGCMAVLinkLogPlayer QLabel { - color: #FFF; + color: #FFF; } QGCMAVLinkLogPlayer QLabel:disabled { - color: #666; + color: #666; } QGCToolBar { border-top-color: #969696; border-bottom-color: #484848; background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #DDD, stop: 1 #999); + padding: 0; + margin: 0; } QGCToolBar QLabel { font-size: 12pt; font-weight: bold; - margin: 3px 2px; -} - -QGCToolBar QLabel#symbolLabel { - background-clip: content; + margin: 4px 2px; + padding: 0 2px; + border-radius: 4px; } QGCToolBar QLabel#toolBarBatteryBar { @@ -111,26 +111,45 @@ QGCToolBar QLabel#toolBarBatteryBar { } QGCToolBar QLabel#toolBarTimeoutLabel { - border-radius: 4px; - padding: 0; color: #000; background-color: #FF0037; } +QGCToolBar QLabel#toolBarModeLabel { + color: #475E66; +} + +QGCToolBar QLabel#toolBarStateLabel { + color: #80632A; +} + +QGCToolBar QLabel#toolBarBatteryVoltageLabel { + color: #008000; +} + +QGCToolBar QLabel#toolBarWpLabel { + color: #475E66; +} + +QGCToolBar QLabel#toolBarMessageLabel { + color: #475E66; +} + QGCToolBar QProgressBar { - height: 26px; - max-height: 16px; + margin: 4px 2px; } QGCToolBar QToolButton { margin: 0; - padding-left: 0; - padding-right: 0; + padding: 0; border: none; border-top: 1px solid #DDD; border-bottom: 1px solid #DDD; border-radius: 0; + height: 24px; + margin-bottom: 4px; text-align: left; + font-weight: bold; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #333, stop: 1 #444); color: #FFF; } @@ -147,7 +166,7 @@ QGCToolBar QToolButton:hover { QGCToolBar QToolButton#advancedButton { margin-left: 0; margin-right: 13px; - padding-left: 4px; + padding: 0 12px 0 4px; padding-right: 8px; border-radius: 0; border-bottom-right-radius: 6px; diff --git a/src/ui/QGCToolBar.cc b/src/ui/QGCToolBar.cc index 9e50a53ca..3ffcaa5b2 100644 --- a/src/ui/QGCToolBar.cc +++ b/src/ui/QGCToolBar.cc @@ -41,6 +41,7 @@ QGCToolBar::QGCToolBar(QWidget *parent) : firstAction(NULL) { setObjectName("QGCToolBar"); + setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); // Do not load UI, wait for actions } @@ -70,14 +71,14 @@ void QGCToolBar::heartbeatTimeout(bool timeout, unsigned int ms) toolBarTimeoutLabel->setStyleSheet(QString("QLabel {color: #FFF; background-color: #6B0017;}")); } toolBarTimeoutLabel->setText(tr("CONNECTION LOST: %1 s").arg((ms / 1000.0f), 2, 'f', 1, ' ')); + toolBarTimeoutAction->setVisible(true); } else { // Check if loss text is present, reset once - if (toolBarTimeoutLabel->text() != "") + if (toolBarTimeoutAction->isVisible()) { - toolBarTimeoutLabel->setText(""); - toolBarTimeoutLabel->setStyleSheet(QString("")); + toolBarTimeoutAction->setVisible(false); } } } @@ -93,13 +94,15 @@ void QGCToolBar::createUI() toolBarNameLabel = new QLabel(this); toolBarNameLabel->setToolTip(tr("Currently controlled vehicle")); toolBarNameLabel->setAlignment(Qt::AlignCenter); + toolBarNameLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); addWidget(toolBarNameLabel); toolBarTimeoutLabel = new QLabel(this); toolBarTimeoutLabel->setToolTip(tr("System timed out, interval since last message")); toolBarTimeoutLabel->setAlignment(Qt::AlignCenter); toolBarTimeoutLabel->setObjectName("toolBarTimeoutLabel"); - addWidget(toolBarTimeoutLabel); + toolBarTimeoutLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + toolBarTimeoutAction = addWidget(toolBarTimeoutLabel); toolBarSafetyLabel = new QLabel(this); toolBarSafetyLabel->setToolTip(tr("Vehicle safety state")); @@ -108,11 +111,13 @@ void QGCToolBar::createUI() toolBarModeLabel = new QLabel(this); toolBarModeLabel->setToolTip(tr("Vehicle mode")); + toolBarModeLabel->setObjectName("toolBarModeLabel"); toolBarModeLabel->setAlignment(Qt::AlignCenter); addWidget(toolBarModeLabel); toolBarStateLabel = new QLabel(this); toolBarStateLabel->setToolTip(tr("Vehicle state")); + toolBarStateLabel->setObjectName("toolBarStateLabel"); toolBarStateLabel->setAlignment(Qt::AlignCenter); addWidget(toolBarStateLabel); @@ -123,16 +128,18 @@ void QGCToolBar::createUI() toolBarBatteryBar->setMaximumWidth(100); toolBarBatteryBar->setToolTip(tr("Battery charge level")); toolBarBatteryBar->setObjectName("toolBarBatteryBar"); + toolBarBatteryBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::MinimumExpanding); addWidget(toolBarBatteryBar); toolBarBatteryVoltageLabel = new QLabel(this); - toolBarBatteryVoltageLabel->setObjectName("toolBarBatteryVoltageLabel"); toolBarBatteryVoltageLabel->setToolTip(tr("Battery voltage")); + toolBarBatteryVoltageLabel->setObjectName("toolBarBatteryVoltageLabel"); toolBarBatteryVoltageLabel->setAlignment(Qt::AlignCenter); addWidget(toolBarBatteryVoltageLabel); toolBarWpLabel = new QLabel(this); toolBarWpLabel->setToolTip(tr("Current waypoint")); + toolBarWpLabel->setObjectName("toolBarWpLabel"); toolBarWpLabel->setAlignment(Qt::AlignCenter); addWidget(toolBarWpLabel); @@ -143,6 +150,7 @@ void QGCToolBar::createUI() toolBarMessageLabel = new QLabel(this); toolBarMessageLabel->setToolTip(tr("Most recent system message")); + toolBarMessageLabel->setObjectName("toolBarMessageLabel"); addWidget(toolBarMessageLabel); QWidget* spacer = new QWidget(); @@ -192,6 +200,7 @@ void QGCToolBar::resetToolbarUI() toolBarNameLabel->setText("------"); toolBarNameLabel->setStyleSheet(""); toolBarTimeoutLabel->setText(tr("UNCONNECTED")); + //toolBarTimeoutLabel->show(); toolBarSafetyLabel->setText("----"); toolBarModeLabel->setText("------"); toolBarStateLabel->setText("------"); @@ -201,6 +210,8 @@ void QGCToolBar::resetToolbarUI() toolBarWpLabel->setText("WP--"); toolBarDistLabel->setText("--- ---- m"); toolBarMessageLabel->clear(); + lastSystemMessage = ""; + lastSystemMessageTimeMs = 0; symbolLabel->setStyleSheet(""); symbolLabel->clear(); } @@ -341,8 +352,10 @@ void QGCToolBar::setActiveUAS(UASInterface* active) symbolLabel->setStyleSheet(QString("QWidget {background-color: %1;}").arg(mav->getColor().name())); toolBarModeLabel->setText(mav->getShortMode()); toolBarStateLabel->setText(mav->getShortState()); - toolBarTimeoutLabel->setText(""); - toolBarDistLabel->setText(""); + toolBarTimeoutAction->setVisible(false); + toolBarMessageLabel->clear(); + lastSystemMessageTimeMs = 0; + toolBarDistLabel->clear(); toolBarBatteryBar->setEnabled(true); setSystemType(mav, mav->getSystemType()); } @@ -370,20 +383,34 @@ void QGCToolBar::updateView() toolBarWpLabel->setText(tr("WP%1").arg(wpId)); toolBarBatteryBar->setValue(batteryPercent); if (batteryPercent < 30 && toolBarBatteryBar->value() >= 30) { - toolBarBatteryBar->setStyleSheet("QProgressBar::chunk { background-color: green}"); + if (MainWindow::instance()->getStyle() == MainWindow::QGC_MAINWINDOW_STYLE_LIGHT) + { + toolBarBatteryBar->setStyleSheet("QProgressBar {color: #FFF} QProgressBar::chunk { background-color: #008000}"); + } + else + { + toolBarBatteryBar->setStyleSheet("QProgressBar {color: #000} QProgressBar QProgressBar::chunk { background-color: #0F0}"); + } } else if (batteryPercent >= 30 && toolBarBatteryBar->value() < 30){ - toolBarBatteryBar->setStyleSheet("QProgressBar::chunk { background-color: yellow}"); + if (MainWindow::instance()->getStyle() == MainWindow::QGC_MAINWINDOW_STYLE_LIGHT) + { + toolBarBatteryBar->setStyleSheet("QProgressBar {color: #FFF} QProgressBar::chunk { background-color: #808000}"); + } + else + { + toolBarBatteryBar->setStyleSheet("QProgressBar {color: #000} QProgressBar QProgressBar::chunk { background-color: #FF0}"); + } } toolBarBatteryVoltageLabel->setText(tr("%1 V").arg(batteryVoltage, 4, 'f', 1, ' ')); - toolBarStateLabel->setText(tr("%1").arg(state)); - toolBarModeLabel->setText(tr("%1").arg(mode)); + toolBarStateLabel->setText(QString("%1").arg(state)); + toolBarModeLabel->setText(QString("%1").arg(mode)); toolBarNameLabel->setText(systemName); // expire after 15 seconds if (QGC::groundTimeMilliseconds() - lastSystemMessageTimeMs < 15000) { - toolBarMessageLabel->setText(tr("%1").arg(lastSystemMessage)); + toolBarMessageLabel->setText(QString("%1").arg(lastSystemMessage)); } else { - toolBarMessageLabel->setText(tr("%1").arg("")); + toolBarMessageLabel->clear(); } // Display the system armed state with a red-on-yellow background if armed or green text if safe. diff --git a/src/ui/QGCToolBar.h b/src/ui/QGCToolBar.h index d1ba366b9..ac7141ff0 100644 --- a/src/ui/QGCToolBar.h +++ b/src/ui/QGCToolBar.h @@ -93,6 +93,7 @@ protected: QLabel* symbolLabel; QLabel* toolBarNameLabel; QLabel* toolBarTimeoutLabel; + QAction* toolBarTimeoutAction; ///< Needed to set label (in)visible. QLabel* toolBarSafetyLabel; QLabel* toolBarModeLabel; QLabel* toolBarStateLabel; -- 2.22.0