From 051d56a9609ac1ba28f4a268f0f4edffabd29592 Mon Sep 17 00:00:00 2001 From: Michael Carpenter <malcom2073@gmail.com> Date: Tue, 28 May 2013 13:59:33 -0400 Subject: [PATCH] Abstraction of UASQuickViewItem, and addition of new Text item to use the abstraction --- qgroundcontrol.pro | 6 +++-- src/ui/uas/UASQuickView.cc | 5 ++-- src/ui/uas/UASQuickViewItem.cc | 19 --------------- src/ui/uas/UASQuickViewItem.h | 11 ++------- src/ui/uas/UASQuickViewItemSelect.cc | 46 +++++++++++++++++++++++++++++++++++ src/ui/uas/UASQuickViewItemSelect.cpp | 46 ----------------------------------- src/ui/uas/UASQuickViewTextItem.cc | 24 ++++++++++++++++++ src/ui/uas/UASQuickViewTextItem.h | 17 +++++++++++++ 8 files changed, 96 insertions(+), 78 deletions(-) create mode 100644 src/ui/uas/UASQuickViewItemSelect.cc delete mode 100644 src/ui/uas/UASQuickViewItemSelect.cpp create mode 100644 src/ui/uas/UASQuickViewTextItem.cc create mode 100644 src/ui/uas/UASQuickViewTextItem.h diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro index d45b69c..583264d 100644 --- a/qgroundcontrol.pro +++ b/qgroundcontrol.pro @@ -378,7 +378,8 @@ HEADERS += src/MG.h \ src/ui/dockwidgettitlebareventfilter.h \ src/ui/uas/UASQuickView.h \ src/ui/uas/UASQuickViewItem.h \ - src/ui/uas/UASQuickViewItemSelect.h + src/ui/uas/UASQuickViewItemSelect.h \ + src/ui/uas/UASQuickViewTextItem.h # Google Earth is only supported on Mac OS and Windows with Visual Studio Compiler macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010|win32-msvc2012::HEADERS += src/ui/map3D/QGCGoogleEarthView.h @@ -547,7 +548,8 @@ SOURCES += src/main.cc \ src/ui/dockwidgettitlebareventfilter.cpp \ src/ui/uas/UASQuickViewItem.cc \ src/ui/uas/UASQuickView.cc \ - src/ui/uas/UASQuickViewItemSelect.cpp + src/ui/uas/UASQuickViewTextItem.cc \ + src/ui/uas/UASQuickViewItemSelect.cc # Enable Google Earth only on Mac OS and Windows with Visual Studio compiler macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010|win32-msvc2012::SOURCES += src/ui/map3D/QGCGoogleEarthView.cc diff --git a/src/ui/uas/UASQuickView.cc b/src/ui/uas/UASQuickView.cc index 63bd952..aea0a83 100644 --- a/src/ui/uas/UASQuickView.cc +++ b/src/ui/uas/UASQuickView.cc @@ -2,6 +2,7 @@ #include <QMetaMethod> #include <QDebug> #include "UASQuickViewItemSelect.h" +#include "UASQuickViewTextItem.h" #include <QSettings> UASQuickView::UASQuickView(QWidget *parent) : QWidget(parent) { @@ -146,7 +147,7 @@ void UASQuickView::loadSettings() void UASQuickView::valueEnabled(QString value) { - UASQuickViewItem *item = new UASQuickViewItem(this); + UASQuickViewItem *item = new UASQuickViewTextItem(this); item->setTitle(value); ui.verticalLayout->addWidget(item); uasPropertyToLabelMap[value] = item; @@ -359,7 +360,7 @@ void UASQuickView::actionTriggered(bool checked) } if (checked) { - UASQuickViewItem *item = new UASQuickViewItem(this); + UASQuickViewItem *item = new UASQuickViewTextItem(this); item->setTitle(senderlabel->text()); ui.verticalLayout->addWidget(item); uasPropertyToLabelMap[senderlabel->text()] = item; diff --git a/src/ui/uas/UASQuickViewItem.cc b/src/ui/uas/UASQuickViewItem.cc index 6c075c6..421a14e 100644 --- a/src/ui/uas/UASQuickViewItem.cc +++ b/src/ui/uas/UASQuickViewItem.cc @@ -3,24 +3,5 @@ UASQuickViewItem::UASQuickViewItem(QWidget *parent) : QWidget(parent) { - QVBoxLayout *layout = new QVBoxLayout(); - this->setLayout(layout); - titleLabel = new QLabel(this); - titleLabel->setAlignment(Qt::AlignHCenter); - this->layout()->addWidget(titleLabel); - valueLabel = new QLabel(this); - valueLabel->setAlignment(Qt::AlignHCenter); - valueLabel->setText("<h1>0.00</h1>"); - this->layout()->addWidget(valueLabel); - layout->addSpacerItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding)); -} -void UASQuickViewItem::setValue(double value) -{ - valueLabel->setText("<h1>" + QString::number(value,'f',4) + "</h1>"); -} - -void UASQuickViewItem::setTitle(QString title) -{ - titleLabel->setText(title); } diff --git a/src/ui/uas/UASQuickViewItem.h b/src/ui/uas/UASQuickViewItem.h index d6b1b12..a406c4a 100644 --- a/src/ui/uas/UASQuickViewItem.h +++ b/src/ui/uas/UASQuickViewItem.h @@ -8,15 +8,8 @@ class UASQuickViewItem : public QWidget Q_OBJECT public: explicit UASQuickViewItem(QWidget *parent = 0); - void setValue(double value); - void setTitle(QString title); -private: - QLabel *titleLabel; - QLabel *valueLabel; -signals: - -public slots: - + virtual void setValue(double value)=0; + virtual void setTitle(QString title)=0; }; #endif // UASQUICKVIEWITEM_H diff --git a/src/ui/uas/UASQuickViewItemSelect.cc b/src/ui/uas/UASQuickViewItemSelect.cc new file mode 100644 index 0000000..537d1aa --- /dev/null +++ b/src/ui/uas/UASQuickViewItemSelect.cc @@ -0,0 +1,46 @@ +#include "UASQuickViewItemSelect.h" +#include <QLabel> +#include <QCheckBox> +UASQuickViewItemSelect::UASQuickViewItemSelect(QWidget *parent) : QWidget(parent) +{ + ui.setupUi(this); + currcol = 0; + currrow = 0; +} +void UASQuickViewItemSelect::addItem(QString item,bool enabled) +{ + QCheckBox *label = new QCheckBox(this); + if (enabled) + { + label->setChecked(true); + } + connect(label,SIGNAL(clicked(bool)),this,SLOT(checkBoxClicked(bool))); + label->setText(item); + label->show(); + ui.gridLayout->addWidget(label,currrow,currcol++); + if (currcol > 10) + { + currcol = 0; + currrow++; + } +} +void UASQuickViewItemSelect::checkBoxClicked(bool checked) +{ + QCheckBox *check = qobject_cast<QCheckBox*>(sender()); + if (!check) + { + return; + } + if (checked) + { + emit valueEnabled(check->text()); + } + else + { + emit valueDisabled(check->text()); + } +} + +UASQuickViewItemSelect::~UASQuickViewItemSelect() +{ +} diff --git a/src/ui/uas/UASQuickViewItemSelect.cpp b/src/ui/uas/UASQuickViewItemSelect.cpp deleted file mode 100644 index 537d1aa..0000000 --- a/src/ui/uas/UASQuickViewItemSelect.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "UASQuickViewItemSelect.h" -#include <QLabel> -#include <QCheckBox> -UASQuickViewItemSelect::UASQuickViewItemSelect(QWidget *parent) : QWidget(parent) -{ - ui.setupUi(this); - currcol = 0; - currrow = 0; -} -void UASQuickViewItemSelect::addItem(QString item,bool enabled) -{ - QCheckBox *label = new QCheckBox(this); - if (enabled) - { - label->setChecked(true); - } - connect(label,SIGNAL(clicked(bool)),this,SLOT(checkBoxClicked(bool))); - label->setText(item); - label->show(); - ui.gridLayout->addWidget(label,currrow,currcol++); - if (currcol > 10) - { - currcol = 0; - currrow++; - } -} -void UASQuickViewItemSelect::checkBoxClicked(bool checked) -{ - QCheckBox *check = qobject_cast<QCheckBox*>(sender()); - if (!check) - { - return; - } - if (checked) - { - emit valueEnabled(check->text()); - } - else - { - emit valueDisabled(check->text()); - } -} - -UASQuickViewItemSelect::~UASQuickViewItemSelect() -{ -} diff --git a/src/ui/uas/UASQuickViewTextItem.cc b/src/ui/uas/UASQuickViewTextItem.cc new file mode 100644 index 0000000..a3ec42a --- /dev/null +++ b/src/ui/uas/UASQuickViewTextItem.cc @@ -0,0 +1,24 @@ +#include "UASQuickViewTextItem.h" +#include <QVBoxLayout> +UASQuickViewTextItem::UASQuickViewTextItem(QWidget *parent) : UASQuickViewItem(parent) +{ + QVBoxLayout *layout = new QVBoxLayout(); + this->setLayout(layout); + titleLabel = new QLabel(this); + titleLabel->setAlignment(Qt::AlignHCenter); + this->layout()->addWidget(titleLabel); + valueLabel = new QLabel(this); + valueLabel->setAlignment(Qt::AlignHCenter); + valueLabel->setText("<h1>0.00</h1>"); + this->layout()->addWidget(valueLabel); + layout->addSpacerItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding)); +} +void UASQuickViewTextItem::setValue(double value) +{ + valueLabel->setText("<h1>" + QString::number(value,'f',4) + "</h1>"); +} + +void UASQuickViewTextItem::setTitle(QString title) +{ + titleLabel->setText(title); +} diff --git a/src/ui/uas/UASQuickViewTextItem.h b/src/ui/uas/UASQuickViewTextItem.h new file mode 100644 index 0000000..6204205 --- /dev/null +++ b/src/ui/uas/UASQuickViewTextItem.h @@ -0,0 +1,17 @@ +#ifndef UASQUICKVIEWTEXTITEM_H +#define UASQUICKVIEWTEXTITEM_H + +#include "UASQuickViewItem.h" +#include <QLabel> +class UASQuickViewTextItem : public UASQuickViewItem +{ +public: + UASQuickViewTextItem(QWidget *parent=0); + void setValue(double value); + void setTitle(QString title); +private: + QLabel *titleLabel; + QLabel *valueLabel; +}; + +#endif // UASQUICKVIEWTEXTITEM_H