diff --git a/widgets/vmaingraphicsview.cpp b/widgets/vmaingraphicsview.cpp index ddb07efe5..d07bcc501 100644 --- a/widgets/vmaingraphicsview.cpp +++ b/widgets/vmaingraphicsview.cpp @@ -27,12 +27,12 @@ VMainGraphicsView::VMainGraphicsView(QWidget *parent) : QGraphicsView(parent), _numScheduledScalings(0){ - QGraphicsView::setResizeAnchor(QGraphicsView::AnchorUnderMouse); - setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); + this->setResizeAnchor(QGraphicsView::AnchorUnderMouse); + this->setTransformationAnchor(QGraphicsView::AnchorUnderMouse); + this->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); } void VMainGraphicsView::wheelEvent(QWheelEvent *event){ - // If you press CTRL this code will execute int numDegrees = event->delta() / 8; int numSteps = numDegrees / 15; // see QWheelEvent documentation _numScheduledScalings += numSteps; @@ -51,7 +51,7 @@ void VMainGraphicsView::wheelEvent(QWheelEvent *event){ void VMainGraphicsView::scalingTime(qreal x){ Q_UNUSED(x); qreal factor = 1.0 + qreal(_numScheduledScalings) / 300.0; - if (QApplication::keyboardModifiers() == Qt::ControlModifier){ + if (QApplication::keyboardModifiers() == Qt::ControlModifier){// If you press CTRL this code will execute scale(factor, factor); } else { if(_numScheduledScalings < 0){ @@ -70,3 +70,19 @@ void VMainGraphicsView::animFinished(){ } sender()->~QObject(); } + +void VMainGraphicsView::mousePressEvent(QMouseEvent *mousePress){ + if(mousePress->button() & Qt::LeftButton){ + switch(QGuiApplication::keyboardModifiers()){ + case Qt::ControlModifier: + QGraphicsView::setDragMode(QGraphicsView::ScrollHandDrag); + QGraphicsView::mousePressEvent(mousePress); + break; + } + } +} + +void VMainGraphicsView::mouseReleaseEvent(QMouseEvent *event){ + QGraphicsView::mouseReleaseEvent ( event ); + QGraphicsView::setDragMode( QGraphicsView::RubberBandDrag ); +} diff --git a/widgets/vmaingraphicsview.h b/widgets/vmaingraphicsview.h index 099d9f845..39d1687ff 100644 --- a/widgets/vmaingraphicsview.h +++ b/widgets/vmaingraphicsview.h @@ -29,15 +29,17 @@ class VMainGraphicsView : public QGraphicsView{ public: explicit VMainGraphicsView(QWidget *parent = 0); signals: +public slots: + void scalingTime(qreal x); + void animFinished(); protected: /** * @brief wheelEvent обробник повороту колеса мишки. * @param event передається подія. */ void wheelEvent ( QWheelEvent * event ); -public slots: - void scalingTime(qreal x); - void animFinished(); + void mousePressEvent(QMouseEvent *mousePress); + void mouseReleaseEvent(QMouseEvent *event); private: qint32 _numScheduledScalings; }; diff --git a/widgets/vtablegraphicsview.cpp b/widgets/vtablegraphicsview.cpp index b2f9d57f1..ce5cd7548 100644 --- a/widgets/vtablegraphicsview.cpp +++ b/widgets/vtablegraphicsview.cpp @@ -35,10 +35,10 @@ VTableGraphicsView::VTableGraphicsView(QGraphicsScene* pScene, QWidget *parent) void VTableGraphicsView::selectionChanged(){ QList listSelectedItems = scene()->selectedItems(); if( listSelectedItems.isEmpty() == true ){ - qDebug() << "деталь не знайдено"; + qDebug() << tr("detail don't find"); emit itemChect(true); } else { - qDebug() << "деталь знайдено"; + qDebug() << tr("detail find"); emit itemChect(false); } }