Commit d88d49f6 authored by Michael Carpenter's avatar Michael Carpenter

Change so UASQuickView font sizes are now identical, and change properly based...

Change so UASQuickView font sizes are now identical, and change properly based on window size and column count
parent 011fc618
......@@ -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<QString,UASQuickViewItem*>::const_iterator i = uasPropertyToLabelMap.constBegin();i!=uasPropertyToLabelMap.constEnd();i++)
{
int tempmin = i.value()->minValuePixelSize();
if (tempmin < minpixelsize)
{
minpixelsize = tempmin;
}
}
for (QMap<QString,UASQuickViewItem*>::const_iterator i = uasPropertyToLabelMap.constBegin();i!=uasPropertyToLabelMap.constEnd();i++)
{
i.value()->setValuePixelSize(minpixelsize);
}
}
void UASQuickView::valueDisabled(QString value)
......
......@@ -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:
......
......@@ -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
......@@ -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());
......
......@@ -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:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment