change the background as nuno wants
svn path=/trunk/KDE/kdebase/workspace/; revision=688728
This commit is contained in:
parent
fd50ea91da
commit
f153aad996
1 changed files with 27 additions and 66 deletions
|
@ -66,7 +66,6 @@ class TileCache
|
||||||
static TileCache *instance();
|
static TileCache *instance();
|
||||||
|
|
||||||
QPixmap verticalGradient(const QColor &color, int height);
|
QPixmap verticalGradient(const QColor &color, int height);
|
||||||
QPixmap horizontalGradient(const QColor &color, int width);
|
|
||||||
QPixmap radialGradient(const QColor &color, int width);
|
QPixmap radialGradient(const QColor &color, int width);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -99,8 +98,8 @@ QPixmap TileCache::verticalGradient(const QColor &color, int height)
|
||||||
pixmap = new QPixmap(32, height);
|
pixmap = new QPixmap(32, height);
|
||||||
|
|
||||||
QLinearGradient gradient(0, 0, 0, height);
|
QLinearGradient gradient(0, 0, 0, height);
|
||||||
gradient.setColorAt(0, color.lighter(180));
|
gradient.setColorAt(0, color.lighter(115));
|
||||||
gradient.setColorAt(1, color.darker(110));
|
gradient.setColorAt(1, color);
|
||||||
|
|
||||||
QPainter p(pixmap);
|
QPainter p(pixmap);
|
||||||
p.setCompositionMode(QPainter::CompositionMode_Source);
|
p.setCompositionMode(QPainter::CompositionMode_Source);
|
||||||
|
@ -112,31 +111,6 @@ QPixmap TileCache::verticalGradient(const QColor &color, int height)
|
||||||
return *pixmap;
|
return *pixmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
QPixmap TileCache::horizontalGradient(const QColor &color, int width)
|
|
||||||
{
|
|
||||||
quint64 key = (quint64(color.rgba()) << 32) | width | 0x4000;
|
|
||||||
QPixmap *pixmap = m_cache.object(key);
|
|
||||||
|
|
||||||
if (!pixmap)
|
|
||||||
{
|
|
||||||
pixmap = new QPixmap(width, 32);
|
|
||||||
pixmap->fill(Qt::transparent);
|
|
||||||
QLinearGradient gradient(0, 0, width, 0);
|
|
||||||
gradient.setColorAt(0, color.lighter(110));
|
|
||||||
gradient.setColorAt(1, color.darker(110));
|
|
||||||
|
|
||||||
QPainter p(pixmap);
|
|
||||||
p.setCompositionMode(QPainter::CompositionMode_Source);
|
|
||||||
p.fillRect(pixmap->rect(), gradient);
|
|
||||||
p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
|
|
||||||
p.fillRect(pixmap->rect(), QColor(0,0,0,128));
|
|
||||||
|
|
||||||
m_cache.insert(key, pixmap);
|
|
||||||
}
|
|
||||||
|
|
||||||
return *pixmap;
|
|
||||||
}
|
|
||||||
|
|
||||||
QPixmap TileCache::radialGradient(const QColor &color, int width)
|
QPixmap TileCache::radialGradient(const QColor &color, int width)
|
||||||
{
|
{
|
||||||
quint64 key = (quint64(color.rgba()) << 32) | width | 0xb000;
|
quint64 key = (quint64(color.rgba()) << 32) | width | 0xb000;
|
||||||
|
@ -147,10 +121,14 @@ QPixmap TileCache::radialGradient(const QColor &color, int width)
|
||||||
width /= 2;
|
width /= 2;
|
||||||
pixmap = new QPixmap(width, 64);
|
pixmap = new QPixmap(width, 64);
|
||||||
pixmap->fill(QColor(0,0,0,0));
|
pixmap->fill(QColor(0,0,0,0));
|
||||||
QColor radialColor = color.lighter(120);
|
QColor radialColor = color.lighter(140);
|
||||||
radialColor.setAlpha(255);
|
radialColor.setAlpha(255);
|
||||||
QRadialGradient gradient(64, TITLESIZE + TFRAMESIZE, 64);
|
QRadialGradient gradient(64, TITLESIZE + TFRAMESIZE, 64);
|
||||||
gradient.setColorAt(0, radialColor);
|
gradient.setColorAt(0, radialColor);
|
||||||
|
radialColor.setAlpha(101);
|
||||||
|
gradient.setColorAt(0.5, radialColor);
|
||||||
|
radialColor.setAlpha(37);
|
||||||
|
gradient.setColorAt(0.75, radialColor);
|
||||||
radialColor.setAlpha(0);
|
radialColor.setAlpha(0);
|
||||||
gradient.setColorAt(1, radialColor);
|
gradient.setColorAt(1, radialColor);
|
||||||
|
|
||||||
|
@ -577,41 +555,26 @@ void OxygenClient::paintEvent(QPaintEvent *e)
|
||||||
painter.fillRect(QRect(frame.width()-RFRAMESIZE, 0,
|
painter.fillRect(QRect(frame.width()-RFRAMESIZE, 0,
|
||||||
RFRAMESIZE, frame.height()), gradient);
|
RFRAMESIZE, frame.height()), gradient);
|
||||||
|
|
||||||
gradient = QLinearGradient(0, 0, frame.width(), 0);
|
|
||||||
gradient.setColorAt(0, color.lighter(110));
|
|
||||||
gradient.setColorAt(1, color.darker(110));
|
|
||||||
painter.setOpacity(128);
|
|
||||||
painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
|
|
||||||
painter.fillRect(QRect(0, 0, frame.width(), TITLESIZE + TFRAMESIZE), gradient);
|
|
||||||
painter.fillRect(QRect(0, 0, LFRAMESIZE, frame.height()), gradient);
|
|
||||||
painter.fillRect(QRect(0, frame.height() - BFRAMESIZE -1,
|
|
||||||
frame.width(), BFRAMESIZE), gradient);
|
|
||||||
painter.fillRect(QRect(frame.width()-RFRAMESIZE, 0,
|
|
||||||
RFRAMESIZE, frame.height()), gradient);
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
QPixmap tile = TileCache::instance()->verticalGradient(color, frame.height());
|
int splitY = qMin(300, 3*frame.height()/4);
|
||||||
painter.drawTiledPixmap(QRect(0, 0, frame.width(), TITLESIZE + TFRAMESIZE), tile);
|
|
||||||
painter.drawTiledPixmap(QRect(0, 0, LFRAMESIZE, frame.height()), tile);
|
|
||||||
painter.drawTiledPixmap(QRect(0, frame.height() - BFRAMESIZE,
|
|
||||||
frame.width(), BFRAMESIZE), tile,
|
|
||||||
QPoint(0, frame.height() - BFRAMESIZE));
|
|
||||||
painter.drawTiledPixmap(QRect(frame.width()-RFRAMESIZE, 0,
|
|
||||||
RFRAMESIZE, frame.height()), tile,
|
|
||||||
QPoint(frame.width()-RFRAMESIZE, 0));
|
|
||||||
|
|
||||||
tile = TileCache::instance()->horizontalGradient(color, widget()->rect().width());
|
QPixmap tile = TileCache::instance()->verticalGradient(color, splitY);
|
||||||
painter.drawTiledPixmap(QRect(0, 0, frame.width(), TITLESIZE + TFRAMESIZE), tile);
|
painter.drawTiledPixmap(QRect(0, 0, frame.width(), TITLESIZE + TFRAMESIZE), tile);
|
||||||
painter.drawTiledPixmap(QRect(0, 0, LFRAMESIZE, frame.height()), tile);
|
|
||||||
painter.drawTiledPixmap(QRect(0, frame.height() - BFRAMESIZE,
|
|
||||||
frame.width(), BFRAMESIZE), tile,
|
|
||||||
QPoint(0, frame.height() - BFRAMESIZE));
|
|
||||||
painter.drawTiledPixmap(QRect(frame.width()-RFRAMESIZE, 0,
|
|
||||||
RFRAMESIZE, frame.height()), tile,
|
|
||||||
QPoint(frame.width()-RFRAMESIZE, 0));
|
|
||||||
|
|
||||||
tile = TileCache::instance()->radialGradient(color, widget()->rect().width());
|
painter.drawTiledPixmap(QRect(0, 0, LFRAMESIZE, splitY), tile);
|
||||||
QRect radialRect = QRect(0, 0, widget()->rect().width(), 64);
|
painter.fillRect(0, splitY, LFRAMESIZE, frame.height() - splitY, color);
|
||||||
|
|
||||||
|
painter.drawTiledPixmap(QRect(frame.width()-RFRAMESIZE, 0,
|
||||||
|
RFRAMESIZE, splitY), tile,
|
||||||
|
QPoint(frame.width()-RFRAMESIZE, 0));
|
||||||
|
painter.fillRect(frame.width()-RFRAMESIZE, 0, RFRAMESIZE, frame.height(), color);
|
||||||
|
|
||||||
|
painter.fillRect(0, frame.height() - BFRAMESIZE, frame.width(), BFRAMESIZE, color);
|
||||||
|
|
||||||
|
int radialW = qMin(600, frame.width());
|
||||||
|
tile = TileCache::instance()->radialGradient(color, radialW);
|
||||||
|
QRect radialRect = QRect((frame.width() - radialW) / 2, 0, radialW, 64);
|
||||||
painter.drawPixmap(radialRect, tile);
|
painter.drawPixmap(radialRect, tile);
|
||||||
|
|
||||||
//painter.setRenderHint(QPainter::Antialiasing,true);
|
//painter.setRenderHint(QPainter::Antialiasing,true);
|
||||||
|
@ -654,15 +617,13 @@ void OxygenClient::paintEvent(QPaintEvent *e)
|
||||||
painter.drawArc(QRectF(w-9.5-0.5, h-9.5-0.5, 9.5, 9.5), 270*16, 90*16);
|
painter.drawArc(QRectF(w-9.5-0.5, h-9.5-0.5, 9.5, 9.5), 270*16, 90*16);
|
||||||
painter.drawLine(QPointF(6.3, h-0.5), QPointF(w-6.3, h-0.5));
|
painter.drawLine(QPointF(6.3, h-0.5), QPointF(w-6.3, h-0.5));
|
||||||
|
|
||||||
qreal cenX = frame.width() / 2 + 0.5;
|
qreal cenY = frame.height() / 2 + 0.5;
|
||||||
|
qreal posX = frame.width() - 2.5;
|
||||||
painter.setPen(Qt::NoPen);
|
painter.setPen(Qt::NoPen);
|
||||||
painter.setBrush(QColor(0, 0, 0, 66));
|
painter.setBrush(QColor(0, 0, 0, 66));
|
||||||
renderDot(&painter, QPointF(cenX-10, 2.5), 1);
|
renderDot(&painter, QPointF(posX, cenY - 5), 2.5);
|
||||||
renderDot(&painter, QPointF(cenX-5, 2.5), 1.5);
|
renderDot(&painter, QPointF(posX, cenY), 2.5);
|
||||||
renderDot(&painter, QPointF(cenX, 2.5), 2);
|
renderDot(&painter, QPointF(posX, cenY + 5), 2.5);
|
||||||
renderDot(&painter, QPointF(cenX+5, 2.5), 1.5);
|
|
||||||
renderDot(&painter, QPointF(cenX+10, 2.5), 1);
|
|
||||||
|
|
||||||
painter.translate(frame.width()-9, frame.height()-9);
|
painter.translate(frame.width()-9, frame.height()-9);
|
||||||
renderDot(&painter, QPointF(0.5, 6.5), 2.5);
|
renderDot(&painter, QPointF(0.5, 6.5), 2.5);
|
||||||
|
|
Loading…
Reference in a new issue