mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Merge remote-tracking branch 'origin/KDE/4.11' into KDE/4.12
This commit is contained in:
commit
a5e266e538
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue