diff options
| author | Frank Reininghaus <[email protected]> | 2013-11-05 08:47:37 +0100 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2013-11-05 08:47:37 +0100 |
| commit | a5e266e538cb32c3689cf02f23246812acbf2d8c (patch) | |
| tree | 679d04bf06bc24ee9ba2dcda2c9d2866dad9fafb /src/views | |
| parent | 971aa6766576b3ca54e2b8539a396fe54f676155 (diff) | |
| parent | c2bf208fe6c7c7081fe1cdb8213fb5b4eb3b6050 (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.cpp | 37 |
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 |
