mirror of
https://invent.kde.org/system/dolphin
synced 2024-07-04 17:30:55 +00:00
use flat buttons for the information sidebar page (TODO: this code has been duplicated from URLNavigatorButton)
svn path=/trunk/playground/utils/dolphin/; revision=609309
This commit is contained in:
parent
b1d5b6b746
commit
4f951f75e2
|
@ -548,8 +548,9 @@ ServiceButton::~ServiceButton()
|
|||
{
|
||||
}
|
||||
|
||||
void ServiceButton::drawButton(QPainter* painter)
|
||||
void ServiceButton::paintEvent(QPaintEvent* event)
|
||||
{
|
||||
QPainter painter(this);
|
||||
const int buttonWidth = width();
|
||||
const int buttonHeight = height();
|
||||
|
||||
|
@ -565,9 +566,9 @@ void ServiceButton::drawButton(QPainter* painter)
|
|||
}
|
||||
|
||||
// draw button background
|
||||
painter->setPen(Qt::NoPen);
|
||||
painter->setBrush(backgroundColor);
|
||||
painter->drawRect(0, 0, buttonWidth, buttonHeight);
|
||||
painter.setPen(Qt::NoPen);
|
||||
painter.setBrush(backgroundColor);
|
||||
painter.drawRect(0, 0, buttonWidth, buttonHeight);
|
||||
|
||||
const int spacing = KDialog::spacingHint();
|
||||
|
||||
|
@ -576,18 +577,18 @@ void ServiceButton::drawButton(QPainter* painter)
|
|||
const int y = (buttonHeight - K3Icon::SizeSmall) / 2;
|
||||
const QIcon* set = iconSet();
|
||||
if (set != 0) {
|
||||
painter->drawPixmap(x, y, set->pixmap(QIcon::Small, QIcon::Normal));
|
||||
painter.drawPixmap(x, y, set->pixmap(QIcon::Small, QIcon::Normal));
|
||||
}
|
||||
x += K3Icon::SizeSmall + spacing;
|
||||
|
||||
// draw text
|
||||
painter->setPen(foregroundColor);
|
||||
painter.setPen(foregroundColor);
|
||||
|
||||
const int textWidth = buttonWidth - x;
|
||||
QFontMetrics fontMetrics(font());
|
||||
const bool clipped = fontMetrics.width(text()) >= textWidth;
|
||||
//const int align = clipped ? Qt::AlignVCenter : Qt::AlignCenter;
|
||||
painter->drawText(QRect(x, 0, textWidth, buttonHeight), Qt::AlignVCenter, text());
|
||||
painter.drawText(QRect(x, 0, textWidth, buttonHeight), Qt::AlignVCenter, text());
|
||||
|
||||
if (clipped) {
|
||||
// Blend the right area of the text with the background, as the
|
||||
|
@ -601,9 +602,9 @@ void ServiceButton::drawButton(QPainter* painter)
|
|||
const int greenInc = (foregroundColor.green() - backgroundColor.green()) / blendSteps;
|
||||
const int blueInc = (foregroundColor.blue() - backgroundColor.blue()) / blendSteps;
|
||||
for (int i = 0; i < blendSteps; ++i) {
|
||||
painter->setClipRect(QRect(x + textWidth - i, 0, 1, buttonHeight));
|
||||
painter->setPen(blendColor);
|
||||
painter->drawText(QRect(x, 0, textWidth, buttonHeight), Qt::AlignVCenter, text());
|
||||
painter.setClipRect(QRect(x + textWidth - i, 0, 1, buttonHeight));
|
||||
painter.setPen(blendColor);
|
||||
painter.drawText(QRect(x, 0, textWidth, buttonHeight), Qt::AlignVCenter, text());
|
||||
|
||||
blendColor.setRgb(blendColor.red() + redInc,
|
||||
blendColor.green() + greenInc,
|
||||
|
|
|
@ -185,7 +185,7 @@ signals:
|
|||
void requestServiceStart(int index);
|
||||
|
||||
protected:
|
||||
virtual void drawButton(QPainter* painter);
|
||||
virtual void paintEvent(QPaintEvent* event);
|
||||
virtual void enterEvent(QEvent* event);
|
||||
virtual void leaveEvent(QEvent* event);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user