fixed blurry tapped cards
This commit is contained in:
parent
6e94221112
commit
9d6ecbbfdf
3 changed files with 12 additions and 4 deletions
|
@ -37,7 +37,11 @@ void CardItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
|||
painter->save();
|
||||
QRectF foo = option->matrix.mapRect(boundingRect());
|
||||
qDebug(QString("%1: w=%2,h=%3").arg(name).arg(foo.width()).arg(foo.height()).toLatin1());
|
||||
QPixmap bar = image->scaled((int) foo.width(), (int) foo.height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||
QPixmap bar;
|
||||
if (tapped)
|
||||
bar = image->scaled((int) foo.height(), (int) foo.width(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||
else
|
||||
bar = image->scaled((int) foo.width(), (int) foo.height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||
// painter->drawPixmap(boundingRect(), *image, QRectF(0, 0, image->width(), image->height()));
|
||||
painter->drawPixmap(boundingRect(), bar, bar.rect());
|
||||
if (isSelected()) {
|
||||
|
@ -195,7 +199,8 @@ QVariant CardItem::itemChange(QGraphicsItem::GraphicsItemChange change, const QV
|
|||
// XXX
|
||||
return value;
|
||||
} else if (change == ItemSelectedHasChanged) {
|
||||
update();
|
||||
qDebug("selection changed");
|
||||
update(boundingRect());
|
||||
return value;
|
||||
} else
|
||||
return QGraphicsItem::itemChange(change, value);
|
||||
|
|
|
@ -4,8 +4,8 @@ GameView::GameView(QGraphicsScene *scene, QWidget *parent)
|
|||
: QGraphicsView(scene, parent)
|
||||
{
|
||||
setBackgroundBrush(QBrush(QColor(0, 0, 0)));
|
||||
setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
|
||||
setOptimizationFlags(/*DontClipPainter | */DontSavePainterState);
|
||||
setRenderHints(QPainter::Antialiasing/* | QPainter::SmoothPixmapTransform*/);
|
||||
// setOptimizationFlags(/*DontClipPainter | */DontSavePainterState);
|
||||
setDragMode(RubberBandDrag);
|
||||
}
|
||||
|
||||
|
|
|
@ -85,6 +85,9 @@ void LibraryZone::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
|||
if ((event->screenPos() - event->buttonDownScreenPos(Qt::LeftButton)).manhattanLength() < QApplication::startDragDistance())
|
||||
return;
|
||||
|
||||
if (cards->empty())
|
||||
return;
|
||||
|
||||
CardItem *card = cards->at(0);
|
||||
CardDragItem *drag = card->createDragItem(this, 0, event->pos(), event->scenePos());
|
||||
drag->grabMouse();
|
||||
|
|
Loading…
Reference in a new issue