/************************************************************************ ** ** @file vitem.cpp ** @author Roman Telezhinsky ** @date November 15, 2013 ** ** @brief ** @copyright ** This source code is part of the Valentine project, a pattern making ** program, whose allow create and modeling patterns of clothing. ** Copyright (C) 2013 Valentina project ** All Rights Reserved. ** ** Valentina is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** Valentina is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with Valentina. If not, see . ** *************************************************************************/ #include "vitem.h" #include VItem::VItem (const QPainterPath & path, int numInList, QGraphicsItem * parent ) :QGraphicsPathItem ( path, parent ), numInOutList(numInList), paper(0) { } void VItem::checkItemChange() { QRectF rect; if(paper == 0){ qDebug()<<"Don't set paper for detail!!!!"; rect = this->scene()->sceneRect(); } else { rect = paper->sceneBoundingRect(); } QRectF myrect = sceneBoundingRect(); if ( rect.contains( myrect )==true ) { qDebug()<<"Не виходить за рамки листа"; setPen(QPen(Qt::black, widthMainLine)); emit itemOut( numInOutList, false ); } else { qDebug()<<"Виходить за рамки листа"; setPen(QPen(Qt::red, widthMainLine)); emit itemOut( numInOutList, true ); } QList list = QGraphicsItem::collidingItems (); if ( list.size() - 2 > 0 ) { list.append( this ); setPen(QPen(Qt::red, widthMainLine)); qDebug()<<"Деталь перетинається з іншими деталями "< itemList; itemList.append( this ); qDebug()<<"Деталь більше не перетинається з іншими деталями "<