#include "view.h" #include "item.h" #include #include #include #include View::View(QGraphicsScene *scene) : QGraphicsView(scene), timerId(0) { scene->setItemIndexMethod(QGraphicsScene::NoIndex); //Faster for no static scenes scene->setSceneRect(0, 0, 800, 600); // setScene(scene); setCacheMode(CacheBackground); //The background will be cached setRenderHint(QPainter::SmoothPixmapTransform); setTransformationAnchor(AnchorUnderMouse); setResizeAnchor(AnchorViewCenter); setMinimumSize(800, 600); setWindowTitle("kRemas"); } void View::itemMoved() { if(!timerId) timerId = startTimer(40); } void View::showSelected() { scene->selectedItems(); kDebug() << __FUNCTION__ << ": selected items: " < items; foreach (QGraphicsItem *item, scene()->items()){ kDebug() << "metiendo uno" << endl; if(Item *item = qgraphicsitem_cast(item)) items << item; } kDebug() << "longitud de la lista: " + QString::number(items.size()) << endl; foreach(Item *item, items) item->calculatePos(); bool itemsMoved = false; foreach(Item *item, items){ if(item->advance()) itemsMoved = true; } if (!itemsMoved){ killTimer(timerId); timerId = 0; } } void View::drawBackground(QPainter *painter, const QRectF &rect) { Q_UNUSED(rect); // QRectF leftRect(0,0,sceneRect().width(),sceneRect().height()); QLinearGradient gradient(QPointF(400,0),QPointF(400,600)); gradient.setColorAt(0, Qt::white); gradient.setColorAt(1, Qt::gray); QTransform rotateTransform; // rotateTransform.rotate(30, Qt::XAxis); painter->setTransform(rotateTransform, false); painter->setBrush(gradient); painter->drawRect(sceneRect()); // rotateTransform.rotate(-60, Qt::YAxis); // painter->setTransform(rotateTransform); // painter->drawRect(leftRect); } #include "view.moc"