diff options
| author | Kevin Smith <git@kismith.co.uk> | 2010-06-26 19:21:31 (GMT) | 
|---|---|---|
| committer | Kevin Smith <git@kismith.co.uk> | 2010-06-26 19:21:31 (GMT) | 
| commit | de7ee8e38a2dfaab9fde40a7916c8212f5859d68 (patch) | |
| tree | c2b8b07ea10b81fb52fef9cbb79f57a52589e657 | |
| parent | 53f132042a6d470f94a9721a31c86514aba11c4f (diff) | |
| download | swift-de7ee8e38a2dfaab9fde40a7916c8212f5859d68.zip swift-de7ee8e38a2dfaab9fde40a7916c8212f5859d68.tar.bz2 | |
Elide text in the various roster views.
Resolves: #426
| -rw-r--r-- | Swift/QtUI/ChatList/ChatListDelegate.cpp | 4 | ||||
| -rw-r--r-- | Swift/QtUI/EventViewer/TwoLineDelegate.cpp | 4 | ||||
| -rw-r--r-- | Swift/QtUI/Roster/DelegateCommons.cpp | 11 | ||||
| -rw-r--r-- | Swift/QtUI/Roster/DelegateCommons.h | 5 | ||||
| -rw-r--r-- | Swift/QtUI/Roster/RosterDelegate.cpp | 6 | 
5 files changed, 24 insertions, 6 deletions
| diff --git a/Swift/QtUI/ChatList/ChatListDelegate.cpp b/Swift/QtUI/ChatList/ChatListDelegate.cpp index ac05b07..274a10a 100644 --- a/Swift/QtUI/ChatList/ChatListDelegate.cpp +++ b/Swift/QtUI/ChatList/ChatListDelegate.cpp @@ -72,13 +72,13 @@ void ChatListDelegate::paintMUC(QPainter* painter, const QStyleOptionViewItem& o  	int nameHeight = nameMetrics.height() + common_.verticalMargin;  	QRect nameRegion(textRegion.adjusted(0, common_.verticalMargin, 0, 0)); -	painter->drawText(nameRegion, Qt::AlignTop, item->data(Qt::DisplayRole).toString()); +	DelegateCommons::drawElidedText(painter, nameRegion, item->data(Qt::DisplayRole).toString());  	painter->setFont(common_.detailFont);  	painter->setPen(QPen(QColor(160,160,160)));  	QRect detailRegion(textRegion.adjusted(0, nameHeight, 0, 0)); -	painter->drawText(detailRegion, Qt::AlignTop, item->data(DetailTextRole).toString()); +	DelegateCommons::drawElidedText(painter, detailRegion, item->data(DetailTextRole).toString());  	painter->restore();  } diff --git a/Swift/QtUI/EventViewer/TwoLineDelegate.cpp b/Swift/QtUI/EventViewer/TwoLineDelegate.cpp index 2437a44..08491b9 100644 --- a/Swift/QtUI/EventViewer/TwoLineDelegate.cpp +++ b/Swift/QtUI/EventViewer/TwoLineDelegate.cpp @@ -48,13 +48,13 @@ void TwoLineDelegate::paint(QPainter* painter, const QStyleOptionViewItem& optio  	int nameHeight = nameMetrics.height() + common_.verticalMargin;  	QRect nameRegion(textRegion.adjusted(0, common_.verticalMargin, 0, 0)); -	painter->drawText(nameRegion, Qt::AlignTop, event->data(firstRole_).toString()); +	DelegateCommons::drawElidedText(painter, nameRegion, event->data(firstRole_).toString());  	painter->setFont(common_.detailFont);  	painter->setPen(QPen(QColor(160,160,160)));  	QRect detailRegion(textRegion.adjusted(0, nameHeight, 0, 0)); -	painter->drawText(detailRegion, Qt::AlignTop, event->data(secondRole_).toString()); +	DelegateCommons::drawElidedText(painter, detailRegion, event->data(secondRole_).toString());  	painter->restore();  } 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;  } + | 
 Swift
 Swift