void GraphicsSelectionItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
	if (m_isResizing)
	{
		qreal dx = event->pos().x() - rect().x();
		qreal dy = event->pos().y() - rect().y();
		prepareGeometryChange();

		dx = qBound(MIN_ITEM_SIZE, dx, MAX_ITEM_SIZE);
		dy = qBound(MIN_ITEM_SIZE, dy, MAX_ITEM_SIZE);

		setRect(QRectF(rect().topLeft(), QSizeF(dx, dy)));
		emit rectChanged(rect());
	}
	else if ((event->buttons() & Qt::LeftButton) == Qt::LeftButton)
	{
		prepareGeometryChange();
		setRect(QRectF(rect().topLeft() + event->scenePos() - event->lastScenePos(), rect().size()));
		emit rectChanged(rect());

	}
	else
	{
		QGraphicsItem::mouseMoveEvent(event);
	}
}
Example #2
0
void QViewport::setRect(const QRectF &rect)
{
    Q_D(QViewport);
    if (rect != d->m_rect) {
        d->m_rect = rect;
        emit rectChanged();
    }
}
Example #3
0
void SubtitleFilter::setRect(const QRectF &r)
{
    DPTR_D(SubtitleFilter);
    if (d.rect == r)
        return;
    d.rect = r;
    emit rectChanged();
}
Example #4
0
void HitBox::setRect(const QRectF &rect) {
    if (m_rect == rect) {
        return;
    }

    m_rect = rect;
    emit rectChanged(rect);
}
Example #5
0
/*!
 * \brief ImageArea::mouseReleaseEvent
 * \param e
 */
void ImageArea::mouseReleaseEvent(QMouseEvent* e)
{
    if (e->button() == Qt::LeftButton) {
        setX2(e->x());
        setY2(e->y());
        setX2(std::min(e->x(), ImageStorage::getInstance().getImageWidth() - 1));
        setY2(std::min(e->y(), ImageStorage::getInstance().getImageHeight() - 1));
        rectnotdrawing = true;
        emit rectChanged(bounds);
        update();
    }
}
CanvasContainer::CanvasContainer(QWidget *parent) :
    QGraphicsView(parent), proxy(0), scaleSliderWidget(0),
    smoothScaleFlag(true)
{
    setCacheMode(QGraphicsView::CacheBackground);
    setAlignment(Qt::AlignTop | Qt::AlignLeft);
    setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
    setResizeAnchor(QGraphicsView::AnchorUnderMouse);
    scene = new QGraphicsScene(this);
    setScene(scene);

    auto rc = [&](){
        emit rectChanged(visualRect().toRect());
    };
    connect(horizontalScrollBar(), &QScrollBar::valueChanged,
            rc);
    connect(verticalScrollBar(), &QScrollBar::valueChanged,
            rc);
}
void CanvasContainer::setScaleFactor(qreal factor)
{
    factor = qBound(MIN_SCALE_FACTOR, factor, MAX_SCALE_FACTOR);
    if (proxy)
    {
        if (smoothScaleFlag)
        {
            if (factor < 1)
                setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
            else
            {
                setRenderHint(QPainter::Antialiasing, false);
                setRenderHint(QPainter::SmoothPixmapTransform, false);
            }
        }
        proxy->setScale(factor);
        setSceneRect(scene->itemsBoundingRect());
        emit scaled(factor);
        emit rectChanged(visualRect().toRect());
    }
}
Example #8
0
void AnimationRect::_setRect(const sf::IntRect& rect) {
	this->rect = rect;
	emit rectChanged(rect);
}
Example #9
0
/*!
 * \brief Processor::run
 */
void VideoProcessor::run()
{
    QVector<int> lightPixelsNumbers;
    QVector<double> lightPixelsMeans;
    QVector<double> timeStamps;
    
    if(autodetection){
        emit detection();
        QRect rect = lightDetector->detectLight(filename, qMakePair(range.first, range.second)); 
        if(stop){
            stop = false;
            return;
        }
        imageProcessor->setBounds(rect);
        emit rectChanged(rect);
    }
    
    CaptureWrapper capture(filename);
    try{
        capture.isOpened();
        
        int frameNumber = int(capture.get(CV_CAP_PROP_FRAME_COUNT));
        int fps = Utils::Video::getAVIFPS(filename.toStdString());
        
        lightDetector->fixRange(range, fps, frameNumber);
        
        if(range.first >= range.second 
                && range.first > std::numeric_limits<double>::epsilon() 
                && range.second > std::numeric_limits<double>::epsilon()){
            return;
        }
        
        int absIndex = 0;
        
        for(int i = 0; i < int(range.first * fps); ++i, ++absIndex){
            capture.grab();
        }
        
        cv::Mat frame;
        
        for(int i = int(range.first * fps); i < int(range.second * fps); i++){
            if (stop) {
                stop = false;
                break;
            }
            
            capture >> frame;
            
            cv::Mat grayFrame;
            cv::cvtColor(frame, grayFrame, CV_BGR2GRAY, 1);
            cv::flip(grayFrame, grayFrame, 0);
            
            QPair<int, double> processingResult;
            
            if(imageProcessor){
                imageProcessor->setH_size(QSize(640, 480));
                processingResult = imageProcessor->process(grayFrame);
            }else{
                QMessageBox::critical(0, "Error", "No image processor is set!\nContact with developer!");
                processingResult = qMakePair(0, 0.0l);
            }
            
            lightPixelsNumbers.push_back(processingResult.first);
            lightPixelsMeans.push_back(processingResult.second);
            
            absIndex++;
            
            int relIndex = absIndex - int(range.first * fps);
            
            const int hundreds = int((range.second - range.first) * fps) / 100;
            if (hundreds && !(relIndex % (hundreds))) {
                emit progress(relIndex / (hundreds));
            }
            
            double timestamp = absIndex / double(fps);
            timeStamps.push_back(timestamp);
            emit time(timestamp);
            
            QThread::currentThread()->usleep(50);
        }
        
        
        std::shared_ptr<Results> results(new Results);
        results->resultsNumbers = lightPixelsNumbers;
        results->resultMeans = lightPixelsMeans;
        results->timeStamps = timeStamps;

    
        emit displayResults(results);
        emit progress(100);
    }
    catch(CaptureError e){
        QMessageBox::critical(0, "Error", e.getMessage());
        return;
    }
}