nicer looking active player display

This commit is contained in:
Max-Wilhelm Bruker 2010-05-29 18:36:59 +02:00
parent f2092b89e9
commit cfd715cce9
3 changed files with 24 additions and 18 deletions

View file

@ -726,6 +726,7 @@ void Player::showCardMenu(const QPoint &p)
void Player::setActive(bool _active)
{
active = _active;
table->setActive(active);
update();
}
@ -747,23 +748,6 @@ void Player::paint(QPainter *painter, const QStyleOptionGraphicsItem */*option*/
else
painter->fillRect(QRectF(0, 0, totalWidth, boundingRect().height()), QBrush(bgPixmap));
if (getActive()) {
QFontMetrics fm(font);
double w = fm.width(nameStr) * 1.7;
double h = fm.height() * 1.7;
if (w < h)
w = h;
painter->setPen(Qt::transparent);
QRadialGradient grad(QPointF(0.5, 0.5), 0.5);
grad.setCoordinateMode(QGradient::ObjectBoundingMode);
grad.setColorAt(0, QColor(150, 200, 150, 255));
grad.setColorAt(0.7, QColor(150, 200, 150, 255));
grad.setColorAt(1, QColor(150, 150, 150, 0));
painter->setBrush(QBrush(grad));
painter->drawEllipse(QRectF(((double) (totalWidth - w)) / 2, 0, w, h));
}
painter->setFont(font);
painter->setPen(QPen(Qt::black));
painter->drawText(QRectF(0, 0, totalWidth, 40), Qt::AlignCenter, nameStr);

View file

@ -6,7 +6,7 @@
#include "settingscache.h"
TableZone::TableZone(Player *_p, QGraphicsItem *parent)
: CardZone(_p, "table", true, false, true, parent)
: CardZone(_p, "table", true, false, true, parent), active(false)
{
connect(settingsCache, SIGNAL(tableBgPathChanged()), this, SLOT(updateBgPixmap()));
connect(settingsCache, SIGNAL(economicGridChanged()), this, SLOT(reorganizeCards()));
@ -47,6 +47,26 @@ void TableZone::paint(QPainter *painter, const QStyleOptionGraphicsItem */*optio
if (player->getMirrored())
separatorY = height - separatorY;
painter->drawLine(QPointF(0, separatorY), QPointF(width, separatorY));
if (active) {
QColor color1(255, 255, 255, 150);
QColor color2(255, 255, 255, 0);
QLinearGradient grad1(0, 0, 0, 1);
grad1.setCoordinateMode(QGradient::ObjectBoundingMode);
grad1.setColorAt(0, color1);
grad1.setColorAt(1, color2);
painter->fillRect(QRectF(0, 0, width, 10), QBrush(grad1));
grad1.setFinalStop(1, 0);
painter->fillRect(QRectF(0, 0, 10, height), QBrush(grad1));
grad1.setStart(0, 1);
grad1.setFinalStop(0, 0);
painter->fillRect(QRectF(0, height - 10, width, 10), QBrush(grad1));
grad1.setStart(1, 0);
painter->fillRect(QRectF(width - 10, 0, 10, height), QBrush(grad1));
}
}
void TableZone::addCardImpl(CardItem *card, int _x, int _y)

View file

@ -11,6 +11,7 @@ private:
int width, height;
int currentMinimumWidth;
QPixmap bgPixmap;
bool active;
private slots:
void updateBgPixmap();
public slots:
@ -36,6 +37,7 @@ public:
int getMinimumWidth() const { return currentMinimumWidth; }
void setWidth(qreal _width);
qreal getWidth() const { return width; }
void setActive(bool _active) { active = _active; update(); }
protected:
void addCardImpl(CardItem *card, int x, int y);
};