diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index c617900e..31d1b277 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -176,17 +176,6 @@ UBGraphicsScene* UBBoardView::scene () return qobject_cast (QGraphicsView::scene ()); } -void UBBoardView::hideEvent (QHideEvent * event) -{ - Q_UNUSED (event); - emit hidden (); -} - -void UBBoardView::showEvent (QShowEvent * event) -{ - Q_UNUSED (event); - emit shown (); -} void UBBoardView::keyPressEvent (QKeyEvent *event) { @@ -860,19 +849,19 @@ bool UBBoardView::directTabletEvent(QEvent *event) { QTabletEvent *tEvent = static_cast(event); tEvent = new QTabletEvent(tEvent->type() - , mapFromGlobal(tEvent->pos()) - , tEvent->globalPos() - , tEvent->hiResGlobalPos() - , tEvent->device() - , tEvent->pointerType() - , tEvent->pressure() - , tEvent->xTilt() - , tEvent->yTilt() - , tEvent->tangentialPressure() - , tEvent->rotation() - , tEvent->z() - , tEvent->modifiers() - , tEvent->uniqueId()); + , mapFromGlobal(tEvent->pos()) + , tEvent->globalPos() + , tEvent->hiResGlobalPos() + , tEvent->device() + , tEvent->pointerType() + , tEvent->pressure() + , tEvent->xTilt() + , tEvent->yTilt() + , tEvent->tangentialPressure() + , tEvent->rotation() + , tEvent->z() + , tEvent->modifiers() + , tEvent->uniqueId()); if (geometry().contains(tEvent->pos())) { @@ -928,7 +917,7 @@ void UBBoardView::longPressEvent() UBDrawingController *drawingController = UBDrawingController::drawingController(); UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController ()->stylusTool (); - disconnect(&mLongPressTimer, SIGNAL(timeout()), this, SLOT(longPressEvent())); + disconnect(&mLongPressTimer, SIGNAL(timeout()), this, SLOT(longPressEvent())); if (UBStylusTool::Selector == currentTool) { diff --git a/src/board/UBBoardView.h b/src/board/UBBoardView.h index 4f86e02f..ad2dcf6d 100644 --- a/src/board/UBBoardView.h +++ b/src/board/UBBoardView.h @@ -36,149 +36,144 @@ class UBBoardView : public QGraphicsView { Q_OBJECT - public: +public: - UBBoardView(UBBoardController* pController, QWidget* pParent = 0, bool isControl = false, bool isDesktop = false); - UBBoardView(UBBoardController* pController, int pStartLayer, int pEndLayer, QWidget* pParent = 0, bool isControl = false, bool isDesktop = false); - virtual ~UBBoardView(); + UBBoardView(UBBoardController* pController, QWidget* pParent = 0, bool isControl = false, bool isDesktop = false); + UBBoardView(UBBoardController* pController, int pStartLayer, int pEndLayer, QWidget* pParent = 0, bool isControl = false, bool isDesktop = false); + virtual ~UBBoardView(); - UBGraphicsScene* scene(); + UBGraphicsScene* scene(); - void forcedTabletRelease(); + void forcedTabletRelease(); - void setToolCursor(int tool); + void setToolCursor(int tool); - void rubberItems(); - void moveRubberedItems(QPointF movingVector); + void rubberItems(); + void moveRubberedItems(QPointF movingVector); - void setMultiselection(bool enable); - bool isMultipleSelectionEnabled() { return mMultipleSelectionIsEnabled; } -// work around for handling tablet events on MAC OS with Qt 4.8.0 and above + void setMultiselection(bool enable); + bool isMultipleSelectionEnabled() { return mMultipleSelectionIsEnabled; } + // work around for handling tablet events on MAC OS with Qt 4.8.0 and above #if defined(Q_WS_MACX) - bool directTabletEvent(QEvent *event); - QWidget *widgetForTabletEvent(QWidget *w, const QPoint &pos); + bool directTabletEvent(QEvent *event); + QWidget *widgetForTabletEvent(QWidget *w, const QPoint &pos); #endif - signals: +signals: - void resized(QResizeEvent* event); - void hidden(); - void shown(); - void clickOnBoard(); + void resized(QResizeEvent* event); + void shown(); + void clickOnBoard(); - protected: +protected: - bool itemIsLocked(QGraphicsItem *item); - bool isUBItem(QGraphicsItem *item); // we should to determine items who is not UB and use general scene behavior for them. - bool isCppTool(QGraphicsItem *item); - void handleItemsSelection(QGraphicsItem *item); - bool itemShouldReceiveMousePressEvent(QGraphicsItem *item); - bool itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item); - bool itemHaveParentWithType(QGraphicsItem *item, int type); - bool itemShouldBeMoved(QGraphicsItem *item); - QGraphicsItem* determineItemToPress(QGraphicsItem *item); - QGraphicsItem* determineItemToMove(QGraphicsItem *item); - void handleItemMousePress(QMouseEvent *event); - void handleItemMouseMove(QMouseEvent *event); + bool itemIsLocked(QGraphicsItem *item); + bool isUBItem(QGraphicsItem *item); // we should to determine items who is not UB and use general scene behavior for them. + bool isCppTool(QGraphicsItem *item); + void handleItemsSelection(QGraphicsItem *item); + bool itemShouldReceiveMousePressEvent(QGraphicsItem *item); + bool itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item); + bool itemHaveParentWithType(QGraphicsItem *item, int type); + bool itemShouldBeMoved(QGraphicsItem *item); + QGraphicsItem* determineItemToPress(QGraphicsItem *item); + QGraphicsItem* determineItemToMove(QGraphicsItem *item); + void handleItemMousePress(QMouseEvent *event); + void handleItemMouseMove(QMouseEvent *event); - virtual bool event (QEvent * e); + virtual bool event (QEvent * e); - virtual void keyPressEvent(QKeyEvent *event); - virtual void keyReleaseEvent(QKeyEvent *event); - virtual void tabletEvent(QTabletEvent * event); - virtual void mouseDoubleClickEvent(QMouseEvent *event); - virtual void mousePressEvent(QMouseEvent *event); - virtual void mouseMoveEvent(QMouseEvent *event); - virtual void mouseReleaseEvent(QMouseEvent *event); - virtual void wheelEvent(QWheelEvent *event); - virtual void leaveEvent ( QEvent * event); + virtual void keyPressEvent(QKeyEvent *event); + virtual void keyReleaseEvent(QKeyEvent *event); + virtual void tabletEvent(QTabletEvent * event); + virtual void mouseDoubleClickEvent(QMouseEvent *event); + virtual void mousePressEvent(QMouseEvent *event); + virtual void mouseMoveEvent(QMouseEvent *event); + virtual void mouseReleaseEvent(QMouseEvent *event); + virtual void wheelEvent(QWheelEvent *event); + virtual void leaveEvent ( QEvent * event); - virtual void focusOutEvent ( QFocusEvent * event ); + virtual void focusOutEvent ( QFocusEvent * event ); - virtual void drawItems(QPainter *painter, int numItems, - QGraphicsItem *items[], - const QStyleOptionGraphicsItem options[]); + virtual void drawItems(QPainter *painter, int numItems, + QGraphicsItem *items[], + const QStyleOptionGraphicsItem options[]); -// virtual void dragEnterEvent(QDragEnterEvent * event); - virtual void dropEvent(QDropEvent *event); - virtual void dragMoveEvent(QDragMoveEvent *event); + virtual void dropEvent(QDropEvent *event); + virtual void dragMoveEvent(QDragMoveEvent *event); - virtual void resizeEvent(QResizeEvent * event); + virtual void resizeEvent(QResizeEvent * event); - virtual void drawBackground(QPainter *painter, const QRectF &rect); + virtual void drawBackground(QPainter *painter, const QRectF &rect); - virtual void showEvent(QShowEvent * event); - virtual void hideEvent(QHideEvent * event); +private: - private: + void init(); - void init(); + inline bool shouldDisplayItem(QGraphicsItem *item) + { + bool ok; + int itemLayerType = item->data(UBGraphicsItemData::ItemLayerType).toInt(&ok); + return (ok && (itemLayerType >= mStartLayer && itemLayerType <= mEndLayer)); + } - inline bool shouldDisplayItem(QGraphicsItem *item) - { - bool ok; - int itemLayerType = item->data(UBGraphicsItemData::ItemLayerType).toInt(&ok); - return (ok && (itemLayerType >= mStartLayer && itemLayerType <= mEndLayer)); - } + QList processMimeData(const QMimeData* pMimeData); - QList processMimeData(const QMimeData* pMimeData); + UBBoardController* mController; - UBBoardController* mController; + int mStartLayer, mEndLayer; + bool mFilterZIndex; - int mStartLayer, mEndLayer; - bool mFilterZIndex; + bool mTabletStylusIsPressed; + bool mUsingTabletEraser; - bool mTabletStylusIsPressed; - bool mUsingTabletEraser; + bool mPendingStylusReleaseEvent; - bool mPendingStylusReleaseEvent; + bool mMouseButtonIsPressed; + QPointF mPreviousPoint; + QPoint mMouseDownPos; - bool mMouseButtonIsPressed; - QPointF mPreviousPoint; - QPoint mMouseDownPos; + bool mPenPressureSensitive; + bool mMarkerPressureSensitive; + bool mUseHighResTabletEvent; - bool mPenPressureSensitive; - bool mMarkerPressureSensitive; - bool mUseHighResTabletEvent; + QRubberBand *mRubberBand; + bool mIsCreatingTextZone; + bool mIsCreatingSceneGrabZone; - QRubberBand *mRubberBand; - bool mIsCreatingTextZone; - bool mIsCreatingSceneGrabZone; + bool isAbsurdPoint(QPoint point); - bool isAbsurdPoint(QPoint point); + bool mVirtualKeyboardActive; + bool mOkOnWidget; - bool mVirtualKeyboardActive; - bool mOkOnWidget; + bool mWidgetMoved; + QPointF mLastPressedMousePos; + QGraphicsItem *movingItem; + QMouseEvent *suspendedMousePressEvent; - bool mWidgetMoved; - QPointF mLastPressedMousePos; - QGraphicsItem *movingItem; - QMouseEvent *suspendedMousePressEvent; + bool moveRubberBand; + UBRubberBand *mUBRubberBand; - bool moveRubberBand; - UBRubberBand *mUBRubberBand; + QList mRubberedItems; + QSet mJustSelectedItems; - QList mRubberedItems; - QSet mJustSelectedItems; + int mLongPressInterval; + QTimer mLongPressTimer; - int mLongPressInterval; - QTimer mLongPressTimer; + bool mIsDragInProgress; + bool mMultipleSelectionIsEnabled; + bool bIsControl; + bool bIsDesktop; + bool mRubberBandInPlayMode; - bool mIsDragInProgress; - bool mMultipleSelectionIsEnabled; - bool bIsControl; - bool bIsDesktop; - bool mRubberBandInPlayMode; + static bool hasSelectedParents(QGraphicsItem * item); - static bool hasSelectedParents(QGraphicsItem * item); +private slots: - private slots: + void settingChanged(QVariant newValue); - void settingChanged(QVariant newValue); +public slots: - public slots: - - void virtualKeyboardActivated(bool b); - void longPressEvent(); + void virtualKeyboardActivated(bool b); + void longPressEvent(); }; diff --git a/src/tools/UBAbstractDrawRuler.h b/src/tools/UBAbstractDrawRuler.h index d286ed87..f8955381 100644 --- a/src/tools/UBAbstractDrawRuler.h +++ b/src/tools/UBAbstractDrawRuler.h @@ -44,9 +44,6 @@ public: virtual void DrawLine(const QPointF& position, qreal width); virtual void EndLine(); - signals: - void hidden(); - protected: void paint(); diff --git a/src/tools/UBGraphicsCompass.cpp b/src/tools/UBGraphicsCompass.cpp index c575e16d..6d321986 100644 --- a/src/tools/UBGraphicsCompass.cpp +++ b/src/tools/UBGraphicsCompass.cpp @@ -222,7 +222,7 @@ void UBGraphicsCompass::mousePressEvent(QGraphicsSceneMouseEvent *event) } QGraphicsRectItem::mousePressEvent(event); } - else + else closing = true; mResizeSvgItem->setVisible(mShowButtons && mResizing); @@ -299,8 +299,6 @@ void UBGraphicsCompass::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) else if (closeButtonRect().contains(event->pos())) { hide(); - - emit hidden(); event->accept(); } else diff --git a/src/tools/UBGraphicsCompass.h b/src/tools/UBGraphicsCompass.h index 7f08c65e..96263ffe 100644 --- a/src/tools/UBGraphicsCompass.h +++ b/src/tools/UBGraphicsCompass.h @@ -51,10 +51,6 @@ class UBGraphicsCompass: public QObject, public QGraphicsRectItem, public UBItem virtual void copyItemParameters(UBItem *copy) const; - signals: - - void hidden(); - protected: virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *styleOption, QWidget *widget); virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); diff --git a/src/tools/UBGraphicsProtractor.cpp b/src/tools/UBGraphicsProtractor.cpp index ae54063d..e7cd626d 100644 --- a/src/tools/UBGraphicsProtractor.cpp +++ b/src/tools/UBGraphicsProtractor.cpp @@ -240,7 +240,6 @@ void UBGraphicsProtractor::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) case Close : hide(); - emit hidden(); break; case MoveMarker : diff --git a/src/tools/UBGraphicsRuler.cpp b/src/tools/UBGraphicsRuler.cpp index cdccebde..1ecaaf2a 100644 --- a/src/tools/UBGraphicsRuler.cpp +++ b/src/tools/UBGraphicsRuler.cpp @@ -371,7 +371,6 @@ void UBGraphicsRuler::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) else if (closeButtonRect().contains(event->pos())) { hide(); - emit hidden(); event->accept(); } else diff --git a/src/tools/UBGraphicsTriangle.cpp b/src/tools/UBGraphicsTriangle.cpp index 5dbba7c5..ee53dcc9 100644 --- a/src/tools/UBGraphicsTriangle.cpp +++ b/src/tools/UBGraphicsTriangle.cpp @@ -33,7 +33,7 @@ #include "core/memcheck.h" const QRect UBGraphicsTriangle::sDefaultRect = QRect(0, 0, 800, 400); -const UBGraphicsTriangle::UBGraphicsTriangleOrientation UBGraphicsTriangle::sDefaultOrientation = +const UBGraphicsTriangle::UBGraphicsTriangleOrientation UBGraphicsTriangle::sDefaultOrientation = UBGraphicsTriangle::BottomLeft; UBGraphicsTriangle::UBGraphicsTriangle() @@ -114,7 +114,7 @@ void UBGraphicsTriangle::copyItemParameters(UBItem *copy) const { UBGraphicsTriangle* cp = dynamic_cast(copy); if (cp) - { + { cp->setPos(this->pos()); cp->setPolygon(this->polygon()); cp->setTransform(this->transform()); @@ -332,7 +332,7 @@ void UBGraphicsTriangle::paintGraduations(QPainter *painter) if (lineY <= rotationCenter().y() - ky * graduationHeight) break; } - + painter->drawLine(QLine(graduationX, rotationCenter().y(), graduationX, rotationCenter().y() - ky * graduationHeight)); if (0 == millimeters % UBGeometryUtils::millimetersPerCentimeter) { @@ -371,7 +371,7 @@ void UBGraphicsTriangle::paintGraduations(QPainter *painter) if (bText) painter->drawText( - QRectF(graduationX - textWidth / 2, + QRectF(graduationX - textWidth / 2, textY, textWidth, textHeight), Qt::AlignVCenter, text); @@ -418,23 +418,23 @@ QRectF UBGraphicsTriangle::closeButtonRect() const switch(mOrientation) { case BottomLeft: - return QRectF(B2.x() - mCloseSvgItem->boundingRect().width() - 5, - B2.y() - mCloseSvgItem->boundingRect().height() - 5, + return QRectF(B2.x() - mCloseSvgItem->boundingRect().width() - 5, + B2.y() - mCloseSvgItem->boundingRect().height() - 5, mCloseSvgItem->boundingRect().width(), mCloseSvgItem->boundingRect().height()); case TopLeft: - return QRectF(B2.x() - mCloseSvgItem->boundingRect().width() - 5, - B2.y() + 5, + return QRectF(B2.x() - mCloseSvgItem->boundingRect().width() - 5, + B2.y() + 5, mCloseSvgItem->boundingRect().width(), mCloseSvgItem->boundingRect().height()); case TopRight: - return QRectF(B2.x() + 5, - B2.y() + 5, + return QRectF(B2.x() + 5, + B2.y() + 5, mCloseSvgItem->boundingRect().width(), mCloseSvgItem->boundingRect().height()); case BottomRight: - return QRectF(B2.x() + 5, - B2.y() - mCloseSvgItem->boundingRect().height() - 5, + return QRectF(B2.x() + 5, + B2.y() - mCloseSvgItem->boundingRect().height() - 5, mCloseSvgItem->boundingRect().width(), mCloseSvgItem->boundingRect().height()); } @@ -466,7 +466,7 @@ QPolygonF UBGraphicsTriangle::resize1Polygon() const QPointF P1(C1.x() + x1 * sArrowLength, C1.y()); QPointF P2(C1.x() + x1 * sArrowLength * rect().width()/C, C1.y() + y1 * sArrowLength * rect().height() / C); QPolygonF p; - p << C1 << P1 << P2; + p << C1 << P1 << P2; return p; } @@ -493,10 +493,10 @@ QPolygonF UBGraphicsTriangle::resize2Polygon() const break; } QPointF P1(A1.x(), A1.y() + y1 * sArrowLength); - QPointF P2(A1.x() + x1 * sArrowLength * rect().width()/C, + QPointF P2(A1.x() + x1 * sArrowLength * rect().width()/C, A1.y() + y1 * sArrowLength * rect().height() / C); QPolygonF p; - p << A1 << P1 << P2; + p << A1 << P1 << P2; return p; } @@ -506,23 +506,23 @@ QRectF UBGraphicsTriangle::hFlipRect() const switch(mOrientation) { case BottomLeft: - return QRectF(B2.x() - mHFlipSvgItem->boundingRect().width() - 5, - B2.y() - mHFlipSvgItem->boundingRect().height() - 5 - dy, + return QRectF(B2.x() - mHFlipSvgItem->boundingRect().width() - 5, + B2.y() - mHFlipSvgItem->boundingRect().height() - 5 - dy, mHFlipSvgItem->boundingRect().width(), mHFlipSvgItem->boundingRect().height()); case TopLeft: - return QRectF(B2.x() - mHFlipSvgItem->boundingRect().width() - 5, - B2.y() + 5 + dy, + return QRectF(B2.x() - mHFlipSvgItem->boundingRect().width() - 5, + B2.y() + 5 + dy, mHFlipSvgItem->boundingRect().width(), mHFlipSvgItem->boundingRect().height()); case TopRight: - return QRectF(B2.x() + 5, - B2.y() + 5 + dy, + return QRectF(B2.x() + 5, + B2.y() + 5 + dy, mHFlipSvgItem->boundingRect().width(), mHFlipSvgItem->boundingRect().height()); case BottomRight: - return QRectF(B2.x() + 5, - B2.y() - mHFlipSvgItem->boundingRect().height() - 5 - dy, + return QRectF(B2.x() + 5, + B2.y() - mHFlipSvgItem->boundingRect().height() - 5 - dy, mHFlipSvgItem->boundingRect().width(), mHFlipSvgItem->boundingRect().height()); } @@ -535,23 +535,23 @@ QRectF UBGraphicsTriangle::vFlipRect() const switch(mOrientation) { case BottomLeft: - return QRectF(B2.x() - mVFlipSvgItem->boundingRect().width() - 5, - B2.y() - mVFlipSvgItem->boundingRect().height() - 5 - dy, + return QRectF(B2.x() - mVFlipSvgItem->boundingRect().width() - 5, + B2.y() - mVFlipSvgItem->boundingRect().height() - 5 - dy, mVFlipSvgItem->boundingRect().width(), mVFlipSvgItem->boundingRect().height()); case TopLeft: - return QRectF(B2.x() - mVFlipSvgItem->boundingRect().width() - 5, - B2.y() + 5 + dy, + return QRectF(B2.x() - mVFlipSvgItem->boundingRect().width() - 5, + B2.y() + 5 + dy, mVFlipSvgItem->boundingRect().width(), mVFlipSvgItem->boundingRect().height()); case TopRight: - return QRectF(B2.x() + 5, - B2.y() + 5 + dy, + return QRectF(B2.x() + 5, + B2.y() + 5 + dy, mVFlipSvgItem->boundingRect().width(), mVFlipSvgItem->boundingRect().height()); case BottomRight: - return QRectF(B2.x() + 5, - B2.y() - mVFlipSvgItem->boundingRect().height() - 5 - dy, + return QRectF(B2.x() + 5, + B2.y() - mVFlipSvgItem->boundingRect().height() - 5 - dy, mVFlipSvgItem->boundingRect().width(), mVFlipSvgItem->boundingRect().height()); } @@ -605,13 +605,13 @@ void UBGraphicsTriangle::mousePressEvent(QGraphicsSceneMouseEvent *event) mResizing1 = true; event->accept(); } - else + else if (resize2Polygon().containsPoint(event->pos().toPoint(), Qt::OddEvenFill)) { mResizing2 = true; event->accept(); } - else + else if(rotateRect().contains(event->pos())) { mRotating = true; @@ -631,7 +631,7 @@ void UBGraphicsTriangle::mousePressEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsTriangle::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - + if (!mResizing1 && !mResizing2 && !mRotating) { QGraphicsItem::mouseMoveEvent(event); @@ -716,7 +716,6 @@ void UBGraphicsTriangle::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) else if (closeButtonRect().contains(event->pos())) { hide(); - emit hidden(); event->accept(); } else if (hFlipRect().contains(event->pos()))