diff --git a/src/ui/uas/UASQuickView.cc b/src/ui/uas/UASQuickView.cc index 40039dd30555a17e873faf2b746ed930fe6e5e84..6d74b31a08fdd098bccffd0485b8f00ef0f20092 100644 --- a/src/ui/uas/UASQuickView.cc +++ b/src/ui/uas/UASQuickView.cc @@ -12,6 +12,7 @@ UASQuickView::UASQuickView(QWidget *parent) : QWidget(parent) m_currentColumn=0; ui.setupUi(this); + ui.horizontalLayout->setMargin(0); m_verticalLayoutList.append(new QVBoxLayout()); ui.horizontalLayout->addItem(m_verticalLayoutList[0]); @@ -35,7 +36,7 @@ UASQuickView::UASQuickView(QWidget *parent) : QWidget(parent) valueEnabled("roll"); } - QAction *action = new QAction("Add Item",this); + QAction *action = new QAction("Add/Remove Items",this); action->setCheckable(false); connect(action,SIGNAL(triggered()),this,SLOT(actionTriggered())); this->addAction(action); @@ -170,6 +171,7 @@ void UASQuickView::sortItems(int columncount) QVBoxLayout *layout = new QVBoxLayout(); ui.horizontalLayout->addItem(layout); m_verticalLayoutList.append(layout); + layout->setMargin(0); } //Cycle through all items and add them to the layout @@ -184,6 +186,28 @@ void UASQuickView::sortItems(int columncount) } } m_currentColumn = currcol; + QApplication::processEvents(); + recalculateItemTextSizing(); +} +void UASQuickView::resizeEvent(QResizeEvent *evt) +{ + recalculateItemTextSizing(); +} +void UASQuickView::recalculateItemTextSizing() +{ + int minpixelsize = 65535; + for (QMap::const_iterator i = uasPropertyToLabelMap.constBegin();i!=uasPropertyToLabelMap.constEnd();i++) + { + int tempmin = i.value()->minValuePixelSize(); + if (tempmin < minpixelsize) + { + minpixelsize = tempmin; + } + } + for (QMap::const_iterator i = uasPropertyToLabelMap.constBegin();i!=uasPropertyToLabelMap.constEnd();i++) + { + i.value()->setValuePixelSize(minpixelsize); + } } void UASQuickView::valueDisabled(QString value) diff --git a/src/ui/uas/UASQuickView.h b/src/ui/uas/UASQuickView.h index 977b5c21d036bb769d68008e76945396c9c731b4..33075bda81d83ad1db463d2f9edeb80764233258 100644 --- a/src/ui/uas/UASQuickView.h +++ b/src/ui/uas/UASQuickView.h @@ -41,6 +41,8 @@ private: /** Loads gauge layout from settings file */ void loadSettings(); + void recalculateItemTextSizing(); + /** Column Count */ int m_columnCount; @@ -53,6 +55,7 @@ private: //FlowLayout *layout; protected: Ui::Form ui; + void resizeEvent(QResizeEvent *evt); signals: public slots: diff --git a/src/ui/uas/UASQuickViewItem.h b/src/ui/uas/UASQuickViewItem.h index a406c4a2aba344b548c678b7d82af19377384e11..1cd2d2017e37db8827bd5f8cd64fa507ed2267c6 100644 --- a/src/ui/uas/UASQuickViewItem.h +++ b/src/ui/uas/UASQuickViewItem.h @@ -10,6 +10,8 @@ public: explicit UASQuickViewItem(QWidget *parent = 0); virtual void setValue(double value)=0; virtual void setTitle(QString title)=0; + virtual int minValuePixelSize()=0; + virtual void setValuePixelSize(int size)=0; }; #endif // UASQUICKVIEWITEM_H diff --git a/src/ui/uas/UASQuickViewTextItem.cc b/src/ui/uas/UASQuickViewTextItem.cc index 3fbdd932d2e3bd89bc160a1e8496fc4c388845cd..a35a8d1e0a4ffde46e57a8c55680790418d6cda7 100644 --- a/src/ui/uas/UASQuickViewTextItem.cc +++ b/src/ui/uas/UASQuickViewTextItem.cc @@ -27,7 +27,26 @@ UASQuickViewTextItem::UASQuickViewTextItem(QWidget *parent) : UASQuickViewItem(p } void UASQuickViewTextItem::setValue(double value) { - valueLabel->setText(QString::number(value,'f',4)); + if (value < 10 && value > -10) + { + valueLabel->setText(QString::number(value,'f',4)); + } + else if (value < 100 && value > -100) + { + valueLabel->setText(QString::number(value,'f',3)); + } + else if (value < 1000 && value > -1000) + { + valueLabel->setText(QString::number(value,'f',2)); + } + else if (value < 10000 && value > -10000) + { + valueLabel->setText(QString::number(value,'f',1)); + } + else if (value >= 100000 || value <= -100000) + { + valueLabel->setText(QString::number(value,'f',0)); + } } void UASQuickViewTextItem::setTitle(QString title) @@ -41,8 +60,58 @@ void UASQuickViewTextItem::setTitle(QString title) titleLabel->setText(title); } } +int UASQuickViewTextItem::minValuePixelSize() +{ + QFont valuefont = valueLabel->font(); + QFont titlefont = titleLabel->font(); + valuefont.setPixelSize(this->height()); + titlefont.setPixelSize(valuefont.pixelSize() / 2.0); + //spacerItem->setGeometry(QRect(0,0,20,this->height()/10.0)); + + QFontMetrics metrics(valuefont); + //valuefont.setPixelSize(this->height() / 2.0); + bool fit = false; + while (!fit) + { + + QFontMetrics valfm( valuefont ); + QRect valbound = valfm.boundingRect(0,0, valueLabel->width(), valueLabel->height(), Qt::TextWordWrap | Qt::AlignLeft, "12345678.00"/*valueLabel->text()*/); + //QFontMetrics titlefm( titlefont ); + //QRect titlebound = titlefm.boundingRect(0,0, titleLabel->width(), titleLabel->height(), Qt::TextWordWrap | Qt::AlignLeft, titleLabel->text()); + + if ((valbound.width() <= valueLabel->width() && valbound.height() <= valueLabel->height()))// && (titlebound.width() <= titleLabel->width() && titlebound.height() <= titleLabel->height())) + fit = true; + else + { + if (valuefont.pixelSize()-5 <= 0) + { + fit = true; + valuefont.setPixelSize(5); + } + else + { + valuefont.setPixelSize(valuefont.pixelSize() - 5); + } + //titlefont.setPixelSize(valuefont.pixelSize() / 2.0); + //qDebug() << "Point size:" << valuefont.pixelSize() << valueLabel->width() << valueLabel->height(); + } + } + return valuefont.pixelSize(); +} +void UASQuickViewTextItem::setValuePixelSize(int size) +{ + QFont valuefont = valueLabel->font(); + QFont titlefont = titleLabel->font(); + valuefont.setPixelSize(size); + titlefont.setPixelSize(valuefont.pixelSize() / 2.0); + valueLabel->setFont(valuefont); + titleLabel->setFont(titlefont); + update(); +} + void UASQuickViewTextItem::resizeEvent(QResizeEvent *event) { + return; QFont valuefont = valueLabel->font(); QFont titlefont = titleLabel->font(); valuefont.setPixelSize(this->height()); diff --git a/src/ui/uas/UASQuickViewTextItem.h b/src/ui/uas/UASQuickViewTextItem.h index dea8cc3b16fb0f2773376038e95c0d6baf615d55..698c358f9120eecf2ba40eb37ae8cfa9740e5ec8 100644 --- a/src/ui/uas/UASQuickViewTextItem.h +++ b/src/ui/uas/UASQuickViewTextItem.h @@ -10,6 +10,8 @@ public: UASQuickViewTextItem(QWidget *parent=0); void setValue(double value); void setTitle(QString title); + int minValuePixelSize(); + void setValuePixelSize(int size); protected: void resizeEvent(QResizeEvent *event); private: