fixed blurry tapped cards

This commit is contained in:
Max-Wilhelm Bruker 2009-03-25 18:58:25 +01:00
parent 6e94221112
commit 9d6ecbbfdf
3 changed files with 12 additions and 4 deletions

View file

@ -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);

View file

@ -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);
}

View file

@ -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();