summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-05-24 15:49:03 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-05-24 15:49:03 (GMT)
commit10534d5b942e7ef1e2f8e6900fb5b17411111b06 (patch)
treedad1d97e518614150b38a4f7a1e262228b732bff /Swift/QtUI/QtElidingLabel.cpp
parentc85da0a6e0448b07c51ae07e41a6714429510b83 (diff)
downloadswift-contrib-10534d5b942e7ef1e2f8e6900fb5b17411111b06.zip
swift-contrib-10534d5b942e7ef1e2f8e6900fb5b17411111b06.tar.bz2
Elide text in the roster header when it's wider than the roster.
Resolves: #369
Diffstat (limited to 'Swift/QtUI/QtElidingLabel.cpp')
-rw-r--r--Swift/QtUI/QtElidingLabel.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/Swift/QtUI/QtElidingLabel.cpp b/Swift/QtUI/QtElidingLabel.cpp
new file mode 100644
index 0000000..80da607
--- /dev/null
+++ b/Swift/QtUI/QtElidingLabel.cpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2010 Kevin Smith
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#include "Swift/QtUI/QtElidingLabel.h"
+
+namespace Swift {
+QtElidingLabel::QtElidingLabel(QWidget* parent, Qt::WindowFlags f) : QLabel(parent, f) {
+ setSizes();
+}
+
+QtElidingLabel::QtElidingLabel(const QString& text, QWidget* parent, Qt::WindowFlags f) : QLabel(text, parent, f) {
+ setSizes();
+}
+
+QtElidingLabel::~QtElidingLabel() {
+
+}
+
+void QtElidingLabel::setSizes() {
+ setMinimumSize(1, minimumHeight());
+}
+
+void QtElidingLabel::paintEvent(QPaintEvent* event) {
+ //QPainter painter(this);
+ QString fullText(text());
+ if (fontMetrics().width(fullText) > contentsRect().width()) {
+ //QString elidedText(fontMetrics().elidedText(fullText));
+ setText(fontMetrics().elidedText(fullText, Qt::ElideRight, rect().width(), Qt::TextShowMnemonic));
+ }
+ QLabel::paintEvent(event);
+ setText(fullText);
+}
+
+}