┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2013-11-05 08:47:37 +0100
committerFrank Reininghaus <[email protected]>2013-11-05 08:47:37 +0100
commita5e266e538cb32c3689cf02f23246812acbf2d8c (patch)
tree679d04bf06bc24ee9ba2dcda2c9d2866dad9fafb /src/views
parent971aa6766576b3ca54e2b8539a396fe54f676155 (diff)
parentc2bf208fe6c7c7081fe1cdb8213fb5b4eb3b6050 (diff)
Merge remote-tracking branch 'origin/KDE/4.11' into KDE/4.12
Diffstat (limited to 'src/views')
-rw-r--r--src/views/tooltips/filemetadatatooltip.cpp37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/views/tooltips/filemetadatatooltip.cpp b/src/views/tooltips/filemetadatatooltip.cpp
index c22f6be5d..67911eea2 100644
--- a/src/views/tooltips/filemetadatatooltip.cpp
+++ b/src/views/tooltips/filemetadatatooltip.cpp
@@ -24,11 +24,15 @@
#include <KColorScheme>
#include <KSeparator>
#include <KWindowSystem>
+#include <KStringHandler>
#include <QLabel>
#include <QStyleOptionFrame>
#include <QStylePainter>
#include <QVBoxLayout>
+#include <QTextDocument>
+#include <QTextLayout>
+#include <QTextLine>
#ifndef HAVE_NEPOMUK
#include <KFileMetaDataWidget>
@@ -56,10 +60,15 @@ FileMetaDataToolTip::FileMetaDataToolTip(QWidget* parent) :
m_name = new QLabel(this);
m_name->setForegroundRole(QPalette::ToolTipText);
m_name->setTextFormat(Qt::PlainText);
+ m_name->setAlignment(Qt::AlignHCenter);
+
QFont font = m_name->font();
font.setBold(true);
m_name->setFont(font);
+ QFontMetrics fontMetrics(font);
+ m_name->setMaximumWidth(fontMetrics.averageCharWidth() * 40);
+
// Create widget for the meta data
#ifndef HAVE_NEPOMUK
m_fileMetaDataWidget = new KFileMetaDataWidget(this);
@@ -108,7 +117,33 @@ QPixmap FileMetaDataToolTip::preview() const
void FileMetaDataToolTip::setName(const QString& name)
{
- m_name->setText(name);
+ QTextOption textOption;
+ textOption.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+
+ const QString processedName = Qt::mightBeRichText(name) ? name : KStringHandler::preProcessWrap(name);
+
+ QTextLayout textLayout(processedName);
+ textLayout.setFont(m_name->font());
+ textLayout.setTextOption(textOption);
+
+ QString wrappedText;
+ wrappedText.reserve(processedName.length());
+
+ // wrap the text to fit into the maximum width of m_name
+ textLayout.beginLayout();
+ QTextLine line = textLayout.createLine();
+ while (line.isValid()) {
+ line.setLineWidth(m_name->maximumWidth());
+ wrappedText += processedName.mid(line.textStart(), line.textLength());
+
+ line = textLayout.createLine();
+ if (line.isValid()) {
+ wrappedText += QChar::LineSeparator;
+ }
+ }
+ textLayout.endLayout();
+
+ m_name->setText(wrappedText);
}
QString FileMetaDataToolTip::name() const