Esempio n. 1
0
void QtSegmentControl::mousePressEvent(QMouseEvent *event)
{
    int index = segmentAt(event->pos());
    if (segmentEnabled(index)) {
        d->wasPressed = d->focusIndex = d->pressedIndex = segmentAt(event->pos());
        d->postUpdate(d->pressedIndex);

        Q_EMIT segmentClicked(index);
    }
}
Esempio n. 2
0
void GraphicsScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
    switch(event->button()) {
    case Qt::LeftButton:
        switch(this->mode) {
            case POINT:
                //http://forum.qtfr.org/discussion/13407/selection-multiple-avancee-dans-une-qgraphicsscene
                emit pointClicked(event->scenePos());
                break;
            case SEGMENT: {
                QGraphicsScene::mouseReleaseEvent(event);
                QList<QGraphicsItem*> l = selectedItems();
                //if(itemAt(event->scenePos(), QTransform()) == NULL) break;
                //TODO
                if(l.size() >= 2) {
                    emit segmentClicked(l);
                    for(auto i : l)
                        ((PointItem*)i)->select(false);
                    ((PointItem*)itemAt(event->scenePos(), QTransform()))->select(true);
                }
                } break;
            case SUPPRESSION:

                break;
        }
        break;
    case Qt::RightButton:
        clickOnSelection(event->scenePos());
        QGraphicsScene::mouseReleaseEvent(event);
        break;
    case Qt::MiddleButton:
        //translate
        break;
    default:
        break;
    }
}