From c05f75438b548504370add255f37fc13fbd93151 Mon Sep 17 00:00:00 2001 From: Matt Lowe Date: Wed, 18 Mar 2015 13:11:30 +0100 Subject: [PATCH] Updated card borders + refactored code + improved card border lines (black) + cards no longer have curved edges, this prevents card image corners showing behind. + tapped cards now have better border lines --- cockatrice/src/abstractcarditem.cpp | 31 ++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/cockatrice/src/abstractcarditem.cpp b/cockatrice/src/abstractcarditem.cpp index 7ff34b1f..3cd6f707 100644 --- a/cockatrice/src/abstractcarditem.cpp +++ b/cockatrice/src/abstractcarditem.cpp @@ -120,14 +120,21 @@ void AbstractCardItem::paintPicture(QPainter *painter, const QSizeF &translatedS } else { painter->save(); transformPainter(painter, translatedSize, angle); - painter->drawPixmap(QPointF(0, 0), translatedPixmap); + painter->drawPixmap(QPointF(0, angle ? -1 : 0), translatedPixmap); painter->restore(); } painter->setBrush(bgColor); + QPen pen(Qt::black); - pen.setWidth(2); + pen.setJoinStyle(Qt::MiterJoin); + const int penWidth = 2; + pen.setWidth(penWidth); painter->setPen(pen); - painter->drawRect(QRectF(1, 1, CARD_WIDTH - 2, CARD_HEIGHT - 2)); + + if (!angle) + painter->drawRect(QRectF(0, 0, CARD_WIDTH - 1, CARD_HEIGHT - penWidth)); + else + painter->drawRect(QRectF(1, 1, CARD_WIDTH - 2, CARD_HEIGHT - 1.5)); if (translatedPixmap.isNull() || settingsCache->getDisplayCardNames() || facedown) { painter->save(); @@ -157,13 +164,19 @@ void AbstractCardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * painter->save(); painter->setRenderHint(QPainter::Antialiasing, false); transformPainter(painter, translatedSize, tapAngle); - if (isSelected()) { - painter->setPen(Qt::red); - painter->drawRect(QRectF(0.5, 0.5, translatedSize.width() - 1, translatedSize.height() - 1)); - } else if (isHovered) { - painter->setPen(Qt::yellow); - painter->drawRect(QRectF(0.5, 0.5, translatedSize.width() - 1, translatedSize.height() - 1)); + + if (isSelected() || isHovered) { + QPen pen; + if (isHovered) + pen.setColor(Qt::yellow); + if (isSelected()) + pen.setColor(Qt::red); + const int penWidth = 1; + pen.setWidth(penWidth); + painter->setPen(pen); + painter->drawRect(QRectF(0, 0, translatedSize.width() + penWidth, translatedSize.height() - penWidth)); } + painter->restore(); painter->restore();