summaryrefslogtreecommitdiffstats
path: root/src/datavis3d
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-04-12 13:08:06 +0300
committerMika Salmela <mika.salmela@digia.com>2013-04-12 17:53:40 +0300
commitde431be4a3da6de758a08e1bc63f5b152a66395d (patch)
tree25bc3bfe8e6594ce3e345699cf9aa01ef195f31d /src/datavis3d
parentbc6b83691901e4fa897e61182acf9b2ddaddc804 (diff)
Added support for setting font
Change-Id: Id56bd700820ea5b2b7982d0bb4b20dcad838bf78 Change-Id: Id56bd700820ea5b2b7982d0bb4b20dcad838bf78 Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavis3d')
-rw-r--r--src/datavis3d/engine/q3dbars.cpp10
-rw-r--r--src/datavis3d/engine/q3dbars.h3
-rw-r--r--src/datavis3d/engine/q3dbars_p.h2
-rw-r--r--src/datavis3d/utils/utils.cpp7
-rw-r--r--src/datavis3d/utils/utils_p.h3
5 files changed, 20 insertions, 5 deletions
diff --git a/src/datavis3d/engine/q3dbars.cpp b/src/datavis3d/engine/q3dbars.cpp
index 2ee69338..2fdd5d9c 100644
--- a/src/datavis3d/engine/q3dbars.cpp
+++ b/src/datavis3d/engine/q3dbars.cpp
@@ -461,7 +461,8 @@ void Q3DBars::drawZoomScene()
QDataItem *item = d_ptr->m_zoomSelection->d_ptr->getItem(col);
// Create labels
// Print label into a QImage using QPainter
- QImage label = Utils::printTextToImage(item->d_ptr->valueStr()
+ QImage label = Utils::printTextToImage(d_ptr->m_font
+ , item->d_ptr->valueStr()
, d_ptr->m_theme->m_textBackgroundColor
, d_ptr->m_theme->m_textColor
, d_ptr->m_labelTransparency);
@@ -1300,6 +1301,12 @@ void Q3DBars::setFontSize(float fontsize)
d_ptr->m_fontSize = fontsize;
}
+void Q3DBars::setFont(const QFont &font)
+{
+ d_ptr->m_font = font;
+ d_ptr->m_fontSize = font.pointSizeF();
+}
+
void Q3DBars::setLabelTransparency(LabelTransparency transparency)
{
d_ptr->m_labelTransparency = transparency;
@@ -1450,6 +1457,7 @@ Q3DBarsPrivate::Q3DBarsPrivate(Q3DBars *q)
, m_textureHelper(new TextureHelper())
, m_labelTransparency(Q3DBars::TransparencyNone)
, m_fontSize(10.0f)
+ , m_font(QFont(QStringLiteral("Arial")))
{
}
diff --git a/src/datavis3d/engine/q3dbars.h b/src/datavis3d/engine/q3dbars.h
index f2a978a4..df02e0e8 100644
--- a/src/datavis3d/engine/q3dbars.h
+++ b/src/datavis3d/engine/q3dbars.h
@@ -192,6 +192,9 @@ public:
// Font size adjustment (should it be in enum (smallest, smaller, small, normal, large, larger, largest), or just float?
void setFontSize(float fontsize);
+ // Set font
+ void setFont(const QFont &font);
+
// Label transparency adjustment
void setLabelTransparency(LabelTransparency transparency);
diff --git a/src/datavis3d/engine/q3dbars_p.h b/src/datavis3d/engine/q3dbars_p.h
index 1a611915..081bd97b 100644
--- a/src/datavis3d/engine/q3dbars_p.h
+++ b/src/datavis3d/engine/q3dbars_p.h
@@ -44,6 +44,7 @@
#include "qdatavis3dglobal.h"
#include <QOpenGLFunctions>
+#include <QFont>
class QOpenGLPaintDevice;
class QPoint;
@@ -139,6 +140,7 @@ public:
TextureHelper *m_textureHelper;
Q3DBars::LabelTransparency m_labelTransparency;
float m_fontSize;
+ QFont m_font;
};
QTCOMMERCIALDATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/utils/utils.cpp b/src/datavis3d/utils/utils.cpp
index 770e24f6..cf59699c 100644
--- a/src/datavis3d/utils/utils.cpp
+++ b/src/datavis3d/utils/utils.cpp
@@ -141,12 +141,13 @@ void Utils::printText(QPainter *painter, const QString &text, const QPoint &posi
painter->restore();
}
-QImage Utils::printTextToImage(const QString &text, const QColor &bgrColor, const QColor &txtColor
+QImage Utils::printTextToImage(const QFont &font, const QString &text, const QColor &bgrColor
+ , const QColor &txtColor
, Q3DBars::LabelTransparency transparency)
{
// Calculate text dimensions
- QFont valueFont = QFont(QStringLiteral("Arial"), 30);
- valueFont.setBold(true);
+ QFont valueFont = font;
+ valueFont.setPointSize(30);
QFontMetrics valueFM(valueFont);
int valueStrWidth = valueFM.width(text);
int valueStrHeight = valueFM.height();
diff --git a/src/datavis3d/utils/utils_p.h b/src/datavis3d/utils/utils_p.h
index 45de673e..506944ab 100644
--- a/src/datavis3d/utils/utils_p.h
+++ b/src/datavis3d/utils/utils_p.h
@@ -60,7 +60,8 @@ public:
static QVector3D vectorFromColor(const QColor &color);
static void printText(QPainter *painter, const QString &text, const QPoint &position
, bool absoluteCoords = true, qreal rotation = 0, qreal scale = 1.0f);
- static QImage printTextToImage(const QString &text
+ static QImage printTextToImage(const QFont &font
+ , const QString &text
, const QColor &bgrColor
, const QColor &txtColor
, Q3DBars::LabelTransparency transparency);