From 9ad1179be2fbf7542df86e94674f494081be8eb4 Mon Sep 17 00:00:00 2001 From: Bryant Date: Mon, 27 May 2013 13:38:08 -0700 Subject: [PATCH] Now I've added suitable styling to the UASQuickView widget. --- files/styles/style-dark.css | 11 ++++++++++ files/styles/style-light.css | 11 ++++++++++ src/ui/uas/UASQuickView.cc | 21 ++++++++++-------- src/ui/uas/UASQuickView.h | 5 ++--- src/ui/uas/UASQuickView.ui | 19 +++++++++++----- src/ui/uas/UASQuickViewItem.cc | 40 +++++++++++++++++++++++++++------- src/ui/uas/UASQuickViewItem.h | 6 +++-- 7 files changed, 86 insertions(+), 27 deletions(-) diff --git a/files/styles/style-dark.css b/files/styles/style-dark.css index d218add52..f9d435c20 100644 --- a/files/styles/style-dark.css +++ b/files/styles/style-dark.css @@ -392,6 +392,17 @@ QToolTip { color: #DDD; } +UASQuickViewItem QLabel { + padding: 0; + margin: 0; + min-height: 1em; + font-weight: bold; +} + +UASQuickViewItem QLabel#value { + font-size: 20pt; +} + WaypointEditableView, WaypointViewOnlyView { border: 1px solid #777; border-radius: 5px; diff --git a/files/styles/style-light.css b/files/styles/style-light.css index fde4a6db8..07250805b 100644 --- a/files/styles/style-light.css +++ b/files/styles/style-light.css @@ -396,6 +396,17 @@ QToolTip { color: #000; } +UASQuickViewItem QLabel { + padding: 0; + margin: 0; + min-height: 1em; + font-weight: bold; +} + +UASQuickViewItem QLabel#value { + font-size: 20pt; +} + WaypointEditableView, WaypointViewOnlyView { border: 1px solid #333; border-radius: 5px; diff --git a/src/ui/uas/UASQuickView.cc b/src/ui/uas/UASQuickView.cc index 5edd0aa76..42dd9bc08 100644 --- a/src/ui/uas/UASQuickView.cc +++ b/src/ui/uas/UASQuickView.cc @@ -1,9 +1,12 @@ #include "UASQuickView.h" #include #include -UASQuickView::UASQuickView(QWidget *parent) : QWidget(parent) +UASQuickView::UASQuickView(QWidget *parent) : + QWidget(parent), + m_ui(new Ui::UASQuickView) { - ui.setupUi(this); + m_ui->setupUi(this); + connect(UASManager::instance(),SIGNAL(activeUASSet(UASInterface*)),this,SLOT(setActiveUAS(UASInterface*))); connect(UASManager::instance(),SIGNAL(UASCreated(UASInterface*)),this,SLOT(addUAS(UASInterface*))); if (UASManager::instance()->getActiveUAS()) @@ -21,7 +24,7 @@ UASQuickView::UASQuickView(QWidget *parent) : QWidget(parent) this->addAction(action); UASQuickViewItem *item = new UASQuickViewItem(this); item->setTitle("latitude"); - ui.verticalLayout->addWidget(item); + this->layout()->addWidget(item); uasPropertyToLabelMap["latitude"] = item; } @@ -33,7 +36,7 @@ UASQuickView::UASQuickView(QWidget *parent) : QWidget(parent) this->addAction(action); UASQuickViewItem *item = new UASQuickViewItem(this); item->setTitle("longitude"); - ui.verticalLayout->addWidget(item); + this->layout()->addWidget(item); uasPropertyToLabelMap["longitude"] = item; } @@ -45,7 +48,7 @@ UASQuickView::UASQuickView(QWidget *parent) : QWidget(parent) this->addAction(action); UASQuickViewItem *item = new UASQuickViewItem(this); item->setTitle("altitude"); - ui.verticalLayout->addWidget(item); + this->layout()->addWidget(item); uasPropertyToLabelMap["altitude"] = item; } @@ -57,7 +60,7 @@ UASQuickView::UASQuickView(QWidget *parent) : QWidget(parent) this->addAction(action); UASQuickViewItem *item = new UASQuickViewItem(this); item->setTitle("satelliteCount"); - ui.verticalLayout->addWidget(item); + this->layout()->addWidget(item); uasPropertyToLabelMap["satelliteCount"] = item; } @@ -69,7 +72,7 @@ UASQuickView::UASQuickView(QWidget *parent) : QWidget(parent) this->addAction(action); UASQuickViewItem *item = new UASQuickViewItem(this); item->setTitle("distToWaypoint"); - ui.verticalLayout->addWidget(item); + this->layout()->addWidget(item); uasPropertyToLabelMap["distToWaypoint"] = item; } @@ -146,12 +149,12 @@ void UASQuickView::actionTriggered(bool checked) { UASQuickViewItem *item = new UASQuickViewItem(this); item->setTitle(senderlabel->text()); - ui.verticalLayout->addWidget(item); + this->layout()->addWidget(item); uasPropertyToLabelMap[senderlabel->text()] = item; } else { - ui.verticalLayout->removeWidget(uasPropertyToLabelMap[senderlabel->text()]); + this->layout()->removeWidget(uasPropertyToLabelMap[senderlabel->text()]); uasPropertyToLabelMap[senderlabel->text()]->deleteLater(); uasPropertyToLabelMap.remove(senderlabel->text()); diff --git a/src/ui/uas/UASQuickView.h b/src/ui/uas/UASQuickView.h index 7a06fecad..513edc6cf 100644 --- a/src/ui/uas/UASQuickView.h +++ b/src/ui/uas/UASQuickView.h @@ -19,10 +19,9 @@ private: QMap uasPropertyValueMap; QMap uasPropertyToLabelMap; QTimer *updateTimer; -protected: - Ui::Form ui; + Ui::UASQuickView* m_ui; signals: - + public slots: void valueChanged(const int uasid, const QString& name, const QString& unit, const QVariant value,const quint64 msecs); void actionTriggered(bool checked); diff --git a/src/ui/uas/UASQuickView.ui b/src/ui/uas/UASQuickView.ui index 19e3272ec..2f3576f35 100644 --- a/src/ui/uas/UASQuickView.ui +++ b/src/ui/uas/UASQuickView.ui @@ -1,7 +1,7 @@ - Form - + UASQuickView + 0 @@ -10,6 +10,12 @@ 300 + + + 0 + 0 + + 100 @@ -20,9 +26,12 @@ Form - - - + + QLayout::SetMinimumSize + + + 0 + diff --git a/src/ui/uas/UASQuickViewItem.cc b/src/ui/uas/UASQuickViewItem.cc index 6c075c64d..53bc1f6cb 100644 --- a/src/ui/uas/UASQuickViewItem.cc +++ b/src/ui/uas/UASQuickViewItem.cc @@ -1,26 +1,50 @@ #include "UASQuickViewItem.h" #include +#include +#include +#include -UASQuickViewItem::UASQuickViewItem(QWidget *parent) : QWidget(parent) +UASQuickViewItem::UASQuickViewItem(QWidget *parent) : + QWidget(parent) { - QVBoxLayout *layout = new QVBoxLayout(); - this->setLayout(layout); + QVBoxLayout* layout = new QVBoxLayout(); + layout->setMargin(0); + layout->setSizeConstraint(QLayout::SetMinimumSize); + titleLabel = new QLabel(this); titleLabel->setAlignment(Qt::AlignHCenter); - this->layout()->addWidget(titleLabel); + titleLabel->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Minimum); + titleLabel->setObjectName(QString::fromUtf8("title")); + layout->addWidget(titleLabel); + valueLabel = new QLabel(this); valueLabel->setAlignment(Qt::AlignHCenter); - valueLabel->setText("

0.00

"); - this->layout()->addWidget(valueLabel); - layout->addSpacerItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding)); + valueLabel->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Minimum); + valueLabel->setObjectName(QString::fromUtf8("value")); + valueLabel->setText("0.00"); + layout->addWidget(valueLabel); + + layout->addSpacerItem(new QSpacerItem(20, 0, QSizePolicy::Minimum, QSizePolicy::Expanding)); + this->setLayout(layout); } void UASQuickViewItem::setValue(double value) { - valueLabel->setText("

" + QString::number(value,'f',4) + "

"); + valueLabel->setText(QString::number(value,'f',4)); } void UASQuickViewItem::setTitle(QString title) { titleLabel->setText(title); } + +/** + * Implement paintEvent() so that stylesheets work for our custom widget. + */ +void UASQuickViewItem::paintEvent(QPaintEvent *) + { + QStyleOption opt; + opt.init(this); + QPainter p(this); + style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); + } diff --git a/src/ui/uas/UASQuickViewItem.h b/src/ui/uas/UASQuickViewItem.h index d6b1b12e0..3b950874f 100644 --- a/src/ui/uas/UASQuickViewItem.h +++ b/src/ui/uas/UASQuickViewItem.h @@ -13,10 +13,12 @@ public: private: QLabel *titleLabel; QLabel *valueLabel; +protected: + virtual void paintEvent(QPaintEvent *); signals: - + public slots: - + }; #endif // UASQUICKVIEWITEM_H -- 2.22.0