Add font property to Plasma::Label; this also helps getting more accurate sizeHint than using Arial 12pt when the default font is Arial 10pt
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=726342
This commit is contained in:
parent
ed1430faa4
commit
b14fb9605e
@ -14,6 +14,7 @@ class Label::Private
|
||||
QString text;
|
||||
Qt::Alignment alignment;
|
||||
QPen textPen;
|
||||
QFont textFont;
|
||||
};
|
||||
|
||||
Label::Label(Widget *parent)
|
||||
@ -47,7 +48,7 @@ qreal Label::heightForWidth(qreal w) const
|
||||
|
||||
QSizeF Label::sizeHint() const
|
||||
{
|
||||
QFontMetricsF m(QFont("Arial", 12));
|
||||
QFontMetricsF m(d->textFont);
|
||||
|
||||
return m.boundingRect(QRectF(0,0,9999,9999), d->alignment | Qt::TextWordWrap, d->text).size();
|
||||
}
|
||||
@ -82,12 +83,23 @@ QPen Label::pen() const
|
||||
return d->textPen;
|
||||
}
|
||||
|
||||
void Label::setFont(const QFont& font)
|
||||
{
|
||||
d->textFont = font;
|
||||
}
|
||||
|
||||
QFont Label::font() const
|
||||
{
|
||||
return d->textFont;
|
||||
}
|
||||
|
||||
void Label::paintWidget(QPainter *p, const QStyleOptionGraphicsItem *option, QWidget *widget)
|
||||
{
|
||||
Q_UNUSED(option);
|
||||
Q_UNUSED(widget);
|
||||
|
||||
p->setPen(d->textPen);
|
||||
p->setFont(d->textFont);
|
||||
p->drawText(option->rect, d->alignment | Qt::TextWordWrap, d->text);
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
#include <plasma/widgets/widget.h>
|
||||
#include <QtGui/QPen>
|
||||
#include <QtGui/QFont>
|
||||
|
||||
class QGraphicsTextItem;
|
||||
|
||||
@ -106,6 +107,16 @@ class PLASMA_EXPORT Label : public Plasma::Widget
|
||||
*/
|
||||
QPen pen() const;
|
||||
|
||||
/**
|
||||
* Sets the font used for the text.
|
||||
*/
|
||||
void setFont(const QFont& font);
|
||||
|
||||
/**
|
||||
* Returns the font used for the text.
|
||||
*/
|
||||
QFont font() const;
|
||||
|
||||
/**
|
||||
* Paint function.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user