Add color, font, alignment support for labels.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=722537
This commit is contained in:
parent
1f01e27b83
commit
1fce16d307
@ -45,14 +45,26 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void text(QPainter *p, const QString& elementID, const QString &text)
|
||||
void text(QPainter *p, int index)
|
||||
{
|
||||
QString elementID = QString("label%1").arg(index);
|
||||
QString text = labels[index];
|
||||
|
||||
if (image->elementExists(elementID)) {
|
||||
QRectF elementRect = image->elementRect(elementID);
|
||||
Qt::Alignment align = Qt::AlignCenter;
|
||||
|
||||
p->setPen(QPen(Qt::lightGray));
|
||||
if (colors.count() > index) {
|
||||
p->setPen(QPen(colors[index]));
|
||||
}
|
||||
if (fonts.count() > index) {
|
||||
p->setFont(fonts[index]);
|
||||
}
|
||||
if (alignments.count() > index) {
|
||||
align = alignments[index];
|
||||
}
|
||||
if (elementRect.width() > elementRect.height()) {
|
||||
p->drawText(elementRect, Qt::AlignCenter, text);
|
||||
p->drawText(elementRect, align, text);
|
||||
} else {
|
||||
p->save();
|
||||
QPointF rotateCenter(
|
||||
@ -63,7 +75,7 @@ public:
|
||||
p->translate(elementRect.height() / -2,
|
||||
elementRect.width() / -2);
|
||||
QRectF r(0, 0, elementRect.height(), elementRect.width());
|
||||
p->drawText(r, Qt::AlignCenter, text);
|
||||
p->drawText(r, align, text);
|
||||
p->restore();
|
||||
}
|
||||
}
|
||||
@ -79,7 +91,7 @@ public:
|
||||
{
|
||||
p->restore();
|
||||
for (int i = 0; i < labels.count(); ++i) {
|
||||
text(p, QString("label%1").arg(i), labels[i]);
|
||||
text(p, i);
|
||||
}
|
||||
paint(p, "foreground");
|
||||
}
|
||||
@ -88,6 +100,9 @@ public:
|
||||
int maximum;
|
||||
int value;
|
||||
QStringList labels;
|
||||
QList<Qt::Alignment> alignments;
|
||||
QList<QColor> colors;
|
||||
QList<QFont> fonts;
|
||||
QString svg;
|
||||
MeterType meterType;
|
||||
Plasma::Svg *image;
|
||||
@ -139,7 +154,7 @@ int Meter::value() const
|
||||
return d->value;
|
||||
}
|
||||
|
||||
void Meter::setLabel(int index, const QString& text)
|
||||
void Meter::setLabel(int index, const QString &text)
|
||||
{
|
||||
while (d->labels.count() <= index) {
|
||||
d->labels << QString();
|
||||
@ -152,6 +167,45 @@ QString Meter::label(int index) const
|
||||
return d->labels[index];
|
||||
}
|
||||
|
||||
void Meter::setLabelColor(int index, const QColor &color)
|
||||
{
|
||||
while (d->colors.count() <= index) {
|
||||
d->colors << color;
|
||||
}
|
||||
d->colors[index] = color;
|
||||
}
|
||||
|
||||
QColor Meter::labelColor(int index) const
|
||||
{
|
||||
return d->colors[index];
|
||||
}
|
||||
|
||||
void Meter::setLabelFont(int index, const QFont &font)
|
||||
{
|
||||
while (d->fonts.count() <= index) {
|
||||
d->fonts << font;
|
||||
}
|
||||
d->fonts[index] = font;
|
||||
}
|
||||
|
||||
QFont Meter::labelFont(int index) const
|
||||
{
|
||||
return d->fonts[index];
|
||||
}
|
||||
|
||||
void Meter::setLabelAlignment(int index, Qt::Alignment alignment)
|
||||
{
|
||||
while (d->alignments.count() <= index) {
|
||||
d->alignments << alignment;
|
||||
}
|
||||
d->alignments[index] = alignment;
|
||||
}
|
||||
|
||||
Qt::Alignment Meter::labelAlignment(int index) const
|
||||
{
|
||||
return d->alignments[index];
|
||||
}
|
||||
|
||||
void Meter::updated(QString sourceName, Plasma::DataEngine::Data data)
|
||||
{
|
||||
Q_UNUSED(sourceName)
|
||||
|
@ -141,7 +141,7 @@ public:
|
||||
* @param index label index.
|
||||
* @param text text for the label.
|
||||
*/
|
||||
void setLabel(int index, const QString & text);
|
||||
void setLabel(int index, const QString &text);
|
||||
|
||||
/**
|
||||
* @param index label index
|
||||
@ -149,6 +149,45 @@ public:
|
||||
*/
|
||||
QString label(int index) const;
|
||||
|
||||
/**
|
||||
* Set text label color for the meter
|
||||
* @param index label index.
|
||||
* @param text color for the label.
|
||||
*/
|
||||
void setLabelColor(int index, const QColor &color);
|
||||
|
||||
/**
|
||||
* @param index label index
|
||||
* @return text label color for the meter
|
||||
*/
|
||||
QColor labelColor(int index) const;
|
||||
|
||||
/**
|
||||
* Set text label font for the meter
|
||||
* @param index label index.
|
||||
* @param text font for the label.
|
||||
*/
|
||||
void setLabelFont(int index, const QFont &font);
|
||||
|
||||
/**
|
||||
* @param index label index
|
||||
* @return text label font for the meter
|
||||
*/
|
||||
QFont labelFont(int index) const;
|
||||
|
||||
/**
|
||||
* Set text label alignment for the meter
|
||||
* @param index label index.
|
||||
* @param text alignment for the label.
|
||||
*/
|
||||
void setLabelAlignment(int index, const Qt::Alignment alignment);
|
||||
|
||||
/**
|
||||
* @param index label index
|
||||
* @return text label alignment for the meter
|
||||
*/
|
||||
Qt::Alignment labelAlignment(int index) const;
|
||||
|
||||
public Q_SLOTS:
|
||||
/**
|
||||
* Used when connecting to a DataEngine
|
||||
|
Loading…
x
Reference in New Issue
Block a user