summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2015-02-27 21:27:48 +0100
committerDaniel Schürmann <daschuer@mixxx.org>2015-02-27 21:27:48 +0100
commitb5fc0a08abe4bf8ba600aa3787c8ea4a10dd4f86 (patch)
treea991c1df51357e927279e6d041c39e75e2bed3da
parent178d0833cfdaf6da145d6861d341f4033bd93819 (diff)
Added end elipsize to Wlable
-rw-r--r--src/widget/wlabel.cpp27
-rw-r--r--src/widget/wlabel.h10
-rw-r--r--src/widget/wnumber.cpp6
-rw-r--r--src/widget/wnumberdb.cpp6
-rw-r--r--src/widget/wnumberpos.cpp19
-rw-r--r--src/widget/wnumberrate.cpp4
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));
}