void RollitWidget::dragMoveEvent(QDragMoveEvent *event) { QRect updateRect = highlightedRect.united(targetSquare(event->pos())); if (event->mimeData()->hasFormat("image/x-puzzle-piece") && findPiece(targetSquare(event->pos())) == -1) { highlightedRect = targetSquare(event->pos()); event->setDropAction(Qt::MoveAction); event->accept(); possible_pos=true; } else { highlightedRect = targetSquare(event->pos()); possible_pos=false; //highlightedRect = QRect(); event->ignore(); } QPoint a=event->pos(); int n=a.x()/80; int m=a.y()/80; if((getValue(n,m)==NOIR)||(getValue(n,m)==BLANC)) highlightedRect = QRect(); update(updateRect); }
void PuzzleWidget::dropEvent(QDropEvent *event) { if (event->mimeData()->hasFormat("image/x-puzzle-piece") && findPiece(targetSquare(event->pos())) == -1) { QByteArray pieceData = event->mimeData()->data("image/x-puzzle-piece"); QDataStream dataStream(&pieceData, QIODevice::ReadOnly); QRect square = targetSquare(event->pos()); QPixmap pixmap; QPoint location; dataStream >> pixmap >> location; pieceLocations.append(location); piecePixmaps.append(pixmap); pieceRects.append(square); highlightedRect = QRect(); update(square); event->setDropAction(Qt::MoveAction); event->accept(); if (location == QPoint(square.x()/pieceSize(), square.y()/pieceSize())) { inPlace++; if (inPlace == 25) emit puzzleCompleted(); } } else {
void tileset::dropEvent(QDropEvent *event) { if (event->mimeData()->hasFormat(getMimeType()) && findPiece(targetSquare(event->pos())) == -1) { QByteArray pieceData = event->mimeData()->data(getMimeType()); QDataStream stream(&pieceData, QIODevice::ReadOnly); QRect square = targetSquare(event->pos()); int objID; stream >> objID; //QPixmap scaledPix = pixmap.scaled(m_baseSize, m_baseSize,Qt::KeepAspectRatio); QPixmap scaledPix = getScaledPixmapById(objID); piecePixmaps.append(scaledPix); pieceRects.append(square); pieceID.append(objID); highlightedRect = QRect(); update(); event->setDropAction(Qt::MoveAction); event->accept(); } else {
void tileset::dropEvent(QDropEvent *event) { if(event->mimeData()->hasFormat(getMimeType()) && findPiece(targetSquare(event->pos())) == -1) { QByteArray pieceData = event->mimeData()->data(getMimeType()); QDataStream stream(&pieceData, QIODevice::ReadOnly); QRect square = targetSquare(event->pos()); int objID; stream >> objID; QPixmap scaledPix; Items::getItemGFX(m_type, (unsigned long)objID, scaledPix, scn, false, QSize(m_baseSize, m_baseSize)); piecePixmaps.append(scaledPix); pieceRects.append(square); pieceID.append(objID); highlightedRect = QRect(); update(); event->setDropAction(Qt::MoveAction); event->accept(); }
void tileset::dragMoveEvent(QDragMoveEvent *event) { if (event->mimeData()->hasFormat(getMimeType()) && findPiece(targetSquare(event->pos())) == -1) { highlightedRect = targetSquare(event->pos()); event->setDropAction(Qt::MoveAction); event->accept(); } else { highlightedRect = QRect(); event->ignore(); } update(); }
void PuzzleWidget::dragMoveEvent(QDragMoveEvent *event) { QRect updateRect = highlightedRect.united(targetSquare(event->pos())); if (event->mimeData()->hasFormat("image/x-puzzle-piece") && findPiece(targetSquare(event->pos())) == -1) { highlightedRect = targetSquare(event->pos()); event->setDropAction(Qt::MoveAction); event->accept(); } else { highlightedRect = QRect(); event->ignore(); } update(updateRect); }
void RollitWidget::dropEvent(QDropEvent *event) { if (event->mimeData()->hasFormat("image/x-puzzle-piece") && findPiece(targetSquare(event->pos())) == -1) { if (gameBeg==0) gameBeg++; QByteArray pieceData = event->mimeData()->data("image/x-puzzle-piece"); QDataStream dataStream(&pieceData, QIODevice::ReadOnly); QRect square = targetSquare(event->pos()); QRect all(0,0,640,640); QPoint cent=square.center(); int x=cent.x()/80; int y=cent.y()/80; if(playbynetwork) { essayer_coup(x,y,colo,1); update(); envoyer_coup(x,y,colo); canPlay=false; } else { essayer_coup(x,y,NOIR,1); update(); int xx=x; int yy=y; approfondissement_iteratif(BLANC, &xx, &yy); if (!essayer_coup(xx, yy, BLANC,1)) { } lastx=xx; lasty=yy; update(); toString(); } QPixmap pixmap; QPoint location; dataStream >> pixmap >> location; pieceLocations.append(location); piecePixmaps.append(pixmap); pieceRects.append(square); highlightedRect = QRect(); update(square); update(all); event->setDropAction(Qt::MoveAction); event->accept(); if (location == QPoint(square.x()/80, square.y()/80)) { // inPlace++; } } else {