diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 34d94bf2..a1fbd435 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -158,7 +158,7 @@ void UBBoardController::setupViews() mControlLayout = new QHBoxLayout(mControlContainer); mControlLayout->setContentsMargins(0, 0, 0, 0); - mControlView = new UBBoardView(this, mControlContainer); + mControlView = new UBBoardView(this, mControlContainer, true); mControlView->setInteractive(true); mControlView->setMouseTracking(true); diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index 4786c9d0..0c9b6dbe 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -62,7 +62,7 @@ #include "core/memcheck.h" -UBBoardView::UBBoardView (UBBoardController* pController, QWidget* pParent) +UBBoardView::UBBoardView (UBBoardController* pController, QWidget* pParent, bool pIsControl) : QGraphicsView (pParent) , mController (pController) , mIsCreatingTextZone (false) @@ -72,6 +72,7 @@ UBBoardView::UBBoardView (UBBoardController* pController, QWidget* pParent) , mLongPressInterval(1000) , mIsDragInProgress(false) , mMultipleSelectionIsEnabled(false) +, isControl(pIsControl) { init (); @@ -81,13 +82,14 @@ UBBoardView::UBBoardView (UBBoardController* pController, QWidget* pParent) mLongPressTimer.setSingleShot(true); } -UBBoardView::UBBoardView (UBBoardController* pController, int pStartLayer, int pEndLayer, QWidget* pParent) +UBBoardView::UBBoardView (UBBoardController* pController, int pStartLayer, int pEndLayer, QWidget* pParent, bool pIscontrol) : QGraphicsView (pParent) , mController (pController) , suspendedMousePressEvent(NULL) , mLongPressInterval(1000) , mIsDragInProgress(false) , mMultipleSelectionIsEnabled(false) +, isControl(pIscontrol) { init (); @@ -124,6 +126,8 @@ void UBBoardView::init () setHorizontalScrollBarPolicy (Qt::ScrollBarAlwaysOff); setAcceptDrops (true); + setOptimizationFlag (QGraphicsView::IndirectPainting); // enable UBBoardView::drawItems filter + mTabletStylusIsPressed = false; mMouseButtonIsPressed = false; mPendingStylusReleaseEvent = false; @@ -729,6 +733,11 @@ void UBBoardView::longPressEvent() void UBBoardView::mousePressEvent (QMouseEvent *event) { + if (!isControl) { + event->ignore(); + return; + } + mIsDragInProgress = false; if (isAbsurdPoint (event->pos ())) diff --git a/src/board/UBBoardView.h b/src/board/UBBoardView.h index 34cf7fc7..bcbf4723 100644 --- a/src/board/UBBoardView.h +++ b/src/board/UBBoardView.h @@ -31,8 +31,8 @@ class UBBoardView : public QGraphicsView public: - UBBoardView(UBBoardController* pController, QWidget* pParent = 0); - UBBoardView(UBBoardController* pController, int pStartLayer, int pEndLayer, QWidget* pParent = 0); + UBBoardView(UBBoardController* pController, QWidget* pParent = 0, bool pIsControl = false); + UBBoardView(UBBoardController* pController, int pStartLayer, int pEndLayer, QWidget* pParent = 0, bool pIscontrol = false); virtual ~UBBoardView(); UBGraphicsScene* scene(); @@ -147,6 +147,7 @@ class UBBoardView : public QGraphicsView bool mIsDragInProgress; bool mMultipleSelectionIsEnabled; + bool isControl; private slots: