diff options
-rw-r--r-- | src/jalv_qt.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/jalv_qt.cpp b/src/jalv_qt.cpp index 2afb3ea..80141f2 100644 --- a/src/jalv_qt.cpp +++ b/src/jalv_qt.cpp @@ -299,6 +299,7 @@ private: void setRange(float min, float max); QString getValueLabel(float value); float getValue(); + int stringWidth(const QString& str); const LilvPlugin* plugin; struct Port* port; @@ -464,7 +465,7 @@ Control::Control(PortContainer portContainer, QWidget* parent) name = QString("%1").arg(lilv_node_as_string(nname)); // Handle long names - if (fontMetrics().width(name) > CONTROL_WIDTH) { + if (stringWidth(name) > CONTROL_WIDTH) { setTitle(fontMetrics().elidedText(name, Qt::ElideRight, CONTROL_WIDTH)); } else { setTitle(name); @@ -513,7 +514,7 @@ QString Control::getValueLabel(float value) { if (scaleMap[value]) { - if (fontMetrics().width(scaleMap[value]) > CONTROL_WIDTH) { + if (stringWidth(scaleMap[value]) > CONTROL_WIDTH) { label->setToolTip(scaleMap[value]); return fontMetrics().elidedText(QString(scaleMap[value]), Qt::ElideRight, @@ -559,6 +560,16 @@ Control::getValue() } } +int +Control::stringWidth(const QString& str) +{ +#if QT_VERSION >= 0x050B00 + return fontMetrics().horizontalAdvance(str); +#else + return fontMetrics().width(str); +#endif +} + void Control::dialChanged(int dialValue) { |