summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/Roster')
-rw-r--r--Swift/QtUI/Roster/DelegateCommons.cpp11
-rw-r--r--Swift/QtUI/Roster/DelegateCommons.h5
-rw-r--r--Swift/QtUI/Roster/RosterDelegate.cpp6
3 files changed, 20 insertions, 2 deletions
diff --git a/Swift/QtUI/Roster/DelegateCommons.cpp b/Swift/QtUI/Roster/DelegateCommons.cpp
index 3cd3695..164b80f 100644
--- a/Swift/QtUI/Roster/DelegateCommons.cpp
+++ b/Swift/QtUI/Roster/DelegateCommons.cpp
@@ -7,7 +7,18 @@
#include "DelegateCommons.h"
namespace Swift {
+
+
+void DelegateCommons::drawElidedText(QPainter* painter, const QRect& region, const QString& text) {
+ QString adjustedText(painter->fontMetrics().elidedText(text, Qt::ElideRight, region.width(), Qt::TextShowMnemonic));
+ painter->drawText(region, Qt::AlignTop, adjustedText);
+}
+
+
const int DelegateCommons::horizontalMargin = 2;
const int DelegateCommons::verticalMargin = 2;
const int DelegateCommons::farLeftMargin = 2;
+
+
+
}
diff --git a/Swift/QtUI/Roster/DelegateCommons.h b/Swift/QtUI/Roster/DelegateCommons.h
index ac5efc4..9213ef5 100644
--- a/Swift/QtUI/Roster/DelegateCommons.h
+++ b/Swift/QtUI/Roster/DelegateCommons.h
@@ -8,6 +8,9 @@
#include <QApplication>
#include <QFont>
+#include <QPainter>
+#include <QRect>
+#include <QString>
namespace Swift {
class DelegateCommons {
@@ -18,6 +21,8 @@ namespace Swift {
detailFont.setPointSize(nameFont.pointSize() - detailFontSizeDrop);
}
+ static void drawElidedText(QPainter* painter, const QRect& region, const QString& text);
+
int detailFontSizeDrop;
QFont nameFont;
QFont detailFont;
diff --git a/Swift/QtUI/Roster/RosterDelegate.cpp b/Swift/QtUI/Roster/RosterDelegate.cpp
index b7ba71b..f5dcbd6 100644
--- a/Swift/QtUI/Roster/RosterDelegate.cpp
+++ b/Swift/QtUI/Roster/RosterDelegate.cpp
@@ -105,20 +105,22 @@ void RosterDelegate::paintContact(QPainter* painter, const QStyleOptionViewItem&
int nameHeight = nameMetrics.height() + common_.verticalMargin;
QRect nameRegion(textRegion.adjusted(0, common_.verticalMargin, 0, 0));
- painter->drawText(nameRegion, Qt::AlignTop, index.data(Qt::DisplayRole).toString());
+ DelegateCommons::drawElidedText(painter, nameRegion, index.data(Qt::DisplayRole).toString());
painter->setFont(common_.detailFont);
painter->setPen(QPen(QColor(160,160,160)));
QRect statusTextRegion(textRegion.adjusted(0, nameHeight, 0, 0));
- painter->drawText(statusTextRegion, Qt::AlignTop, index.data(StatusTextRole).toString());
+ DelegateCommons::drawElidedText(painter, statusTextRegion, index.data(StatusTextRole).toString());
painter->restore();
}
+
const int RosterDelegate::avatarSize_ = 20;
const int RosterDelegate::presenceIconHeight_ = 16;
const int RosterDelegate::presenceIconWidth_ = 16;
}
+