rendered paste body#include "view.h"
#include "item.h"
#include <QGraphicsScene>
#include <QRectF>
#include <QLinearGradient>
#include <QTransform>
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: " <<endl;
}
void View::timerEvent(QTimerEvent *event)
{
kDebug() << "timer event" << endl;
QList<Item *> items;
foreach (QGraphicsItem *item, scene()->items()){
kDebug() << "metiendo uno" << endl;
if(Item *item = qgraphicsitem_cast<Item *>(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"