~ubuntu-branches/ubuntu/lucid/kdebase/lucid

« back to all changes in this revision

Viewing changes to apps/plasma/applets/folderview/label.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Thomas
  • Date: 2009-12-02 13:28:20 UTC
  • mfrom: (1.1.35 upstream)
  • Revision ID: james.westby@ubuntu.com-20091202132820-yaqzqr7livmarip5
Tags: 4:4.3.80-0ubuntu1
* New upstream release:
  - Drop kubuntu_05_konsole_colour_scheme.diff, applied upstream
  - Drop kubuntu_15-17.diff, applied upstream
  - Bump build-depend versions
  - Add build-depend on shared-desktop-ontologies for nepomuk support
  - Update various .install files

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 *   Copyright © 2008 Fredrik Höglund <fredrik@kde.org>
 
2
 *   Copyright © 2008, 2009 Fredrik Höglund <fredrik@kde.org>
3
3
 *   Copyright © 2008 Andrew Lake <jamboarder@yahoo.com>
4
4
 *
5
5
 *   This library is free software; you can redistribute it and/or
28
28
Label::Label(QGraphicsWidget *parent)
29
29
    : QGraphicsWidget(parent)
30
30
{
31
 
    setMinimumHeight(QFontMetrics(font()).lineSpacing() + 4);
32
 
    setMaximumHeight(QFontMetrics(font()).lineSpacing() + 4);
 
31
    QFontMetrics fm(font());
 
32
    setMinimumHeight(fm.height() + 4);
 
33
    setMaximumHeight(fm.height() + 4);
33
34
    setCacheMode(DeviceCoordinateCache);
34
35
}
35
36
 
64
65
    Q_UNUSED(option)
65
66
    Q_UNUSED(widget)
66
67
 
67
 
    const QString text = QFontMetrics(font()).elidedText(m_text, Qt::ElideMiddle, contentsRect().width());
68
 
 
69
 
    QColor shadowColor;
70
 
    QPoint shadowOffset;
71
 
    if (!m_drawShadow) {
72
 
        shadowColor = Qt::transparent;
73
 
        shadowOffset = QPoint();
74
 
    } else if (qGray(palette().color(QPalette::Text).rgb()) > 192) {
75
 
        shadowColor = Qt::black;
76
 
        shadowOffset = QPoint(1, 1);
77
 
    } else {
78
 
        shadowColor = Qt::white;
79
 
        shadowOffset = QPoint();
80
 
    }
81
 
 
82
 
    QPixmap titlePixmap = Plasma::PaintUtils::shadowText(text, palette().color(QPalette::Text),
83
 
                                                         shadowColor, shadowOffset);
84
 
    painter->drawPixmap(contentsRect().topLeft(), titlePixmap);
85
 
 
86
 
    int width = contentsRect().width();
87
 
 
88
 
    //Draw underline
89
 
    if (m_divider.width() != width) {
90
 
        qreal fw = 1.0 / width * 20.0;
91
 
        m_divider = QPixmap(width, 2);
92
 
        m_divider.fill(Qt::transparent);
93
 
        QLinearGradient g(0, 0, width, 0);
94
 
        g.setColorAt(0, Qt::transparent);
95
 
        g.setColorAt(fw, Qt::black);
96
 
        g.setColorAt(1 - fw, Qt::black);
97
 
        g.setColorAt(1, Qt::transparent);
98
 
        QPainter p(&m_divider);
99
 
        p.setCompositionMode(QPainter::CompositionMode_Source);
100
 
        p.fillRect(0, 0, width, 1, QColor(0, 0, 0, 64));
101
 
        p.fillRect(0, 1, width, 1, QColor(255, 255, 255, 64));
102
 
        p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
103
 
        p.fillRect(m_divider.rect(), g);
104
 
    }
105
 
    painter->drawPixmap(0, contentsRect().height() - 2, m_divider);
 
68
    QColor color = palette().color(QPalette::Text);
 
69
    color.setAlphaF(.75);
 
70
 
 
71
    QFontMetrics fm(font());
 
72
    const QString text = fm.elidedText(m_text, Qt::ElideMiddle, contentsRect().width());
 
73
 
 
74
    painter->save();
 
75
    painter->setFont(font());
 
76
    painter->setPen(color);
 
77
    painter->drawText(contentsRect(), Qt::AlignCenter, text);
 
78
    painter->restore();
106
79
}
107
80
 
108
81
#include "label.moc"