diff options
author | Daniel Schürmann <daschuer@mixxx.org> | 2015-02-27 21:27:48 +0100 |
---|---|---|
committer | Daniel Schürmann <daschuer@mixxx.org> | 2015-02-27 21:27:48 +0100 |
commit | b5fc0a08abe4bf8ba600aa3787c8ea4a10dd4f86 (patch) | |
tree | a991c1df51357e927279e6d041c39e75e2bed3da | |
parent | 178d0833cfdaf6da145d6861d341f4033bd93819 (diff) |
Added end elipsize to Wlable
-rw-r--r-- | src/widget/wlabel.cpp | 27 | ||||
-rw-r--r-- | src/widget/wlabel.h | 10 | ||||
-rw-r--r-- | src/widget/wnumber.cpp | 6 | ||||
-rw-r--r-- | src/widget/wnumberdb.cpp | 6 | ||||
-rw-r--r-- | src/widget/wnumberpos.cpp | 19 | ||||
-rw-r--r-- | src/widget/wnumberrate.cpp | 4 |
6 files changed, 46 insertions, 26 deletions
diff --git a/src/widget/wlabel.cpp b/src/widget/wlabel.cpp index 9dc755457c..25993c548f 100644 --- a/src/widget/wlabel.cpp +++ b/src/widget/wlabel.cpp @@ -24,7 +24,8 @@ WLabel::WLabel(QWidget* pParent) : QLabel(pParent), WBaseWidget(this), - m_qsText("") { + m_skinText(), + m_longText() { } WLabel::~WLabel() { @@ -43,10 +44,10 @@ void WLabel::setup(QDomNode node, const SkinContext& context) { setPalette(pal); // Text - if (context.hasNode(node, "Text")) - m_qsText = context.selectString(node, "Text"); - setText(m_qsText); - + if (context.hasNode(node, "Text")) { + m_skinText = context.selectString(node, "Text"); + setText(m_skinText); + } // Font size if (context.hasNode(node, "FontSize")) { int fontsize = context.selectString(node, "FontSize").toInt(); @@ -65,6 +66,17 @@ void WLabel::setup(QDomNode node, const SkinContext& context) { } } +QString WLabel::text() const { + return m_longText; +} + +void WLabel::setText(const QString& text) { + m_longText = text; + QFontMetrics metrics(font()); + QString elidedText = metrics.elidedText(m_longText, Qt::ElideRight, width()); + QLabel::setText(elidedText); +} + bool WLabel::event(QEvent* pEvent) { if (pEvent->type() == QEvent::ToolTip) { updateTooltip(); @@ -72,6 +84,11 @@ bool WLabel::event(QEvent* pEvent) { return QLabel::event(pEvent); } +void WLabel::resizeEvent(QResizeEvent* event) { + QLabel::resizeEvent(event); + setText(m_longText); +} + void WLabel::fillDebugTooltip(QStringList* debug) { WBaseWidget::fillDebugTooltip(debug); *debug << QString("Text: \"%1\"").arg(text()); diff --git a/src/widget/wlabel.h b/src/widget/wlabel.h index d3647af9ca..8cfdf38b18 100644 --- a/src/widget/wlabel.h +++ b/src/widget/wlabel.h @@ -32,13 +32,19 @@ class WLabel : public QLabel, public WBaseWidget { virtual void setup(QDomNode node, const SkinContext& context); + QString text() const; + void setText(const QString& text); + protected: - bool event(QEvent* pEvent); + virtual bool event(QEvent* pEvent); + virtual void resizeEvent(QResizeEvent* event); void fillDebugTooltip(QStringList* debug); - QString m_qsText; + QString m_skinText; // Foreground and background colors. QColor m_qFgColor; QColor m_qBgColor; + private: + QString m_longText; }; #endif diff --git a/src/widget/wnumber.cpp b/src/widget/wnumber.cpp index d64f50d0ff..55d8d3b1fa 100644 --- a/src/widget/wnumber.cpp +++ b/src/widget/wnumber.cpp @@ -42,9 +42,9 @@ void WNumber::onConnectedControlChanged(double dParameter, double dValue) { } void WNumber::setValue(double dValue) { - if (m_qsText.contains("%1")) { - setText(m_qsText.arg(QString::number(dValue, 'f', m_iNoDigits))); + if (m_skinText.contains("%1")) { + setText(m_skinText.arg(QString::number(dValue, 'f', m_iNoDigits))); } else { - setText(m_qsText + QString::number(dValue, 'f', m_iNoDigits)); + setText(m_skinText + QString::number(dValue, 'f', m_iNoDigits)); } } diff --git a/src/widget/wnumberdb.cpp b/src/widget/wnumberdb.cpp index 9cba5dc70f..0620b32d4d 100644 --- a/src/widget/wnumberdb.cpp +++ b/src/widget/wnumberdb.cpp @@ -23,9 +23,9 @@ void WNumberDb::setValue(double dValue) { strDb = "-" + QString(QChar(0x221E)); } - if (m_qsText.contains("%1")) { - setText(m_qsText.arg(strDb)); + if (m_skinText.contains("%1")) { + setText(m_skinText.arg(strDb)); } else { - setText(m_qsText + strDb + " dB"); + setText(m_skinText + strDb + " dB"); } } diff --git a/src/widget/wnumberpos.cpp b/src/widget/wnumberpos.cpp index 748ef5006f..c09848f20b 100644 --- a/src/widget/wnumberpos.cpp +++ b/src/widget/wnumberpos.cpp @@ -14,8 +14,6 @@ WNumberPos::WNumberPos(const char* group, QWidget* parent) m_dTrackSamples(0.0), m_dTrackSampleRate(0.0), m_bRemain(false) { - m_qsText = ""; - m_pShowTrackTimeRemaining = new ControlObjectThread( "[Controls]", "ShowDurationRemaining"); m_pShowTrackTimeRemaining->connectValueChanged( @@ -98,10 +96,10 @@ void WNumberPos::slotSetValue(double dValue) { QString valueString; if (valueMillis >= 0) { - valueString = m_qsText % Time::formatSeconds( + valueString = m_skinText % Time::formatSeconds( valueMillis / Time::kMillisPerSecond, true); } else { - valueString = m_qsText % QLatin1String("-") % Time::formatSeconds( + valueString = m_skinText % QLatin1String("-") % Time::formatSeconds( -valueMillis / Time::kMillisPerSecond, true); } setText(valueString); @@ -111,16 +109,15 @@ void WNumberPos::slotSetRemain(double remain) { setRemain(remain > 0.0); } -void WNumberPos::setRemain(bool bRemain) -{ +void WNumberPos::setRemain(bool bRemain) { m_bRemain = bRemain; // Shift display state between showing position and remaining - if (m_bRemain) - m_qsText = "-"; - else - m_qsText = ""; - + if (m_bRemain) { + m_skinText = "-"; + } else { + m_skinText = ""; + } // Have the widget redraw itself with its current value. slotSetValue(m_dOldValue); } diff --git a/src/widget/wnumberrate.cpp b/src/widget/wnumberrate.cpp index 0ce0736fdf..53a62d38c3 100644 --- a/src/widget/wnumberrate.cpp +++ b/src/widget/wnumberrate.cpp @@ -47,6 +47,6 @@ void WNumberRate::setValue(double) { sign = '-'; } - setText(QString(m_qsText).append(sign) - .append("%1").arg(fabs(vsign)*100., 0, 'f', m_iNoDigits)); + setText(QString(m_skinText).append(sign) + .append("%1").arg(fabs(vsign) * 100.0, 0, 'f', m_iNoDigits)); } |