Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpenBoard
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lifo
Nicolas Ollinger
OpenBoard
Commits
4ace295a
Commit
4ace295a
authored
12 years ago
by
Claudio Valerio
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
imported some fixes by hand from 2.10.b.04
parent
43929f15
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
711 additions
and
690 deletions
+711
-690
UBSvgSubsetAdaptor.cpp
src/adaptors/UBSvgSubsetAdaptor.cpp
+11
-18
UBBoardController.cpp
src/board/UBBoardController.cpp
+1
-3
UBBoardView.cpp
src/board/UBBoardView.cpp
+495
-506
UBDrawingController.cpp
src/board/UBDrawingController.cpp
+0
-12
UB.h
src/core/UB.h
+17
-17
UBGraphicsItemDelegate.cpp
src/domain/UBGraphicsItemDelegate.cpp
+82
-66
UBGraphicsItemDelegate.h
src/domain/UBGraphicsItemDelegate.h
+15
-2
UBGraphicsMediaItem.cpp
src/domain/UBGraphicsMediaItem.cpp
+10
-11
UBGraphicsMediaItemDelegate.cpp
src/domain/UBGraphicsMediaItemDelegate.cpp
+5
-0
UBGraphicsScene.cpp
src/domain/UBGraphicsScene.cpp
+17
-28
UBGraphicsWidgetItem.cpp
src/domain/UBGraphicsWidgetItem.cpp
+3
-1
UBCoreGraphicsScene.cpp
src/frameworks/UBCoreGraphicsScene.cpp
+4
-10
UBNavigatorPalette.cpp
src/gui/UBNavigatorPalette.cpp
+4
-4
UBTeacherGuideWidget.cpp
src/gui/UBTeacherGuideWidget.cpp
+2
-2
UBTeacherGuideWidgetsTools.cpp
src/gui/UBTeacherGuideWidgetsTools.cpp
+42
-3
UBTeacherGuideWidgetsTools.h
src/gui/UBTeacherGuideWidgetsTools.h
+2
-0
UBThumbnailWidget.cpp
src/gui/UBThumbnailWidget.cpp
+1
-7
No files found.
src/adaptors/UBSvgSubsetAdaptor.cpp
View file @
4ace295a
...
@@ -597,12 +597,12 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
...
@@ -597,12 +597,12 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
QList
<
UBGraphicsPolygonItem
*>
polygonItems
QList
<
UBGraphicsPolygonItem
*>
polygonItems
=
polygonItemsFromPolylineSvg
(
mScene
->
isDarkBackground
()
?
Qt
::
white
:
Qt
::
black
);
=
polygonItemsFromPolylineSvg
(
mScene
->
isDarkBackground
()
?
Qt
::
white
:
Qt
::
black
);
QString
newParentId
=
QUuid
::
createUuid
().
toString
();
foreach
(
UBGraphicsPolygonItem
*
polygonItem
,
polygonItems
)
foreach
(
UBGraphicsPolygonItem
*
polygonItem
,
polygonItems
)
{
{
if
(
annotationGroup
)
if
(
annotationGroup
)
{
polygonItem
->
setStroke
(
annotationGroup
);
polygonItem
->
setStroke
(
annotationGroup
);
}
if
(
strokesGroup
){
if
(
strokesGroup
){
...
@@ -614,6 +614,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
...
@@ -614,6 +614,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
polygonItem
->
setData
(
UBGraphicsItemData
::
ItemLayerType
,
QVariant
(
UBItemLayerType
::
Graphic
));
polygonItem
->
setData
(
UBGraphicsItemData
::
ItemLayerType
,
QVariant
(
UBItemLayerType
::
Graphic
));
QString
parentId
=
mXmlReader
.
attributes
().
value
(
mNamespaceUri
,
"parent"
).
toString
();
QString
parentId
=
mXmlReader
.
attributes
().
value
(
mNamespaceUri
,
"parent"
).
toString
();
if
(
parentId
.
isEmpty
())
parentId
=
newParentId
;
Q_ASSERT
(
!
parentId
.
isEmpty
());
Q_ASSERT
(
!
parentId
.
isEmpty
());
UBGraphicsStrokesGroup
*
group
;
UBGraphicsStrokesGroup
*
group
;
if
(
!
mStrokesList
.
contains
(
parentId
)){
if
(
!
mStrokesList
.
contains
(
parentId
)){
...
@@ -623,8 +627,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
...
@@ -623,8 +627,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
else
else
group
=
mStrokesList
.
value
(
parentId
);
group
=
mStrokesList
.
value
(
parentId
);
group
->
addToGroup
(
polygonItem
);
polygonItem
->
show
();
polygonItem
->
show
();
}
}
}
}
else
if
(
mXmlReader
.
name
()
==
"image"
)
else
if
(
mXmlReader
.
name
()
==
"image"
)
{
{
...
@@ -984,10 +990,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
...
@@ -984,10 +990,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
{
{
if
(
mXmlReader
.
name
()
==
"g"
)
if
(
mXmlReader
.
name
()
==
"g"
)
{
{
// if(strokesGroup && mScene){
// mScene->addItem(strokesGroup);
// }
if
(
annotationGroup
)
if
(
annotationGroup
)
{
{
if
(
!
annotationGroup
->
polygons
().
empty
())
if
(
!
annotationGroup
->
polygons
().
empty
())
...
@@ -1010,12 +1012,12 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
...
@@ -1010,12 +1012,12 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
QMapIterator
<
QString
,
UBGraphicsStrokesGroup
*>
iterator
(
mStrokesList
);
QMapIterator
<
QString
,
UBGraphicsStrokesGroup
*>
iterator
(
mStrokesList
);
while
(
iterator
.
hasNext
())
{
while
(
iterator
.
hasNext
())
{
iterator
.
next
();
iterator
.
next
();
qDebug
()
<<
"Number of polygons : "
<<
(
int
)(((
UBGraphicsStrokesGroup
*
)
iterator
.
value
())
->
childItems
().
count
());
mScene
->
addItem
(
iterator
.
value
());
mScene
->
addItem
(
iterator
.
value
());
}
}
if
(
mScene
)
{
if
(
mScene
)
mScene
->
setModified
(
false
);
mScene
->
setModified
(
false
);
}
if
(
annotationGroup
&&
annotationGroup
->
polygons
().
empty
()){
if
(
annotationGroup
&&
annotationGroup
->
polygons
().
empty
()){
delete
annotationGroup
;
delete
annotationGroup
;
...
@@ -1557,17 +1559,8 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistGroupToDom(QGraphicsItem *gro
...
@@ -1557,17 +1559,8 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistGroupToDom(QGraphicsItem *gro
foreach
(
QGraphicsItem
*
item
,
groupItem
->
childItems
())
{
foreach
(
QGraphicsItem
*
item
,
groupItem
->
childItems
())
{
QUuid
tmpUuid
=
UBGraphicsScene
::
getPersonalUuid
(
item
);
QUuid
tmpUuid
=
UBGraphicsScene
::
getPersonalUuid
(
item
);
if
(
!
tmpUuid
.
isNull
())
{
if
(
!
tmpUuid
.
isNull
())
{
if
(
item
->
type
()
==
UBGraphicsGroupContainerItem
::
Type
&&
item
->
childItems
().
count
())
{
if
(
item
->
type
()
==
UBGraphicsGroupContainerItem
::
Type
&&
item
->
childItems
().
count
())
persistGroupToDom
(
item
,
curParent
,
groupDomDocument
);
persistGroupToDom
(
item
,
curParent
,
groupDomDocument
);
}
// else if (item->type() == UBGraphicsStrokesGroup::Type) {
// foreach (QGraphicsItem *polygonItem, item->childItems()) {
// QDomElement curPolygonElement = groupDomDocument->createElement(tElement);
// curPolygonElement.setAttribute(aId, tmpUuid.toString()
// + UBGraphicsItem::getOwnUuid(polygonItem).toString());
// curGroupElement.appendChild(curPolygonElement);
// }
// }
else
{
else
{
QDomElement
curSubElement
=
groupDomDocument
->
createElement
(
tElement
);
QDomElement
curSubElement
=
groupDomDocument
->
createElement
(
tElement
);
...
...
This diff is collapsed.
Click to expand it.
src/board/UBBoardController.cpp
View file @
4ace295a
...
@@ -357,9 +357,7 @@ void UBBoardController::setupToolbar()
...
@@ -357,9 +357,7 @@ void UBBoardController::setupToolbar()
void
UBBoardController
::
setToolCursor
(
int
tool
)
void
UBBoardController
::
setToolCursor
(
int
tool
)
{
{
if
(
mActiveScene
)
if
(
mActiveScene
)
{
mActiveScene
->
setToolCursor
(
tool
);
mActiveScene
->
setToolCursor
(
tool
);
}
mControlView
->
setToolCursor
(
tool
);
mControlView
->
setToolCursor
(
tool
);
}
}
...
@@ -648,7 +646,7 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item, bool bAsync)
...
@@ -648,7 +646,7 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item, bool bAsync)
QList
<
QGraphicsItem
*>
duplicatedItems
;
QList
<
QGraphicsItem
*>
duplicatedItems
;
QList
<
QGraphicsItem
*>
children
=
groupItem
->
childItems
();
QList
<
QGraphicsItem
*>
children
=
groupItem
->
childItems
();
mActiveScene
->
setURStackEnable
(
false
);
mActiveScene
->
setURStackEnable
(
false
);
foreach
(
QGraphicsItem
*
pIt
,
children
){
foreach
(
QGraphicsItem
*
pIt
,
children
){
UBItem
*
pItem
=
dynamic_cast
<
UBItem
*>
(
pIt
);
UBItem
*
pItem
=
dynamic_cast
<
UBItem
*>
(
pIt
);
...
...
This diff is collapsed.
Click to expand it.
src/board/UBBoardView.cpp
View file @
4ace295a
...
@@ -80,217 +80,217 @@
...
@@ -80,217 +80,217 @@
#include "core/memcheck.h"
#include "core/memcheck.h"
UBBoardView
::
UBBoardView
(
UBBoardController
*
pController
,
QWidget
*
pParent
,
bool
isControl
,
bool
isDesktop
)
UBBoardView
::
UBBoardView
(
UBBoardController
*
pController
,
QWidget
*
pParent
,
bool
isControl
,
bool
isDesktop
)
:
QGraphicsView
(
pParent
)
:
QGraphicsView
(
pParent
)
,
mController
(
pController
)
,
mController
(
pController
)
,
mIsCreatingTextZone
(
false
)
,
mIsCreatingTextZone
(
false
)
,
mIsCreatingSceneGrabZone
(
false
)
,
mIsCreatingSceneGrabZone
(
false
)
,
mOkOnWidget
(
false
)
,
mOkOnWidget
(
false
)
,
suspendedMousePressEvent
(
NULL
)
,
suspendedMousePressEvent
(
NULL
)
,
mLongPressInterval
(
1000
)
,
mLongPressInterval
(
1000
)
,
mIsDragInProgress
(
false
)
,
mIsDragInProgress
(
false
)
,
mMultipleSelectionIsEnabled
(
false
)
,
mMultipleSelectionIsEnabled
(
false
)
,
bIsControl
(
isControl
)
,
bIsControl
(
isControl
)
,
bIsDesktop
(
isDesktop
)
,
bIsDesktop
(
isDesktop
)
,
mRubberBandInPlayMode
(
false
)
//enables rubberband with play tool
,
mRubberBandInPlayMode
(
false
)
//enables rubberband with play tool
{
{
init
();
init
();
mFilterZIndex
=
false
;
mFilterZIndex
=
false
;
mLongPressTimer
.
setInterval
(
mLongPressInterval
);
mLongPressTimer
.
setInterval
(
mLongPressInterval
);
mLongPressTimer
.
setSingleShot
(
true
);
mLongPressTimer
.
setSingleShot
(
true
);
}
}
UBBoardView
::
UBBoardView
(
UBBoardController
*
pController
,
int
pStartLayer
,
int
pEndLayer
,
QWidget
*
pParent
,
bool
isControl
,
bool
isDesktop
)
UBBoardView
::
UBBoardView
(
UBBoardController
*
pController
,
int
pStartLayer
,
int
pEndLayer
,
QWidget
*
pParent
,
bool
isControl
,
bool
isDesktop
)
:
QGraphicsView
(
pParent
)
:
QGraphicsView
(
pParent
)
,
mController
(
pController
)
,
mController
(
pController
)
,
suspendedMousePressEvent
(
NULL
)
,
suspendedMousePressEvent
(
NULL
)
,
mLongPressInterval
(
1000
)
,
mLongPressInterval
(
1000
)
,
mIsDragInProgress
(
false
)
,
mIsDragInProgress
(
false
)
,
mMultipleSelectionIsEnabled
(
false
)
,
mMultipleSelectionIsEnabled
(
false
)
,
bIsControl
(
isControl
)
,
bIsControl
(
isControl
)
,
bIsDesktop
(
isDesktop
)
,
bIsDesktop
(
isDesktop
)
{
{
init
();
init
();
mStartLayer
=
pStartLayer
;
mStartLayer
=
pStartLayer
;
mEndLayer
=
pEndLayer
;
mEndLayer
=
pEndLayer
;
mFilterZIndex
=
true
;
mFilterZIndex
=
true
;
mLongPressTimer
.
setInterval
(
mLongPressInterval
);
mLongPressTimer
.
setInterval
(
mLongPressInterval
);
mLongPressTimer
.
setSingleShot
(
true
);
mLongPressTimer
.
setSingleShot
(
true
);
}
}
UBBoardView
::~
UBBoardView
()
{
UBBoardView
::~
UBBoardView
()
{
//NOOP
//NOOP
if
(
suspendedMousePressEvent
)
if
(
suspendedMousePressEvent
)
delete
suspendedMousePressEvent
;
delete
suspendedMousePressEvent
;
}
}
void
UBBoardView
::
init
()
void
UBBoardView
::
init
()
{
{
connect
(
UBSettings
::
settings
()
->
boardPenPressureSensitive
,
SIGNAL
(
changed
(
QVariant
)),
connect
(
UBSettings
::
settings
()
->
boardPenPressureSensitive
,
SIGNAL
(
changed
(
QVariant
)),
this
,
SLOT
(
settingChanged
(
QVariant
)));
this
,
SLOT
(
settingChanged
(
QVariant
)));
connect
(
UBSettings
::
settings
()
->
boardMarkerPressureSensitive
,
SIGNAL
(
changed
(
QVariant
)),
connect
(
UBSettings
::
settings
()
->
boardMarkerPressureSensitive
,
SIGNAL
(
changed
(
QVariant
)),
this
,
SLOT
(
settingChanged
(
QVariant
)));
this
,
SLOT
(
settingChanged
(
QVariant
)));
connect
(
UBSettings
::
settings
()
->
boardUseHighResTabletEvent
,
SIGNAL
(
changed
(
QVariant
)),
connect
(
UBSettings
::
settings
()
->
boardUseHighResTabletEvent
,
SIGNAL
(
changed
(
QVariant
)),
this
,
SLOT
(
settingChanged
(
QVariant
)));
this
,
SLOT
(
settingChanged
(
QVariant
)));
setWindowFlags
(
Qt
::
FramelessWindowHint
);
setWindowFlags
(
Qt
::
FramelessWindowHint
);
setFrameStyle
(
QFrame
::
NoFrame
);
setFrameStyle
(
QFrame
::
NoFrame
);
setRenderHints
(
QPainter
::
Antialiasing
|
QPainter
::
SmoothPixmapTransform
|
QPainter
::
TextAntialiasing
);
setRenderHints
(
QPainter
::
Antialiasing
|
QPainter
::
SmoothPixmapTransform
|
QPainter
::
TextAntialiasing
);
setVerticalScrollBarPolicy
(
Qt
::
ScrollBarAlwaysOff
);
setVerticalScrollBarPolicy
(
Qt
::
ScrollBarAlwaysOff
);
setHorizontalScrollBarPolicy
(
Qt
::
ScrollBarAlwaysOff
);
setHorizontalScrollBarPolicy
(
Qt
::
ScrollBarAlwaysOff
);
setAcceptDrops
(
true
);
setAcceptDrops
(
true
);
setOptimizationFlag
(
QGraphicsView
::
IndirectPainting
);
// enable UBBoardView::drawItems filter
setOptimizationFlag
(
QGraphicsView
::
IndirectPainting
);
// enable UBBoardView::drawItems filter
mTabletStylusIsPressed
=
false
;
mTabletStylusIsPressed
=
false
;
mMouseButtonIsPressed
=
false
;
mMouseButtonIsPressed
=
false
;
mPendingStylusReleaseEvent
=
false
;
mPendingStylusReleaseEvent
=
false
;
setCacheMode
(
QGraphicsView
::
CacheBackground
);
setCacheMode
(
QGraphicsView
::
CacheBackground
);
mUsingTabletEraser
=
false
;
mUsingTabletEraser
=
false
;
mIsCreatingTextZone
=
false
;
mIsCreatingTextZone
=
false
;
mRubberBand
=
0
;
mRubberBand
=
0
;
mUBRubberBand
=
0
;
mUBRubberBand
=
0
;
mVirtualKeyboardActive
=
false
;
mVirtualKeyboardActive
=
false
;
settingChanged
(
QVariant
());
settingChanged
(
QVariant
());
unsetCursor
();
unsetCursor
();
movingItem
=
NULL
;
movingItem
=
NULL
;
mWidgetMoved
=
false
;
mWidgetMoved
=
false
;
}
}
UBGraphicsScene
*
UBGraphicsScene
*
UBBoardView
::
scene
()
UBBoardView
::
scene
()
{
{
return
qobject_cast
<
UBGraphicsScene
*>
(
QGraphicsView
::
scene
());
return
qobject_cast
<
UBGraphicsScene
*>
(
QGraphicsView
::
scene
());
}
}
void
void
UBBoardView
::
hideEvent
(
QHideEvent
*
event
)
UBBoardView
::
hideEvent
(
QHideEvent
*
event
)
{
{
Q_UNUSED
(
event
);
Q_UNUSED
(
event
);
emit
hidden
();
emit
hidden
();
}
}
void
void
UBBoardView
::
showEvent
(
QShowEvent
*
event
)
UBBoardView
::
showEvent
(
QShowEvent
*
event
)
{
{
Q_UNUSED
(
event
);
Q_UNUSED
(
event
);
emit
shown
();
emit
shown
();
}
}
void
void
UBBoardView
::
keyPressEvent
(
QKeyEvent
*
event
)
UBBoardView
::
keyPressEvent
(
QKeyEvent
*
event
)
{
{
// send to the scene anyway
// send to the scene anyway
QApplication
::
sendEvent
(
scene
(),
event
);
QApplication
::
sendEvent
(
scene
(),
event
);
if
(
!
event
->
isAccepted
())
if
(
!
event
->
isAccepted
())
{
{
switch
(
event
->
key
())
switch
(
event
->
key
())
{
{
case
Qt
:
:
Key_Up
:
case
Qt
:
:
Key_Up
:
case
Qt
:
:
Key_PageUp
:
case
Qt
:
:
Key_PageUp
:
case
Qt
:
:
Key_Left
:
case
Qt
:
:
Key_Left
:
{
{
mController
->
previousScene
();
mController
->
previousScene
();
break
;
break
;
}
}
case
Qt
:
:
Key_Down
:
case
Qt
:
:
Key_Down
:
case
Qt
:
:
Key_PageDown
:
case
Qt
:
:
Key_PageDown
:
case
Qt
:
:
Key_Right
:
case
Qt
:
:
Key_Right
:
case
Qt
:
:
Key_Space
:
case
Qt
:
:
Key_Space
:
{
{
mController
->
nextScene
();
mController
->
nextScene
();
break
;
break
;
}
}
case
Qt
:
:
Key_Home
:
case
Qt
:
:
Key_Home
:
{
{
mController
->
firstScene
();
mController
->
firstScene
();
break
;
break
;
}
}
case
Qt
:
:
Key_End
:
case
Qt
:
:
Key_End
:
{
{
mController
->
lastScene
();
mController
->
lastScene
();
break
;
break
;
}
}
case
Qt
:
:
Key_Insert
:
case
Qt
:
:
Key_Insert
:
{
{
mController
->
addScene
();
mController
->
addScene
();
break
;
break
;
}
}
case
Qt
:
:
Key_Control
:
case
Qt
:
:
Key_Control
:
case
Qt
:
:
Key_Shift
:
case
Qt
:
:
Key_Shift
:
{
{
setMultiselection
(
true
);
setMultiselection
(
true
);
}
break
;
}
break
;
}
}
if
(
event
->
modifiers
()
&
Qt
::
ControlModifier
)
// keep only ctrl/cmd keys
if
(
event
->
modifiers
()
&
Qt
::
ControlModifier
)
// keep only ctrl/cmd keys
{
{
switch
(
event
->
key
())
switch
(
event
->
key
())
{
{
case
Qt
:
:
Key_Plus
:
case
Qt
:
:
Key_Plus
:
case
Qt
:
:
Key_I
:
case
Qt
:
:
Key_I
:
{
{
mController
->
zoomIn
();
mController
->
zoomIn
();
event
->
accept
();
event
->
accept
();
break
;
break
;
}
}
case
Qt
:
:
Key_Minus
:
case
Qt
:
:
Key_Minus
:
case
Qt
:
:
Key_O
:
case
Qt
:
:
Key_O
:
{
{
mController
->
zoomOut
();
mController
->
zoomOut
();
event
->
accept
();
event
->
accept
();
break
;
break
;
}
}
case
Qt
:
:
Key_0
:
case
Qt
:
:
Key_0
:
{
{
mController
->
zoomRestore
();
mController
->
zoomRestore
();
event
->
accept
();
event
->
accept
();
break
;
break
;
}
}
case
Qt
:
:
Key_Left
:
case
Qt
:
:
Key_Left
:
{
{
mController
->
handScroll
(
-
100
,
0
);
mController
->
handScroll
(
-
100
,
0
);
event
->
accept
();
event
->
accept
();
break
;
break
;
}
}
case
Qt
:
:
Key_Right
:
case
Qt
:
:
Key_Right
:
{
{
mController
->
handScroll
(
100
,
0
);
mController
->
handScroll
(
100
,
0
);
event
->
accept
();
event
->
accept
();
break
;
break
;
}
}
case
Qt
:
:
Key_Up
:
case
Qt
:
:
Key_Up
:
{
{
mController
->
handScroll
(
0
,
-
100
);
mController
->
handScroll
(
0
,
-
100
);
event
->
accept
();
event
->
accept
();
break
;
break
;
}
}
case
Qt
:
:
Key_Down
:
case
Qt
:
:
Key_Down
:
{
{
mController
->
handScroll
(
0
,
100
);
mController
->
handScroll
(
0
,
100
);
event
->
accept
();
event
->
accept
();
break
;
break
;
}
}
default
:
default
:
{
{
// NOOP
// NOOP
}
}
}
}
}
}
}
}
...
@@ -303,10 +303,10 @@ UBBoardView::keyPressEvent (QKeyEvent *event)
...
@@ -303,10 +303,10 @@ UBBoardView::keyPressEvent (QKeyEvent *event)
void
UBBoardView
::
keyReleaseEvent
(
QKeyEvent
*
event
)
void
UBBoardView
::
keyReleaseEvent
(
QKeyEvent
*
event
)
{
{
// if (!event->isAccepted ())
// if (!event->isAccepted ())
{
{
if
(
Qt
::
Key_Shift
==
event
->
key
()
if
(
Qt
::
Key_Shift
==
event
->
key
()
||
Qt
::
Key_Control
==
event
->
key
())
||
Qt
::
Key_Control
==
event
->
key
())
{
{
setMultiselection
(
false
);
setMultiselection
(
false
);
}
}
...
@@ -318,30 +318,30 @@ void UBBoardView::keyReleaseEvent(QKeyEvent *event)
...
@@ -318,30 +318,30 @@ void UBBoardView::keyReleaseEvent(QKeyEvent *event)
bool
bool
UBBoardView
::
event
(
QEvent
*
e
)
UBBoardView
::
event
(
QEvent
*
e
)
{
{
if
(
e
->
type
()
==
QEvent
::
Gesture
)
if
(
e
->
type
()
==
QEvent
::
Gesture
)
{
{
QGestureEvent
*
gestureEvent
=
dynamic_cast
<
QGestureEvent
*>
(
e
);
QGestureEvent
*
gestureEvent
=
dynamic_cast
<
QGestureEvent
*>
(
e
);
if
(
gestureEvent
)
if
(
gestureEvent
)
{
{
QSwipeGesture
*
swipe
=
dynamic_cast
<
QSwipeGesture
*>
(
gestureEvent
->
gesture
(
Qt
::
SwipeGesture
));
QSwipeGesture
*
swipe
=
dynamic_cast
<
QSwipeGesture
*>
(
gestureEvent
->
gesture
(
Qt
::
SwipeGesture
));
if
(
swipe
)
if
(
swipe
)
{
{
if
(
swipe
->
horizontalDirection
()
==
QSwipeGesture
::
Left
)
if
(
swipe
->
horizontalDirection
()
==
QSwipeGesture
::
Left
)
{
{
mController
->
previousScene
();
mController
->
previousScene
();
gestureEvent
->
setAccepted
(
swipe
,
true
);
gestureEvent
->
setAccepted
(
swipe
,
true
);
}
}
if
(
swipe
->
horizontalDirection
()
==
QSwipeGesture
::
Right
)
if
(
swipe
->
horizontalDirection
()
==
QSwipeGesture
::
Right
)
{
{
mController
->
nextScene
();
mController
->
nextScene
();
gestureEvent
->
setAccepted
(
swipe
,
true
);
gestureEvent
->
setAccepted
(
swipe
,
true
);
}
}
}
}
}
}
}
}
return
QGraphicsView
::
event
(
e
);
return
QGraphicsView
::
event
(
e
);
}
}
void
UBBoardView
::
tabletEvent
(
QTabletEvent
*
event
)
void
UBBoardView
::
tabletEvent
(
QTabletEvent
*
event
)
...
@@ -474,20 +474,20 @@ bool UBBoardView::isUBItem(QGraphicsItem *item)
...
@@ -474,20 +474,20 @@ bool UBBoardView::isUBItem(QGraphicsItem *item)
bool
UBBoardView
::
isCppTool
(
QGraphicsItem
*
item
)
bool
UBBoardView
::
isCppTool
(
QGraphicsItem
*
item
)
{
{
return
(
item
->
type
()
==
UBGraphicsItemType
::
CompassItemType
return
(
item
->
type
()
==
UBGraphicsItemType
::
CompassItemType
||
item
->
type
()
==
UBGraphicsItemType
::
RulerItemType
||
item
->
type
()
==
UBGraphicsItemType
::
RulerItemType
||
item
->
type
()
==
UBGraphicsItemType
::
ProtractorItemType
||
item
->
type
()
==
UBGraphicsItemType
::
ProtractorItemType
||
item
->
type
()
==
UBGraphicsItemType
::
TriangleItemType
||
item
->
type
()
==
UBGraphicsItemType
::
TriangleItemType
||
item
->
type
()
==
UBGraphicsItemType
::
CurtainItemType
);
||
item
->
type
()
==
UBGraphicsItemType
::
CurtainItemType
);
}
}
void
UBBoardView
::
handleItemsSelection
(
QGraphicsItem
*
item
)
void
UBBoardView
::
handleItemsSelection
(
QGraphicsItem
*
item
)
{
{
// we need to select new pressed itemOnBoard and deselect all other items.
// we need to select new pressed itemOnBoard and deselect all other items.
// the trouble is in:
// the trouble is in:
// some items can has parents (groupped items or strokes, or strokes in groups).
// some items can has parents (groupped items or strokes, or strokes in groups).
// some items is already selected and we don't need to reselect them
// some items is already selected and we don't need to reselect them
//
//
// item selection managed by QGraphicsView::mousePressEvent(). It should be called later.
// item selection managed by QGraphicsView::mousePressEvent(). It should be called later.
if
(
item
)
if
(
item
)
{
{
...
@@ -530,7 +530,7 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item)
...
@@ -530,7 +530,7 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item)
bool
UBBoardView
::
itemShouldReceiveMousePressEvent
(
QGraphicsItem
*
item
)
bool
UBBoardView
::
itemShouldReceiveMousePressEvent
(
QGraphicsItem
*
item
)
{
{
/*
/*
Some items should receive mouse press events averytime,
Some items should receive mouse press events averytime,
some items should receive that events when they are selected,
some items should receive that events when they are selected,
some items shouldn't receive mouse press events at mouse press, but should receive them at mouse release (suspended mouse press event)
some items shouldn't receive mouse press events at mouse press, but should receive them at mouse release (suspended mouse press event)
...
@@ -570,6 +570,8 @@ Here we determines cases when items should to get mouse press event at pressing
...
@@ -570,6 +570,8 @@ Here we determines cases when items should to get mouse press event at pressing
case
UBGraphicsSvgItem
:
:
Type
:
case
UBGraphicsSvgItem
:
:
Type
:
case
UBGraphicsPixmapItem
:
:
Type
:
case
UBGraphicsPixmapItem
:
:
Type
:
case
UBGraphicsTextItem
:
:
Type
:
case
UBGraphicsTextItem
:
:
Type
:
if
(
currentTool
==
UBStylusTool
::
Play
)
return
true
;
if
((
currentTool
==
UBStylusTool
::
Selector
)
&&
item
->
isSelected
())
if
((
currentTool
==
UBStylusTool
::
Selector
)
&&
item
->
isSelected
())
return
true
;
return
true
;
if
((
currentTool
==
UBStylusTool
::
Selector
)
&&
item
->
parentItem
()
&&
item
->
parentItem
()
->
isSelected
())
if
((
currentTool
==
UBStylusTool
::
Selector
)
&&
item
->
parentItem
()
&&
item
->
parentItem
()
->
isSelected
())
...
@@ -577,19 +579,19 @@ Here we determines cases when items should to get mouse press event at pressing
...
@@ -577,19 +579,19 @@ Here we determines cases when items should to get mouse press event at pressing
if
(
currentTool
!=
UBStylusTool
::
Selector
)
if
(
currentTool
!=
UBStylusTool
::
Selector
)
return
false
;
return
false
;
break
;
break
;
case
UBGraphicsItemType
:
:
StrokeItemType
:
// Groups shouldn't reacts on any presses and moves for Play tool.
if
(
currentTool
==
UBStylusTool
::
Play
)
return
true
;
break
;
case
UBGraphicsGroupContainerItem
:
:
Type
:
case
UBGraphicsGroupContainerItem
:
:
Type
:
// Groups shouldn't reacts on any presses and moves for Play tool.
if
(
currentTool
==
UBStylusTool
::
Play
)
if
(
currentTool
==
UBStylusTool
::
Play
)
{
{
movingItem
=
NULL
;
movingItem
=
NULL
;
return
true
;
}
}
return
false
;
return
false
;
break
;
break
;
//case UBToolWidget::Type:
// return true;
case
QGraphicsWebView
:
:
Type
:
case
QGraphicsWebView
:
:
Type
:
return
true
;
return
true
;
...
@@ -693,9 +695,9 @@ QGraphicsItem* UBBoardView::determineItemToPress(QGraphicsItem *item)
...
@@ -693,9 +695,9 @@ QGraphicsItem* UBBoardView::determineItemToPress(QGraphicsItem *item)
// if item is on group and group is not selected - group should take press.
// if item is on group and group is not selected - group should take press.
if
(
UBStylusTool
::
Selector
==
currentTool
if
(
UBStylusTool
::
Selector
==
currentTool
&&
item
->
parentItem
()
&&
item
->
parentItem
()
&&
UBGraphicsGroupContainerItem
::
Type
==
item
->
parentItem
()
->
type
()
&&
UBGraphicsGroupContainerItem
::
Type
==
item
->
parentItem
()
->
type
()
&&
!
item
->
parentItem
()
->
isSelected
())
&&
!
item
->
parentItem
()
->
isSelected
())
return
item
->
parentItem
();
return
item
->
parentItem
();
// items like polygons placed in two groups nested, so we need to recursive call.
// items like polygons placed in two groups nested, so we need to recursive call.
...
@@ -715,7 +717,7 @@ QGraphicsItem* UBBoardView::determineItemToMove(QGraphicsItem *item)
...
@@ -715,7 +717,7 @@ QGraphicsItem* UBBoardView::determineItemToMove(QGraphicsItem *item)
//W3C widgets should take mouse move events from play tool.
//W3C widgets should take mouse move events from play tool.
if
((
UBStylusTool
::
Play
==
currentTool
)
&&
(
UBGraphicsWidgetItem
::
Type
==
item
->
type
()))
if
((
UBStylusTool
::
Play
==
currentTool
)
&&
(
UBGraphicsWidgetItem
::
Type
==
item
->
type
()))
return
item
;
return
item
;
// if item is in group
// if item is in group
if
(
item
->
parentItem
()
&&
UBGraphicsGroupContainerItem
::
Type
==
item
->
parentItem
()
->
type
())
if
(
item
->
parentItem
()
&&
UBGraphicsGroupContainerItem
::
Type
==
item
->
parentItem
()
->
type
())
...
@@ -759,12 +761,10 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event)
...
@@ -759,12 +761,10 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event)
if
(
isMultipleSelectionEnabled
())
if
(
isMultipleSelectionEnabled
())
return
;
return
;
if
(
itemShouldReceiveMousePressEvent
(
movingItem
))
if
(
itemShouldReceiveMousePressEvent
(
movingItem
))
{
{
QGraphicsView
::
mousePressEvent
(
event
);
QGraphicsView
::
mousePressEvent
(
event
);
}
}
else
else
{
{
if
(
movingItem
)
if
(
movingItem
)
{
{
UBGraphicsItem
*
graphicsItem
=
dynamic_cast
<
UBGraphicsItem
*>
(
movingItem
);
UBGraphicsItem
*
graphicsItem
=
dynamic_cast
<
UBGraphicsItem
*>
(
movingItem
);
...
@@ -813,7 +813,7 @@ void UBBoardView::handleItemMouseMove(QMouseEvent *event)
...
@@ -813,7 +813,7 @@ void UBBoardView::handleItemMouseMove(QMouseEvent *event)
QGraphicsView
::
mouseMoveEvent
(
event
);
QGraphicsView
::
mouseMoveEvent
(
event
);
if
(
movingItem
)
if
(
movingItem
)
posAfterMove
=
movingItem
->
pos
();
posAfterMove
=
movingItem
->
pos
();
mWidgetMoved
=
((
posAfterMove
-
posBeforeMove
).
manhattanLength
()
!=
0
);
mWidgetMoved
=
((
posAfterMove
-
posBeforeMove
).
manhattanLength
()
!=
0
);
...
@@ -845,14 +845,14 @@ void UBBoardView::moveRubberedItems(QPointF movingVector)
...
@@ -845,14 +845,14 @@ void UBBoardView::moveRubberedItems(QPointF movingVector)
{
{
if
(
item
->
type
()
==
UBGraphicsW3CWidgetItem
::
Type
if
(
item
->
type
()
==
UBGraphicsW3CWidgetItem
::
Type
||
item
->
type
()
==
UBGraphicsPixmapItem
::
Type
||
item
->
type
()
==
UBGraphicsPixmapItem
::
Type
||
item
->
type
()
==
UBGraphicsMediaItem
::
Type
||
item
->
type
()
==
UBGraphicsMediaItem
::
Type
||
item
->
type
()
==
UBGraphicsSvgItem
::
Type
||
item
->
type
()
==
UBGraphicsSvgItem
::
Type
||
item
->
type
()
==
UBGraphicsTextItem
::
Type
||
item
->
type
()
==
UBGraphicsTextItem
::
Type
||
item
->
type
()
==
UBGraphicsStrokesGroup
::
Type
||
item
->
type
()
==
UBGraphicsStrokesGroup
::
Type
||
item
->
type
()
==
UBGraphicsGroupContainerItem
::
Type
)
||
item
->
type
()
==
UBGraphicsGroupContainerItem
::
Type
)
{
{
item
->
setPos
(
item
->
pos
()
+
movingVector
);
item
->
setPos
(
item
->
pos
()
+
movingVector
);
}
}
}
}
...
@@ -866,26 +866,26 @@ void UBBoardView::setMultiselection(bool enable)
...
@@ -866,26 +866,26 @@ void UBBoardView::setMultiselection(bool enable)
void
UBBoardView
::
longPressEvent
()
void
UBBoardView
::
longPressEvent
()
{
{
UBDrawingController
*
drawingController
=
UBDrawingController
::
drawingController
();
UBDrawingController
*
drawingController
=
UBDrawingController
::
drawingController
();
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
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
)
if
(
UBStylusTool
::
Selector
==
currentTool
)
{
{
drawingController
->
setStylusTool
(
UBStylusTool
::
Play
);
drawingController
->
setStylusTool
(
UBStylusTool
::
Play
);
}
}
else
else
if
(
currentTool
==
UBStylusTool
::
Play
)
if
(
currentTool
==
UBStylusTool
::
Play
)
{
{
drawingController
->
setStylusTool
(
UBStylusTool
::
Selector
);
drawingController
->
setStylusTool
(
UBStylusTool
::
Selector
);
}
}
else
else
if
(
UBStylusTool
::
Eraser
==
currentTool
)
if
(
UBStylusTool
::
Eraser
==
currentTool
)
{
{
UBApplication
::
boardController
->
paletteManager
()
->
toggleErasePalette
(
true
);
UBApplication
::
boardController
->
paletteManager
()
->
toggleErasePalette
(
true
);
}
}
}
}
...
@@ -898,8 +898,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
...
@@ -898,8 +898,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
mIsDragInProgress
=
false
;
mIsDragInProgress
=
false
;
if
(
isAbsurdPoint
(
event
->
pos
()))
if
(
isAbsurdPoint
(
event
->
pos
()))
{
{
event
->
accept
();
event
->
accept
();
return
;
return
;
}
}
...
@@ -935,8 +934,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
...
@@ -935,8 +934,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
mPreviousPoint
=
event
->
posF
();
mPreviousPoint
=
event
->
posF
();
event
->
accept
();
event
->
accept
();
}
}
else
if
(
currentTool
==
UBStylusTool
::
Selector
||
currentTool
==
UBStylusTool
::
Play
)
else
if
(
currentTool
==
UBStylusTool
::
Selector
||
currentTool
==
UBStylusTool
::
Play
)
{
{
if
(
bIsDesktop
)
{
if
(
bIsDesktop
)
{
event
->
ignore
();
event
->
ignore
();
return
;
return
;
...
@@ -957,8 +955,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
...
@@ -957,8 +955,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
mUBRubberBand
->
setGeometry
(
QRect
(
mMouseDownPos
,
QSize
()));
mUBRubberBand
->
setGeometry
(
QRect
(
mMouseDownPos
,
QSize
()));
mUBRubberBand
->
show
();
mUBRubberBand
->
show
();
}
}
else
else
{
{
if
(
mUBRubberBand
)
if
(
mUBRubberBand
)
mUBRubberBand
->
hide
();
mUBRubberBand
->
hide
();
}
}
...
@@ -1035,110 +1032,110 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
...
@@ -1035,110 +1032,110 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
void
void
UBBoardView
::
mouseMoveEvent
(
QMouseEvent
*
event
)
UBBoardView
::
mouseMoveEvent
(
QMouseEvent
*
event
)
{
{
if
(
!
mIsDragInProgress
&&
((
mapToScene
(
event
->
pos
())
-
mLastPressedMousePos
).
manhattanLength
()
<
QApplication
::
startDragDistance
()))
if
(
!
mIsDragInProgress
&&
((
mapToScene
(
event
->
pos
())
-
mLastPressedMousePos
).
manhattanLength
()
<
QApplication
::
startDragDistance
()))
{
{
return
;
return
;
}
}
mIsDragInProgress
=
true
;
mIsDragInProgress
=
true
;
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
mLongPressTimer
.
stop
();
mLongPressTimer
.
stop
();
if
(
isAbsurdPoint
(
event
->
pos
()))
if
(
isAbsurdPoint
(
event
->
pos
()))
{
{
event
->
accept
();
event
->
accept
();
return
;
return
;
}
}
if
(
currentTool
==
UBStylusTool
::
Hand
&&
(
mMouseButtonIsPressed
||
mTabletStylusIsPressed
))
if
(
currentTool
==
UBStylusTool
::
Hand
&&
(
mMouseButtonIsPressed
||
mTabletStylusIsPressed
))
{
{
QPointF
eventPosition
=
event
->
posF
();
QPointF
eventPosition
=
event
->
posF
();
qreal
dx
=
eventPosition
.
x
()
-
mPreviousPoint
.
x
();
qreal
dx
=
eventPosition
.
x
()
-
mPreviousPoint
.
x
();
qreal
dy
=
eventPosition
.
y
()
-
mPreviousPoint
.
y
();
qreal
dy
=
eventPosition
.
y
()
-
mPreviousPoint
.
y
();
mController
->
handScroll
(
dx
,
dy
);
mController
->
handScroll
(
dx
,
dy
);
mPreviousPoint
=
eventPosition
;
mPreviousPoint
=
eventPosition
;
event
->
accept
();
event
->
accept
();
}
}
else
if
(
currentTool
==
UBStylusTool
::
Selector
||
currentTool
==
UBStylusTool
::
Play
)
else
if
(
currentTool
==
UBStylusTool
::
Selector
||
currentTool
==
UBStylusTool
::
Play
)
{
{
if
((
event
->
pos
()
-
mLastPressedMousePos
).
manhattanLength
()
<
QApplication
::
startDragDistance
())
{
if
((
event
->
pos
()
-
mLastPressedMousePos
).
manhattanLength
()
<
QApplication
::
startDragDistance
())
{
return
;
return
;
}
}
if
(
bIsDesktop
)
{
if
(
bIsDesktop
)
{
event
->
ignore
();
event
->
ignore
();
return
;
return
;
}
}
if
(
currentTool
!=
UBStylusTool
::
Play
||
mRubberBandInPlayMode
)
{
if
(
currentTool
!=
UBStylusTool
::
Play
||
mRubberBandInPlayMode
)
{
if
(
!
movingItem
&&
(
mMouseButtonIsPressed
||
mTabletStylusIsPressed
)
&&
mUBRubberBand
&&
mUBRubberBand
->
isVisible
())
{
if
(
!
movingItem
&&
(
mMouseButtonIsPressed
||
mTabletStylusIsPressed
)
&&
mUBRubberBand
&&
mUBRubberBand
->
isVisible
())
{
QRect
bandRect
(
mMouseDownPos
,
event
->
pos
());
QRect
bandRect
(
mMouseDownPos
,
event
->
pos
());
bandRect
=
bandRect
.
normalized
();
bandRect
=
bandRect
.
normalized
();
mUBRubberBand
->
setGeometry
(
bandRect
);
mUBRubberBand
->
setGeometry
(
bandRect
);
QList
<
QGraphicsItem
*>
rubberItems
=
items
(
bandRect
);
QList
<
QGraphicsItem
*>
rubberItems
=
items
(
bandRect
);
foreach
(
QGraphicsItem
*
item
,
mJustSelectedItems
)
{
foreach
(
QGraphicsItem
*
item
,
mJustSelectedItems
)
{
if
(
!
rubberItems
.
contains
(
item
))
{
if
(
!
rubberItems
.
contains
(
item
))
{
item
->
setSelected
(
false
);
item
->
setSelected
(
false
);
mJustSelectedItems
.
remove
(
item
);
mJustSelectedItems
.
remove
(
item
);
}
}
}
}
if
(
currentTool
==
UBStylusTool
::
Selector
)
if
(
currentTool
==
UBStylusTool
::
Selector
)
foreach
(
QGraphicsItem
*
item
,
items
(
bandRect
))
{
foreach
(
QGraphicsItem
*
item
,
items
(
bandRect
))
{
if
(
item
->
type
()
==
UBGraphicsW3CWidgetItem
::
Type
if
(
item
->
type
()
==
UBGraphicsW3CWidgetItem
::
Type
||
item
->
type
()
==
UBGraphicsPixmapItem
::
Type
||
item
->
type
()
==
UBGraphicsPixmapItem
::
Type
||
item
->
type
()
==
UBGraphicsMediaItem
::
Type
||
item
->
type
()
==
UBGraphicsMediaItem
::
Type
||
item
->
type
()
==
UBGraphicsSvgItem
::
Type
||
item
->
type
()
==
UBGraphicsSvgItem
::
Type
||
item
->
type
()
==
UBGraphicsTextItem
::
Type
||
item
->
type
()
==
UBGraphicsTextItem
::
Type
||
item
->
type
()
==
UBGraphicsStrokesGroup
::
Type
||
item
->
type
()
==
UBGraphicsStrokesGroup
::
Type
||
item
->
type
()
==
UBGraphicsGroupContainerItem
::
Type
)
{
||
item
->
type
()
==
UBGraphicsGroupContainerItem
::
Type
)
{
if
(
!
mJustSelectedItems
.
contains
(
item
))
{
if
(
!
mJustSelectedItems
.
contains
(
item
))
{
item
->
setSelected
(
true
);
item
->
setSelected
(
true
);
mJustSelectedItems
.
insert
(
item
);
mJustSelectedItems
.
insert
(
item
);
}
}
}
}
}
}
}
}
}
}
handleItemMouseMove
(
event
);
handleItemMouseMove
(
event
);
}
else
if
((
UBDrawingController
::
drawingController
()
->
isDrawingTool
())
&&
!
mMouseButtonIsPressed
)
{
QGraphicsView
::
mouseMoveEvent
(
event
);
}
}
else
if
((
UBDrawingController
::
drawingController
()
->
isDrawingTool
())
else
if
(
currentTool
==
UBStylusTool
::
Text
||
currentTool
==
UBStylusTool
::
Capture
)
&&
!
mMouseButtonIsPressed
)
{
QGraphicsView
::
mouseMoveEvent
(
event
);
}
else
if
(
currentTool
==
UBStylusTool
::
Text
||
currentTool
==
UBStylusTool
::
Capture
)
{
{
if
(
mRubberBand
&&
(
mIsCreatingTextZone
||
mIsCreatingSceneGrabZone
))
if
(
mRubberBand
&&
(
mIsCreatingTextZone
||
mIsCreatingSceneGrabZone
))
{
{
mRubberBand
->
setGeometry
(
QRect
(
mMouseDownPos
,
event
->
pos
()).
normalized
());
mRubberBand
->
setGeometry
(
QRect
(
mMouseDownPos
,
event
->
pos
()).
normalized
());
event
->
accept
();
event
->
accept
();
}
}
else
else
{
{
QGraphicsView
::
mouseMoveEvent
(
event
);
QGraphicsView
::
mouseMoveEvent
(
event
);
}
}
}
}
else
else
{
{
if
(
!
mTabletStylusIsPressed
&&
scene
())
if
(
!
mTabletStylusIsPressed
&&
scene
())
{
{
scene
()
->
inputDeviceMove
(
mapToScene
(
UBGeometryUtils
::
pointConstrainedInRect
(
event
->
pos
(),
rect
())),
mMouseButtonIsPressed
);
scene
()
->
inputDeviceMove
(
mapToScene
(
UBGeometryUtils
::
pointConstrainedInRect
(
event
->
pos
(),
rect
())),
mMouseButtonIsPressed
);
}
}
event
->
accept
();
event
->
accept
();
}
}
if
((
event
->
pos
()
-
mLastPressedMousePos
).
manhattanLength
()
<
QApplication
::
startDragDistance
())
if
((
event
->
pos
()
-
mLastPressedMousePos
).
manhattanLength
()
<
QApplication
::
startDragDistance
())
mWidgetMoved
=
true
;
mWidgetMoved
=
true
;
}
}
void
void
...
@@ -1146,207 +1143,199 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
...
@@ -1146,207 +1143,199 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
{
{
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
setToolCursor
(
currentTool
);
setToolCursor
(
currentTool
);
// first/ propagate device release to the scene
// first/ propagate device release to the scene
if
(
scene
())
if
(
scene
())
scene
()
->
inputDeviceRelease
();
scene
()
->
inputDeviceRelease
();
if
(
currentTool
==
UBStylusTool
::
Selector
)
if
(
currentTool
==
UBStylusTool
::
Selector
)
{
if
(
bIsDesktop
)
{
event
->
ignore
();
return
;
}
UBGraphicsItem
*
graphicsItem
=
dynamic_cast
<
UBGraphicsItem
*>
(
movingItem
);
if
(
graphicsItem
)
graphicsItem
->
Delegate
()
->
commitUndoStep
();
bool
bReleaseIsNeed
=
true
;
if
(
movingItem
!=
determineItemToPress
(
scene
()
->
itemAt
(
this
->
mapToScene
(
event
->
posF
().
toPoint
()))))
{
movingItem
=
NULL
;
bReleaseIsNeed
=
false
;
}
if
(
mWidgetMoved
)
{
mWidgetMoved
=
false
;
movingItem
=
NULL
;
}
else
if
(
movingItem
&&
(
!
isCppTool
(
movingItem
)
||
UBGraphicsCurtainItem
::
Type
==
movingItem
->
type
()))
{
if
(
suspendedMousePressEvent
)
{
QGraphicsView
::
mousePressEvent
(
suspendedMousePressEvent
);
// suspendedMousePressEvent is deleted by old Qt event loop
movingItem
=
NULL
;
delete
suspendedMousePressEvent
;
suspendedMousePressEvent
=
NULL
;
bReleaseIsNeed
=
true
;
}
else
{
if
(
isUBItem
(
movingItem
)
&&
DelegateButton
::
Type
!=
movingItem
->
type
()
&&
QGraphicsSvgItem
::
Type
!=
movingItem
->
type
()
&&
UBGraphicsDelegateFrame
::
Type
!=
movingItem
->
type
()
&&
UBGraphicsCache
::
Type
!=
movingItem
->
type
()
&&
QGraphicsWebView
::
Type
!=
movingItem
->
type
()
&&
// for W3C widgets as Tools.
!
(
!
isMultipleSelectionEnabled
()
&&
movingItem
->
parentItem
()
&&
UBGraphicsWidgetItem
::
Type
==
movingItem
->
type
()
&&
UBGraphicsGroupContainerItem
::
Type
==
movingItem
->
parentItem
()
->
type
()))
{
bReleaseIsNeed
=
false
;
if
(
movingItem
->
isSelected
()
&&
isMultipleSelectionEnabled
())
movingItem
->
setSelected
(
false
);
else
if
(
movingItem
->
parentItem
()
&&
movingItem
->
parentItem
()
->
isSelected
()
&&
isMultipleSelectionEnabled
())
movingItem
->
parentItem
()
->
setSelected
(
false
);
else
{
if
(
movingItem
->
isSelected
())
bReleaseIsNeed
=
true
;
movingItem
->
setSelected
(
true
);
}
}
}
}
else
bReleaseIsNeed
=
true
;
if
(
mUBRubberBand
&&
mUBRubberBand
->
isVisible
())
{
mUBRubberBand
->
hide
();
}
if
(
bReleaseIsNeed
)
{
QGraphicsView
::
mouseReleaseEvent
(
event
);
}
}
else
if
(
currentTool
==
UBStylusTool
::
Play
)
{
if
(
bIsDesktop
)
{
event
->
ignore
();
return
;
}
if
(
mWidgetMoved
)
{
movingItem
=
NULL
;
mWidgetMoved
=
false
;
}
else
{
if
(
suspendedMousePressEvent
)
{
QGraphicsView
::
mousePressEvent
(
suspendedMousePressEvent
);
// suspendedMousePressEvent is deleted by old Qt event loop
movingItem
=
NULL
;
delete
suspendedMousePressEvent
;
suspendedMousePressEvent
=
NULL
;
}
}
QGraphicsView
::
mouseReleaseEvent
(
event
);
}
else
if
(
currentTool
==
UBStylusTool
::
Text
)
{
{
if
(
mRubberBand
)
if
(
bIsDesktop
)
{
mRubberBand
->
hide
();
event
->
ignore
();
return
;
}
if
(
scene
()
&&
mRubberBand
&&
mIsCreatingTextZone
)
UBGraphicsItem
*
graphicsItem
=
dynamic_cast
<
UBGraphicsItem
*>
(
movingItem
);
{
if
(
graphicsItem
)
QRect
rubberRect
=
mRubberBand
->
geometry
();
graphicsItem
->
Delegate
()
->
commitUndoStep
();
UBGraphicsTextItem
*
textItem
=
scene
()
->
addTextHtml
(
""
,
mapToScene
(
rubberRect
.
topLeft
()));
bool
bReleaseIsNeed
=
true
;
event
->
accept
();
if
(
movingItem
!=
determineItemToPress
(
scene
()
->
itemAt
(
this
->
mapToScene
(
event
->
posF
().
toPoint
()))))
{
movingItem
=
NULL
;
bReleaseIsNeed
=
false
;
}
if
(
mWidgetMoved
)
{
mWidgetMoved
=
false
;
movingItem
=
NULL
;
}
else
if
(
movingItem
&&
(
!
isCppTool
(
movingItem
)
||
UBGraphicsCurtainItem
::
Type
==
movingItem
->
type
()))
{
if
(
suspendedMousePressEvent
)
{
QGraphicsView
::
mousePressEvent
(
suspendedMousePressEvent
);
// suspendedMousePressEvent is deleted by old Qt event loop
movingItem
=
NULL
;
delete
suspendedMousePressEvent
;
suspendedMousePressEvent
=
NULL
;
bReleaseIsNeed
=
true
;
}
else
{
if
(
isUBItem
(
movingItem
)
&&
DelegateButton
::
Type
!=
movingItem
->
type
()
&&
QGraphicsSvgItem
::
Type
!=
movingItem
->
type
()
&&
UBGraphicsDelegateFrame
::
Type
!=
movingItem
->
type
()
&&
UBGraphicsCache
::
Type
!=
movingItem
->
type
()
&&
QGraphicsWebView
::
Type
!=
movingItem
->
type
()
&&
// for W3C widgets as Tools.
!
(
!
isMultipleSelectionEnabled
()
&&
movingItem
->
parentItem
()
&&
UBGraphicsWidgetItem
::
Type
==
movingItem
->
type
()
&&
UBGraphicsGroupContainerItem
::
Type
==
movingItem
->
parentItem
()
->
type
()))
{
bReleaseIsNeed
=
false
;
if
(
movingItem
->
isSelected
()
&&
isMultipleSelectionEnabled
())
movingItem
->
setSelected
(
false
);
else
if
(
movingItem
->
parentItem
()
&&
movingItem
->
parentItem
()
->
isSelected
()
&&
isMultipleSelectionEnabled
())
movingItem
->
parentItem
()
->
setSelected
(
false
);
else
{
if
(
movingItem
->
isSelected
())
bReleaseIsNeed
=
true
;
movingItem
->
setSelected
(
true
);
}
UBDrawingController
::
drawingController
()
->
setStylusTool
(
UBStylusTool
::
Selector
);
}
}
}
else
bReleaseIsNeed
=
true
;
textItem
->
setSelected
(
true
);
if
(
mUBRubberBand
&&
mUBRubberBand
->
isVisible
())
{
textItem
->
setFocus
();
mUBRubberBand
->
hide
();
}
}
else
if
(
bReleaseIsNeed
)
{
{
QGraphicsView
::
mouseReleaseEvent
(
event
);
QGraphicsView
::
mouseReleaseEvent
(
event
);
}
}
else
if
(
currentTool
==
UBStylusTool
::
Play
)
{
if
(
bIsDesktop
)
{
event
->
ignore
();
return
;
}
}
mIsCreatingTextZone
=
false
;
if
(
mWidgetMoved
)
{
movingItem
=
NULL
;
mWidgetMoved
=
false
;
}
else
{
if
(
suspendedMousePressEvent
)
{
QGraphicsView
::
mousePressEvent
(
suspendedMousePressEvent
);
// suspendedMousePressEvent is deleted by old Qt event loop
movingItem
=
NULL
;
delete
suspendedMousePressEvent
;
suspendedMousePressEvent
=
NULL
;
}
}
QGraphicsView
::
mouseReleaseEvent
(
event
);
}
else
if
(
currentTool
==
UBStylusTool
::
Text
)
{
if
(
mRubberBand
)
mRubberBand
->
hide
();
if
(
scene
()
&&
mRubberBand
&&
mIsCreatingTextZone
)
{
QRect
rubberRect
=
mRubberBand
->
geometry
();
UBGraphicsTextItem
*
textItem
=
scene
()
->
addTextHtml
(
""
,
mapToScene
(
rubberRect
.
topLeft
()));
event
->
accept
();
UBDrawingController
::
drawingController
()
->
setStylusTool
(
UBStylusTool
::
Selector
);
textItem
->
setSelected
(
true
);
textItem
->
setFocus
();
}
else
QGraphicsView
::
mouseReleaseEvent
(
event
);
mIsCreatingTextZone
=
false
;
}
}
else
if
(
currentTool
==
UBStylusTool
::
Capture
)
else
if
(
currentTool
==
UBStylusTool
::
Capture
)
{
{
if
(
mRubberBand
)
if
(
mRubberBand
)
mRubberBand
->
hide
();
mRubberBand
->
hide
();
if
(
scene
()
&&
mRubberBand
&&
mIsCreatingSceneGrabZone
&&
mRubberBand
->
geometry
().
width
()
>
16
)
if
(
scene
()
&&
mRubberBand
&&
mIsCreatingSceneGrabZone
&&
mRubberBand
->
geometry
().
width
()
>
16
)
{
{
QRect
rect
=
mRubberBand
->
geometry
();
QRect
rect
=
mRubberBand
->
geometry
();
QPointF
sceneTopLeft
=
mapToScene
(
rect
.
topLeft
());
QPointF
sceneTopLeft
=
mapToScene
(
rect
.
topLeft
());
QPointF
sceneBottomRight
=
mapToScene
(
rect
.
bottomRight
());
QPointF
sceneBottomRight
=
mapToScene
(
rect
.
bottomRight
());
QRectF
sceneRect
(
sceneTopLeft
,
sceneBottomRight
);
QRectF
sceneRect
(
sceneTopLeft
,
sceneBottomRight
);
mController
->
grabScene
(
sceneRect
);
mController
->
grabScene
(
sceneRect
);
event
->
accept
();
event
->
accept
();
}
}
else
else
{
{
QGraphicsView
::
mouseReleaseEvent
(
event
);
QGraphicsView
::
mouseReleaseEvent
(
event
);
}
}
mIsCreatingSceneGrabZone
=
false
;
mIsCreatingSceneGrabZone
=
false
;
}
}
else
else
{
{
if
(
mPendingStylusReleaseEvent
||
mMouseButtonIsPressed
)
if
(
mPendingStylusReleaseEvent
||
mMouseButtonIsPressed
)
{
{
event
->
accept
();
event
->
accept
();
}
}
}
}
mMouseButtonIsPressed
=
false
;
mMouseButtonIsPressed
=
false
;
mPendingStylusReleaseEvent
=
false
;
mPendingStylusReleaseEvent
=
false
;
mTabletStylusIsPressed
=
false
;
mTabletStylusIsPressed
=
false
;
movingItem
=
NULL
;
movingItem
=
NULL
;
mLongPressTimer
.
stop
();
mLongPressTimer
.
stop
();
}
}
void
void
UBBoardView
::
forcedTabletRelease
()
UBBoardView
::
forcedTabletRelease
()
{
{
if
(
mMouseButtonIsPressed
||
mTabletStylusIsPressed
||
mPendingStylusReleaseEvent
)
if
(
mMouseButtonIsPressed
||
mTabletStylusIsPressed
||
mPendingStylusReleaseEvent
)
{
{
qWarning
()
<<
"dirty mouse/tablet state:"
;
qWarning
()
<<
"dirty mouse/tablet state:"
;
qWarning
()
<<
"mMouseButtonIsPressed ="
<<
mMouseButtonIsPressed
;
qWarning
()
<<
"mMouseButtonIsPressed ="
<<
mMouseButtonIsPressed
;
qWarning
()
<<
"mTabletStylusIsPressed = "
<<
mTabletStylusIsPressed
;
qWarning
()
<<
"mTabletStylusIsPressed = "
<<
mTabletStylusIsPressed
;
qWarning
()
<<
"mPendingStylusReleaseEvent"
<<
mPendingStylusReleaseEvent
;
qWarning
()
<<
"mPendingStylusReleaseEvent"
<<
mPendingStylusReleaseEvent
;
qWarning
()
<<
"forcing device release"
;
qWarning
()
<<
"forcing device release"
;
scene
()
->
inputDeviceRelease
();
scene
()
->
inputDeviceRelease
();
mMouseButtonIsPressed
=
false
;
mMouseButtonIsPressed
=
false
;
mTabletStylusIsPressed
=
false
;
mTabletStylusIsPressed
=
false
;
mPendingStylusReleaseEvent
=
false
;
mPendingStylusReleaseEvent
=
false
;
}
}
}
}
void
void
UBBoardView
::
mouseDoubleClickEvent
(
QMouseEvent
*
event
)
UBBoardView
::
mouseDoubleClickEvent
(
QMouseEvent
*
event
)
{
{
// We don't want a double click, we want two clicks
// We don't want a double click, we want two clicks
mousePressEvent
(
event
);
mousePressEvent
(
event
);
}
}
void
void
UBBoardView
::
wheelEvent
(
QWheelEvent
*
wheelEvent
)
UBBoardView
::
wheelEvent
(
QWheelEvent
*
wheelEvent
)
{
{
if
(
isInteractive
()
&&
wheelEvent
->
orientation
()
==
Qt
::
Vertical
)
if
(
isInteractive
()
&&
wheelEvent
->
orientation
()
==
Qt
::
Vertical
)
{
{
// Too many wheelEvent are sent, how should we handle them to "smoothly" zoom ?
// Too many wheelEvent are sent, how should we handle them to "smoothly" zoom ?
// something like zoom( pow(zoomFactor, event->delta() / 120) )
// something like zoom( pow(zoomFactor, event->delta() / 120) )
// use DateTime man, store last event time, and if if less than 300ms than this is one big scroll
// use DateTime man, store last event time, and if if less than 300ms than this is one big scroll
// and move scroll with one const speed.
// and move scroll with one const speed.
// so, you no will related with scroll event count
// so, you no will related with scroll event count
}
}
...
@@ -1375,10 +1364,10 @@ UBBoardView::wheelEvent (QWheelEvent *wheelEvent)
...
@@ -1375,10 +1364,10 @@ UBBoardView::wheelEvent (QWheelEvent *wheelEvent)
void
void
UBBoardView
::
leaveEvent
(
QEvent
*
event
)
UBBoardView
::
leaveEvent
(
QEvent
*
event
)
{
{
if
(
scene
())
if
(
scene
())
scene
()
->
leaveEvent
(
event
);
scene
()
->
leaveEvent
(
event
);
QGraphicsView
::
leaveEvent
(
event
);
QGraphicsView
::
leaveEvent
(
event
);
}
}
void
void
...
@@ -1386,39 +1375,39 @@ UBBoardView::drawItems (QPainter *painter, int numItems,
...
@@ -1386,39 +1375,39 @@ UBBoardView::drawItems (QPainter *painter, int numItems,
QGraphicsItem
*
items
[],
QGraphicsItem
*
items
[],
const
QStyleOptionGraphicsItem
options
[])
const
QStyleOptionGraphicsItem
options
[])
{
{
if
(
!
mFilterZIndex
)
if
(
!
mFilterZIndex
)
{
{
QGraphicsView
::
drawItems
(
painter
,
numItems
,
items
,
options
);
QGraphicsView
::
drawItems
(
painter
,
numItems
,
items
,
options
);
}
}
else
else
{
{
int
count
=
0
;
int
count
=
0
;
QGraphicsItem
**
itemsFiltered
=
new
QGraphicsItem
*
[
numItems
];
QGraphicsItem
**
itemsFiltered
=
new
QGraphicsItem
*
[
numItems
];
QStyleOptionGraphicsItem
*
optionsFiltered
=
new
QStyleOptionGraphicsItem
[
numItems
];
QStyleOptionGraphicsItem
*
optionsFiltered
=
new
QStyleOptionGraphicsItem
[
numItems
];
for
(
int
i
=
0
;
i
<
numItems
;
i
++
)
for
(
int
i
=
0
;
i
<
numItems
;
i
++
)
{
{
if
(
shouldDisplayItem
(
items
[
i
]))
if
(
shouldDisplayItem
(
items
[
i
]))
{
{
itemsFiltered
[
count
]
=
items
[
i
];
itemsFiltered
[
count
]
=
items
[
i
];
optionsFiltered
[
count
]
=
options
[
i
];
optionsFiltered
[
count
]
=
options
[
i
];
count
++
;
count
++
;
}
}
}
}
QGraphicsView
::
drawItems
(
painter
,
count
,
itemsFiltered
,
optionsFiltered
);
QGraphicsView
::
drawItems
(
painter
,
count
,
itemsFiltered
,
optionsFiltered
);
delete
[]
optionsFiltered
;
delete
[]
optionsFiltered
;
delete
[]
itemsFiltered
;
delete
[]
itemsFiltered
;
}
}
}
}
void
UBBoardView
::
dragMoveEvent
(
QDragMoveEvent
*
event
)
void
UBBoardView
::
dragMoveEvent
(
QDragMoveEvent
*
event
)
{
{
QGraphicsView
::
dragMoveEvent
(
event
);
QGraphicsView
::
dragMoveEvent
(
event
);
event
->
acceptProposedAction
();
event
->
acceptProposedAction
();
}
}
void
UBBoardView
::
dropEvent
(
QDropEvent
*
event
)
void
UBBoardView
::
dropEvent
(
QDropEvent
*
event
)
...
@@ -1447,94 +1436,94 @@ void UBBoardView::dropEvent (QDropEvent *event)
...
@@ -1447,94 +1436,94 @@ void UBBoardView::dropEvent (QDropEvent *event)
void
void
UBBoardView
::
resizeEvent
(
QResizeEvent
*
event
)
UBBoardView
::
resizeEvent
(
QResizeEvent
*
event
)
{
{
const
qreal
maxWidth
=
width
()
*
10
;
const
qreal
maxWidth
=
width
()
*
10
;
const
qreal
maxHeight
=
height
()
*
10
;
const
qreal
maxHeight
=
height
()
*
10
;
setSceneRect
(
-
(
maxWidth
/
2
),
-
(
maxHeight
/
2
),
maxWidth
,
maxHeight
);
setSceneRect
(
-
(
maxWidth
/
2
),
-
(
maxHeight
/
2
),
maxWidth
,
maxHeight
);
centerOn
(
0
,
0
);
centerOn
(
0
,
0
);
emit
resized
(
event
);
emit
resized
(
event
);
}
}
void
void
UBBoardView
::
drawBackground
(
QPainter
*
painter
,
const
QRectF
&
rect
)
UBBoardView
::
drawBackground
(
QPainter
*
painter
,
const
QRectF
&
rect
)
{
{
if
(
testAttribute
(
Qt
::
WA_TranslucentBackground
))
if
(
testAttribute
(
Qt
::
WA_TranslucentBackground
))
{
{
QGraphicsView
::
drawBackground
(
painter
,
rect
);
QGraphicsView
::
drawBackground
(
painter
,
rect
);
return
;
return
;
}
}
bool
darkBackground
=
scene
()
&&
scene
()
->
isDarkBackground
();
bool
darkBackground
=
scene
()
&&
scene
()
->
isDarkBackground
();
if
(
darkBackground
)
if
(
darkBackground
)
{
{
painter
->
fillRect
(
rect
,
QBrush
(
QColor
(
Qt
::
black
)));
painter
->
fillRect
(
rect
,
QBrush
(
QColor
(
Qt
::
black
)));
}
}
else
else
{
{
painter
->
fillRect
(
rect
,
QBrush
(
QColor
(
Qt
::
white
)));
painter
->
fillRect
(
rect
,
QBrush
(
QColor
(
Qt
::
white
)));
}
}
if
(
transform
().
m11
()
>
0.5
)
if
(
transform
().
m11
()
>
0.5
)
{
{
QColor
bgCrossColor
;
QColor
bgCrossColor
;
if
(
darkBackground
)
if
(
darkBackground
)
bgCrossColor
=
UBSettings
::
crossDarkBackground
;
bgCrossColor
=
UBSettings
::
crossDarkBackground
;
else
else
bgCrossColor
=
UBSettings
::
crossLightBackground
;
bgCrossColor
=
UBSettings
::
crossLightBackground
;
if
(
transform
().
m11
()
<
1.0
)
if
(
transform
().
m11
()
<
1.0
)
{
{
int
alpha
=
255
*
transform
().
m11
()
/
2
;
int
alpha
=
255
*
transform
().
m11
()
/
2
;
bgCrossColor
.
setAlpha
(
alpha
);
// fade the crossing on small zooms
bgCrossColor
.
setAlpha
(
alpha
);
// fade the crossing on small zooms
}
}
painter
->
setPen
(
bgCrossColor
);
painter
->
setPen
(
bgCrossColor
);
if
(
scene
()
&&
scene
()
->
isCrossedBackground
())
if
(
scene
()
&&
scene
()
->
isCrossedBackground
())
{
{
qreal
firstY
=
((
int
)
(
rect
.
y
()
/
UBSettings
::
crossSize
))
*
UBSettings
::
crossSize
;
qreal
firstY
=
((
int
)
(
rect
.
y
()
/
UBSettings
::
crossSize
))
*
UBSettings
::
crossSize
;
for
(
qreal
yPos
=
firstY
;
yPos
<
rect
.
y
()
+
rect
.
height
();
yPos
+=
UBSettings
::
crossSize
)
for
(
qreal
yPos
=
firstY
;
yPos
<
rect
.
y
()
+
rect
.
height
();
yPos
+=
UBSettings
::
crossSize
)
{
{
painter
->
drawLine
(
rect
.
x
(),
yPos
,
rect
.
x
()
+
rect
.
width
(),
yPos
);
painter
->
drawLine
(
rect
.
x
(),
yPos
,
rect
.
x
()
+
rect
.
width
(),
yPos
);
}
}
qreal
firstX
=
((
int
)
(
rect
.
x
()
/
UBSettings
::
crossSize
))
*
UBSettings
::
crossSize
;
qreal
firstX
=
((
int
)
(
rect
.
x
()
/
UBSettings
::
crossSize
))
*
UBSettings
::
crossSize
;
for
(
qreal
xPos
=
firstX
;
xPos
<
rect
.
x
()
+
rect
.
width
();
xPos
+=
UBSettings
::
crossSize
)
for
(
qreal
xPos
=
firstX
;
xPos
<
rect
.
x
()
+
rect
.
width
();
xPos
+=
UBSettings
::
crossSize
)
{
{
painter
->
drawLine
(
xPos
,
rect
.
y
(),
xPos
,
rect
.
y
()
+
rect
.
height
());
painter
->
drawLine
(
xPos
,
rect
.
y
(),
xPos
,
rect
.
y
()
+
rect
.
height
());
}
}
}
}
}
}
if
(
!
mFilterZIndex
&&
scene
())
if
(
!
mFilterZIndex
&&
scene
())
{
{
QSize
pageNominalSize
=
scene
()
->
nominalSize
();
QSize
pageNominalSize
=
scene
()
->
nominalSize
();
if
(
pageNominalSize
.
isValid
())
if
(
pageNominalSize
.
isValid
())
{
{
qreal
penWidth
=
8.0
/
transform
().
m11
();
qreal
penWidth
=
8.0
/
transform
().
m11
();
QRectF
pageRect
(
pageNominalSize
.
width
()
/
-
2
,
pageNominalSize
.
height
()
/
-
2
QRectF
pageRect
(
pageNominalSize
.
width
()
/
-
2
,
pageNominalSize
.
height
()
/
-
2
,
pageNominalSize
.
width
(),
pageNominalSize
.
height
());
,
pageNominalSize
.
width
(),
pageNominalSize
.
height
());
pageRect
.
adjust
(
-
penWidth
/
2
,
-
penWidth
/
2
,
penWidth
/
2
,
penWidth
/
2
);
pageRect
.
adjust
(
-
penWidth
/
2
,
-
penWidth
/
2
,
penWidth
/
2
,
penWidth
/
2
);
QColor
docSizeColor
;
QColor
docSizeColor
;
if
(
darkBackground
)
if
(
darkBackground
)
docSizeColor
=
UBSettings
::
documentSizeMarkColorDarkBackground
;
docSizeColor
=
UBSettings
::
documentSizeMarkColorDarkBackground
;
else
else
docSizeColor
=
UBSettings
::
documentSizeMarkColorLightBackground
;
docSizeColor
=
UBSettings
::
documentSizeMarkColorLightBackground
;
QPen
pen
(
docSizeColor
);
QPen
pen
(
docSizeColor
);
pen
.
setWidth
(
penWidth
);
pen
.
setWidth
(
penWidth
);
painter
->
setPen
(
pen
);
painter
->
setPen
(
pen
);
painter
->
drawRect
(
pageRect
);
painter
->
drawRect
(
pageRect
);
}
}
}
}
}
}
...
@@ -1542,11 +1531,11 @@ UBBoardView::drawBackground (QPainter *painter, const QRectF &rect)
...
@@ -1542,11 +1531,11 @@ UBBoardView::drawBackground (QPainter *painter, const QRectF &rect)
void
void
UBBoardView
::
settingChanged
(
QVariant
newValue
)
UBBoardView
::
settingChanged
(
QVariant
newValue
)
{
{
Q_UNUSED
(
newValue
);
Q_UNUSED
(
newValue
);
mPenPressureSensitive
=
UBSettings
::
settings
()
->
boardPenPressureSensitive
->
get
().
toBool
();
mPenPressureSensitive
=
UBSettings
::
settings
()
->
boardPenPressureSensitive
->
get
().
toBool
();
mMarkerPressureSensitive
=
UBSettings
::
settings
()
->
boardMarkerPressureSensitive
->
get
().
toBool
();
mMarkerPressureSensitive
=
UBSettings
::
settings
()
->
boardMarkerPressureSensitive
->
get
().
toBool
();
mUseHighResTabletEvent
=
UBSettings
::
settings
()
->
boardUseHighResTabletEvent
->
get
().
toBool
();
mUseHighResTabletEvent
=
UBSettings
::
settings
()
->
boardUseHighResTabletEvent
->
get
().
toBool
();
}
}
void
UBBoardView
::
virtualKeyboardActivated
(
bool
b
)
void
UBBoardView
::
virtualKeyboardActivated
(
bool
b
)
...
@@ -1566,8 +1555,8 @@ bool UBBoardView::isAbsurdPoint(QPoint point)
...
@@ -1566,8 +1555,8 @@ bool UBBoardView::isAbsurdPoint(QPoint point)
for
(
int
i
=
0
;
i
<
desktop
->
numScreens
();
i
++
)
for
(
int
i
=
0
;
i
<
desktop
->
numScreens
();
i
++
)
{
{
QRect
screenRect
=
desktop
->
screenGeometry
(
i
);
QRect
screenRect
=
desktop
->
screenGeometry
(
i
);
isValidPoint
=
isValidPoint
||
screenRect
.
contains
(
mapToGlobal
(
point
));
isValidPoint
=
isValidPoint
||
screenRect
.
contains
(
mapToGlobal
(
point
));
}
}
return
!
isValidPoint
;
return
!
isValidPoint
;
...
@@ -1576,56 +1565,56 @@ bool UBBoardView::isAbsurdPoint(QPoint point)
...
@@ -1576,56 +1565,56 @@ bool UBBoardView::isAbsurdPoint(QPoint point)
void
void
UBBoardView
::
focusOutEvent
(
QFocusEvent
*
event
)
UBBoardView
::
focusOutEvent
(
QFocusEvent
*
event
)
{
{
Q_UNUSED
(
event
);
Q_UNUSED
(
event
);
}
}
void
void
UBBoardView
::
setToolCursor
(
int
tool
)
UBBoardView
::
setToolCursor
(
int
tool
)
{
{
QWidget
*
controlViewport
=
viewport
();
QWidget
*
controlViewport
=
viewport
();
switch
(
tool
)
switch
(
tool
)
{
{
case
UBStylusTool
:
:
Pen
:
case
UBStylusTool
:
:
Pen
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
penCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
penCursor
);
break
;
break
;
case
UBStylusTool
:
:
Eraser
:
case
UBStylusTool
:
:
Eraser
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
eraserCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
eraserCursor
);
scene
()
->
hideEraser
();
scene
()
->
hideEraser
();
break
;
break
;
case
UBStylusTool
:
:
Marker
:
case
UBStylusTool
:
:
Marker
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
markerCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
markerCursor
);
break
;
break
;
case
UBStylusTool
:
:
Pointer
:
case
UBStylusTool
:
:
Pointer
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
pointerCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
pointerCursor
);
break
;
break
;
case
UBStylusTool
:
:
Hand
:
case
UBStylusTool
:
:
Hand
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
handCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
handCursor
);
break
;
break
;
case
UBStylusTool
:
:
ZoomIn
:
case
UBStylusTool
:
:
ZoomIn
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
zoomInCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
zoomInCursor
);
break
;
break
;
case
UBStylusTool
:
:
ZoomOut
:
case
UBStylusTool
:
:
ZoomOut
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
zoomOutCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
zoomOutCursor
);
break
;
break
;
case
UBStylusTool
:
:
Selector
:
case
UBStylusTool
:
:
Selector
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
arrowCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
arrowCursor
);
break
;
break
;
case
UBStylusTool
:
:
Play
:
case
UBStylusTool
:
:
Play
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
playCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
playCursor
);
break
;
break
;
case
UBStylusTool
:
:
Line
:
case
UBStylusTool
:
:
Line
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
penCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
penCursor
);
break
;
break
;
case
UBStylusTool
:
:
Text
:
case
UBStylusTool
:
:
Text
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
textCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
textCursor
);
break
;
break
;
case
UBStylusTool
:
:
Capture
:
case
UBStylusTool
:
:
Capture
:
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
penCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
penCursor
);
break
;
break
;
default
:
default
:
Q_ASSERT
(
false
);
Q_ASSERT
(
false
);
//failsafe
//failsafe
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
penCursor
);
controlViewport
->
setCursor
(
UBResources
::
resources
()
->
penCursor
);
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
src/board/UBDrawingController.cpp
View file @
4ace295a
...
@@ -159,35 +159,23 @@ bool UBDrawingController::isDrawingTool()
...
@@ -159,35 +159,23 @@ bool UBDrawingController::isDrawingTool()
int
UBDrawingController
::
currentToolWidthIndex
()
int
UBDrawingController
::
currentToolWidthIndex
()
{
{
if
(
stylusTool
()
==
UBStylusTool
::
Pen
||
stylusTool
()
==
UBStylusTool
::
Line
)
if
(
stylusTool
()
==
UBStylusTool
::
Pen
||
stylusTool
()
==
UBStylusTool
::
Line
)
{
return
UBSettings
::
settings
()
->
penWidthIndex
();
return
UBSettings
::
settings
()
->
penWidthIndex
();
}
else
if
(
stylusTool
()
==
UBStylusTool
::
Marker
)
else
if
(
stylusTool
()
==
UBStylusTool
::
Marker
)
{
return
UBSettings
::
settings
()
->
markerWidthIndex
();
return
UBSettings
::
settings
()
->
markerWidthIndex
();
}
else
else
{
return
-
1
;
return
-
1
;
}
}
}
qreal
UBDrawingController
::
currentToolWidth
()
qreal
UBDrawingController
::
currentToolWidth
()
{
{
if
(
stylusTool
()
==
UBStylusTool
::
Pen
||
stylusTool
()
==
UBStylusTool
::
Line
)
if
(
stylusTool
()
==
UBStylusTool
::
Pen
||
stylusTool
()
==
UBStylusTool
::
Line
)
{
return
UBSettings
::
settings
()
->
currentPenWidth
();
return
UBSettings
::
settings
()
->
currentPenWidth
();
}
else
if
(
stylusTool
()
==
UBStylusTool
::
Marker
)
else
if
(
stylusTool
()
==
UBStylusTool
::
Marker
)
{
return
UBSettings
::
settings
()
->
currentMarkerWidth
();
return
UBSettings
::
settings
()
->
currentMarkerWidth
();
}
else
else
{
//failsafe
//failsafe
return
UBSettings
::
settings
()
->
currentPenWidth
();
return
UBSettings
::
settings
()
->
currentPenWidth
();
}
}
}
...
...
This diff is collapsed.
Click to expand it.
src/core/UB.h
View file @
4ace295a
...
@@ -50,17 +50,17 @@ struct UBStylusTool
...
@@ -50,17 +50,17 @@ struct UBStylusTool
{
{
enum
Enum
enum
Enum
{
{
Pen
=
0
,
Pen
=
0
,
Eraser
,
Eraser
,
Marker
,
Marker
,
Selector
,
Selector
,
Play
,
Play
,
Hand
,
Hand
,
ZoomIn
,
ZoomIn
,
ZoomOut
,
ZoomOut
,
Pointer
,
Pointer
,
Line
,
Line
,
Text
,
Text
,
Capture
Capture
};
};
};
};
...
@@ -138,17 +138,17 @@ struct UBGraphicsItemType
...
@@ -138,17 +138,17 @@ struct UBGraphicsItemType
{
{
enum
Enum
enum
Enum
{
{
PolygonItemType
=
QGraphicsItem
::
UserType
+
1
,
PolygonItemType
=
QGraphicsItem
::
UserType
+
1
,
PixmapItemType
,
PixmapItemType
,
SvgItemType
,
SvgItemType
,
DelegateButtonType
,
DelegateButtonType
,
MediaItemType
,
MediaItemType
,
PDFItemType
,
PDFItemType
,
TextItemType
,
TextItemType
,
CurtainItemType
,
CurtainItemType
,
RulerItemType
,
RulerItemType
,
CompassItemType
,
CompassItemType
,
ProtractorItemType
,
ProtractorItemType
,
StrokeItemType
,
StrokeItemType
,
TriangleItemType
,
TriangleItemType
,
MagnifierItemType
,
MagnifierItemType
,
...
...
This diff is collapsed.
Click to expand it.
src/domain/UBGraphicsItemDelegate.cpp
View file @
4ace295a
...
@@ -236,9 +236,7 @@ UBGraphicsItemDelegate::~UBGraphicsItemDelegate()
...
@@ -236,9 +236,7 @@ UBGraphicsItemDelegate::~UBGraphicsItemDelegate()
QVariant
UBGraphicsItemDelegate
::
itemChange
(
QGraphicsItem
::
GraphicsItemChange
change
,
const
QVariant
&
value
)
QVariant
UBGraphicsItemDelegate
::
itemChange
(
QGraphicsItem
::
GraphicsItemChange
change
,
const
QVariant
&
value
)
{
{
if
(
change
==
QGraphicsItem
::
ItemChildAddedChange
){
if
(
change
==
QGraphicsItem
::
ItemSelectedHasChanged
)
{
}
else
if
(
change
==
QGraphicsItem
::
ItemSelectedHasChanged
)
{
bool
ok
;
bool
ok
;
bool
selected
=
value
.
toUInt
(
&
ok
);
bool
selected
=
value
.
toUInt
(
&
ok
);
if
(
ok
)
{
if
(
ok
)
{
...
@@ -286,6 +284,8 @@ bool UBGraphicsItemDelegate::mousePressEvent(QGraphicsSceneMouseEvent *event)
...
@@ -286,6 +284,8 @@ bool UBGraphicsItemDelegate::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
{
mDragStartPosition
=
event
->
pos
();
mDragStartPosition
=
event
->
pos
();
mMoved
=
false
;
startUndoStep
();
startUndoStep
();
if
(
!
delegated
()
->
isSelected
())
if
(
!
delegated
()
->
isSelected
())
...
@@ -315,6 +315,7 @@ bool UBGraphicsItemDelegate::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
...
@@ -315,6 +315,7 @@ bool UBGraphicsItemDelegate::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
}
}
mDrag
->
exec
();
mDrag
->
exec
();
mDragPixmap
=
QPixmap
();
mDragPixmap
=
QPixmap
();
mMoved
=
true
;
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -439,22 +440,9 @@ void UBGraphicsItemDelegate::setZOrderButtonsVisible(bool visible)
...
@@ -439,22 +440,9 @@ void UBGraphicsItemDelegate::setZOrderButtonsVisible(bool visible)
void
UBGraphicsItemDelegate
::
remove
(
bool
canUndo
)
void
UBGraphicsItemDelegate
::
remove
(
bool
canUndo
)
{
{
/*UBGraphicsScene* scene = dynamic_cast<UBGraphicsScene*>(mDelegated->scene());
if (scene && canUndo)
{
UBGraphicsItemUndoCommand *uc = new UBGraphicsItemUndoCommand(scene, mDelegated, 0);
UBApplication::undoStack->push(uc);
}
mDelegated->hide(); */
UBGraphicsScene
*
scene
=
dynamic_cast
<
UBGraphicsScene
*>
(
mDelegated
->
scene
());
UBGraphicsScene
*
scene
=
dynamic_cast
<
UBGraphicsScene
*>
(
mDelegated
->
scene
());
if
(
scene
)
if
(
scene
)
{
{
// bool shownOnDisplay = mDelegated->data(UBGraphicsItemData::ItemLayerType).toInt() != UBItemLayerType::Control;
// showHide(shownOnDisplay);
// updateFrame();
// updateButtons();
if
(
mFrame
&&
!
mFrame
->
scene
()
&&
mDelegated
->
scene
())
if
(
mFrame
&&
!
mFrame
->
scene
()
&&
mDelegated
->
scene
())
{
{
mDelegated
->
scene
()
->
addItem
(
mFrame
);
mDelegated
->
scene
()
->
addItem
(
mFrame
);
...
@@ -734,7 +722,7 @@ void UBGraphicsItemDelegate::updateButtons(bool showUpdated)
...
@@ -734,7 +722,7 @@ void UBGraphicsItemDelegate::updateButtons(bool showUpdated)
mDelegated
->
scene
()
->
addItem
(
mDeleteButton
);
mDelegated
->
scene
()
->
addItem
(
mDeleteButton
);
}
}
if
(
showUpdated
/*&& mFrame->isResizing()*/
)
if
(
showUpdated
)
mDeleteButton
->
show
();
mDeleteButton
->
show
();
int
i
=
1
,
j
=
0
,
k
=
0
;
int
i
=
1
,
j
=
0
,
k
=
0
;
...
@@ -772,7 +760,7 @@ void UBGraphicsItemDelegate::setButtonsVisible(bool visible)
...
@@ -772,7 +760,7 @@ void UBGraphicsItemDelegate::setButtonsVisible(bool visible)
}
}
UBGraphicsToolBarItem
::
UBGraphicsToolBarItem
(
QGraphicsItem
*
parent
)
:
UBGraphicsToolBarItem
::
UBGraphicsToolBarItem
(
QGraphicsItem
*
parent
)
:
QGraphicsRectItem
(
parent
),
QGraphicsRectItem
(
parent
),
mShifting
(
true
),
mShifting
(
true
),
mVisible
(
false
),
mVisible
(
false
),
...
@@ -785,7 +773,6 @@ UBGraphicsToolBarItem::UBGraphicsToolBarItem(QGraphicsItem * parent) :
...
@@ -785,7 +773,6 @@ UBGraphicsToolBarItem::UBGraphicsToolBarItem(QGraphicsItem * parent) :
rect
.
setWidth
(
parent
->
boundingRect
().
width
());
rect
.
setWidth
(
parent
->
boundingRect
().
width
());
this
->
setRect
(
rect
);
this
->
setRect
(
rect
);
// setBrush(QColor(UBSettings::paletteColor));
setPen
(
Qt
::
NoPen
);
setPen
(
Qt
::
NoPen
);
hide
();
hide
();
...
@@ -815,36 +802,40 @@ void UBGraphicsToolBarItem::paint(QPainter *painter, const QStyleOptionGraphicsI
...
@@ -815,36 +802,40 @@ void UBGraphicsToolBarItem::paint(QPainter *painter, const QStyleOptionGraphicsI
Q_UNUSED
(
widget
);
Q_UNUSED
(
widget
);
QPainterPath
path
;
QPainterPath
path
;
path
.
addRoundedRect
(
rect
(),
10
,
10
);
path
.
addRoundedRect
(
rect
(),
10
,
10
);
setBrush
(
QBrush
(
UBSettings
::
paletteColor
));
setBrush
(
QBrush
(
UBSettings
::
paletteColor
));
painter
->
fillPath
(
path
,
brush
());
painter
->
fillPath
(
path
,
brush
());
}
}
MediaTimer
::
MediaTimer
(
QGraphicsItem
*
parent
)
:
QGraphicsRectItem
(
parent
)
MediaTimer
::
MediaTimer
(
QGraphicsItem
*
parent
)
:
QGraphicsRectItem
(
parent
)
{
{
val
=
0
;
val
=
0
;
smallPoint
=
false
;
smallPoint
=
false
;
setNumDigits
(
4
);
setNumDigits
(
6
);
}
}
MediaTimer
::~
MediaTimer
()
MediaTimer
::~
MediaTimer
()
{}
{}
void
MediaTimer
::
positionHandles
()
{
digitSpace
=
smallPoint
?
2
:
1
;
ySegLen
=
rect
().
height
()
*
5
/
12
;
xSegLen
=
ySegLen
*
2
/
3
;
segLen
=
xSegLen
;
xAdvance
=
segLen
*
(
5
+
digitSpace
)
/
5
;
xOffset
=
(
rect
().
width
()
-
ndigits
*
xAdvance
+
segLen
/
5
)
/
2
;
yOffset
=
rect
().
height
()
-
ySegLen
*
2
;
setRect
(
rect
().
x
(),
rect
().
y
(),
xOffset
+
xAdvance
*
ndigits
,
rect
().
height
());
}
void
MediaTimer
::
drawString
(
const
QString
&
s
,
QPainter
&
p
,
void
MediaTimer
::
drawString
(
const
QString
&
s
,
QPainter
&
p
,
QBitArray
*
newPoints
,
bool
newString
)
QBitArray
*
newPoints
,
bool
newString
)
{
{
QPoint
pos
;
QPoint
pos
;
int
digitSpace
=
smallPoint
?
2
:
1
;
int
xSegLen
=
(
rect
().
width
()
/
1
)
*
5
/
(
ndigits
*
(
5
+
digitSpace
)
+
digitSpace
);
int
ySegLen
=
rect
().
height
()
*
5
/
12
;
int
segLen
=
ySegLen
>
xSegLen
?
xSegLen
:
ySegLen
;
int
xAdvance
=
segLen
*
(
5
+
digitSpace
)
/
5
;
int
xOffset
=
rect
().
x
()
+
(
rect
().
width
()
/
1
-
ndigits
*
xAdvance
+
segLen
/
5
)
/
2
;
int
yOffset
=
(
rect
().
height
()
-
segLen
*
2
)
/
2
;
for
(
int
i
=
0
;
i
<
ndigits
;
i
++
)
{
for
(
int
i
=
0
;
i
<
ndigits
;
i
++
)
{
pos
=
QPoint
(
xOffset
+
xAdvance
*
i
,
yOffset
);
pos
=
QPoint
(
xOffset
+
xAdvance
*
i
,
yOffset
);
if
(
newString
)
if
(
newString
)
...
@@ -878,11 +869,11 @@ void MediaTimer::drawDigit(const QPoint &pos, QPainter &p, int segLen,
...
@@ -878,11 +869,11 @@ void MediaTimer::drawDigit(const QPoint &pos, QPainter &p, int segLen,
int
nUpdates
;
int
nUpdates
;
const
char
*
segs
;
const
char
*
segs
;
int
i
,
j
;
int
i
,
j
;
const
char
erase
=
0
;
const
char
erase
=
0
;
const
char
draw
=
1
;
const
char
draw
=
1
;
const
char
leaveAlone
=
2
;
const
char
leaveAlone
=
2
;
segs
=
getSegments
(
oldCh
);
segs
=
getSegments
(
oldCh
);
for
(
nErases
=
0
;
segs
[
nErases
]
!=
99
;
nErases
++
)
{
for
(
nErases
=
0
;
segs
[
nErases
]
!=
99
;
nErases
++
)
{
updates
[
nErases
][
0
]
=
erase
;
// get segments to erase to
updates
[
nErases
][
0
]
=
erase
;
// get segments to erase to
...
@@ -910,8 +901,8 @@ void MediaTimer::drawDigit(const QPoint &pos, QPainter &p, int segLen,
...
@@ -910,8 +901,8 @@ void MediaTimer::drawDigit(const QPoint &pos, QPainter &p, int segLen,
}
}
}
}
char
MediaTimer
::
segments
[][
8
]
=
char
MediaTimer
::
segments
[][
8
]
=
{
{
{
0
,
1
,
2
,
4
,
5
,
6
,
99
,
0
},
// 0 0
{
0
,
1
,
2
,
4
,
5
,
6
,
99
,
0
},
// 0 0
{
2
,
5
,
99
,
0
,
0
,
0
,
0
,
0
},
// 1 1
{
2
,
5
,
99
,
0
,
0
,
0
,
0
,
0
},
// 1 1
{
0
,
2
,
3
,
4
,
6
,
99
,
0
,
0
},
// 2 2
{
0
,
2
,
3
,
4
,
6
,
99
,
0
,
0
},
// 2 2
...
@@ -1090,10 +1081,6 @@ void MediaTimer::paint(QPainter *p,
...
@@ -1090,10 +1081,6 @@ void MediaTimer::paint(QPainter *p,
Q_UNUSED
(
option
);
Q_UNUSED
(
option
);
Q_UNUSED
(
widget
);
Q_UNUSED
(
widget
);
QFont
f
=
p
->
font
();
f
.
setPointSizeF
(
f
.
pointSizeF
());
p
->
setFont
(
f
);
if
(
smallPoint
)
if
(
smallPoint
)
drawString
(
digitStr
,
*
p
,
&
points
,
false
);
drawString
(
digitStr
,
*
p
,
&
points
,
false
);
else
else
...
@@ -1178,7 +1165,7 @@ void MediaTimer::setNumDigits(int numDigits)
...
@@ -1178,7 +1165,7 @@ void MediaTimer::setNumDigits(int numDigits)
numDigits
=
0
;
numDigits
=
0
;
}
}
if
(
digitStr
.
isNull
())
{
// from constructor
if
(
digitStr
.
isNull
())
{
// from constructor
ndigits
=
numDigits
;
ndigits
=
numDigits
+
numDigits
/
2
-
1
;
digitStr
.
fill
(
QLatin1Char
(
' '
),
ndigits
);
digitStr
.
fill
(
QLatin1Char
(
' '
),
ndigits
);
points
.
fill
(
0
,
ndigits
);
points
.
fill
(
0
,
ndigits
);
digitStr
[
ndigits
-
1
]
=
QLatin1Char
(
'0'
);
// "0" is the default number
digitStr
[
ndigits
-
1
]
=
QLatin1Char
(
'0'
);
// "0" is the default number
...
@@ -1208,6 +1195,7 @@ void MediaTimer::setNumDigits(int numDigits)
...
@@ -1208,6 +1195,7 @@ void MediaTimer::setNumDigits(int numDigits)
ndigits
=
numDigits
;
ndigits
=
numDigits
;
update
();
update
();
}
}
positionHandles
();
}
}
DelegateMediaControl
::
DelegateMediaControl
(
UBGraphicsMediaItem
*
pDelegated
,
QGraphicsItem
*
parent
)
DelegateMediaControl
::
DelegateMediaControl
(
UBGraphicsMediaItem
*
pDelegated
,
QGraphicsItem
*
parent
)
...
@@ -1235,15 +1223,8 @@ void DelegateMediaControl::paint(QPainter *painter,
...
@@ -1235,15 +1223,8 @@ void DelegateMediaControl::paint(QPainter *painter,
{
{
Q_UNUSED
(
option
);
Q_UNUSED
(
option
);
Q_UNUSED
(
widget
);
Q_UNUSED
(
widget
);
QPainterPath
path
;
mLCDTimerArea
.
setHeight
(
rect
().
height
());
QPainterPath
path
;
mLCDTimerArea
.
setWidth
(
rect
().
height
());
mSeecArea
.
setWidth
(
rect
().
width
()
-
mLCDTimerArea
.
width
()
-
2
);
mSeecArea
.
setHeight
(
rect
().
height
()
-
2
*
mSeecAreaBorderHeight
);
mSeecArea
.
setY
(
mSeecAreaBorderHeight
);
path
.
addRoundedRect
(
mSeecArea
,
mSeecArea
.
height
()
/
2
,
mSeecArea
.
height
()
/
2
);
path
.
addRoundedRect
(
mSeecArea
,
mSeecArea
.
height
()
/
2
,
mSeecArea
.
height
()
/
2
);
painter
->
fillPath
(
path
,
brush
());
painter
->
fillPath
(
path
,
brush
());
...
@@ -1274,28 +1255,59 @@ QPainterPath DelegateMediaControl::shape() const
...
@@ -1274,28 +1255,59 @@ QPainterPath DelegateMediaControl::shape() const
void
DelegateMediaControl
::
positionHandles
()
void
DelegateMediaControl
::
positionHandles
()
{
{
mLCDTimerArea
.
setWidth
(
parentItem
()
->
boundingRect
().
height
());
QRectF
selfRect
=
rect
();
selfRect
.
setHeight
(
parentItem
()
->
boundingRect
().
height
());
setRect
(
selfRect
);
QTime
tTotal
;
tTotal
=
tTotal
.
addMSecs
(
mTotalTimeInMs
);
mLCDTimerArea
.
setHeight
(
parentItem
()
->
boundingRect
().
height
());
mLCDTimerArea
.
setHeight
(
parentItem
()
->
boundingRect
().
height
());
int
digitsCount
=
2
;
int
timerWidth
=
mLCDTimerArea
.
height
();
mDisplayFormat
=
"ss"
;
if
(
tTotal
.
minute
()
>
0
)
{
mDisplayFormat
=
"mm:"
+
mDisplayFormat
;
digitsCount
+=
3
;
timerWidth
+=
mLCDTimerArea
.
height
()
*
0.5
;
}
if
(
tTotal
.
hour
()
>
0
)
{
mDisplayFormat
=
"hh:"
+
mDisplayFormat
;
digitsCount
+=
3
;
timerWidth
+=
mLCDTimerArea
.
height
();
}
lcdTimer
->
setNumDigits
(
digitsCount
);
mLCDTimerArea
.
setWidth
(
timerWidth
);
lcdTimer
->
setRect
(
mLCDTimerArea
);
lcdTimer
->
setRect
(
mLCDTimerArea
);
lcdTimer
->
setPos
(
mSeecArea
.
width
()
-
mLCDTimerArea
.
width
(),
0
);
// not the best solution, but it works.
lcdTimer
->
positionHandles
();
mLCDTimerArea
=
lcdTimer
->
rect
();
// -------------------------------------
lcdTimer
->
setPos
(
rect
().
width
()
-
mLCDTimerArea
.
width
(),
0
);
mSeecAreaBorderHeight
=
rect
().
height
()
/
20
;
mSeecAreaBorderHeight
=
rect
().
height
()
/
20
;
mSeecArea
.
setWidth
(
rect
().
width
()
-
mLCDTimerArea
.
width
()
-
2
);
mSeecArea
.
setWidth
(
rect
().
width
()
-
mLCDTimerArea
.
width
()
-
2
);
mSeecArea
.
setHeight
(
rect
().
height
()
-
2
*
mSeecAreaBorderHeight
);
mSeecArea
.
setHeight
(
rect
().
height
()
-
2
*
mSeecAreaBorderHeight
);
mSeecArea
.
setY
(
mSeecAreaBorderHeight
);
mSeecArea
.
setY
(
mSeecAreaBorderHeight
);
QRectF
selfRect
=
rect
();
selfRect
.
setHeight
(
parentItem
()
->
boundingRect
().
height
());
setRect
(
selfRect
);
lcdTimer
->
setPos
(
rect
().
width
()
-
mLCDTimerArea
.
width
(),
0
);
}
}
void
DelegateMediaControl
::
update
()
void
DelegateMediaControl
::
update
()
{
{
QTime
t
;
QTime
tCurrent
;
t
=
t
.
addMSecs
(
mCurrentTimeInMs
<
0
?
0
:
mCurrentTimeInMs
);
tCurrent
=
tCurrent
.
addMSecs
(
mCurrentTimeInMs
<
0
?
0
:
mCurrentTimeInMs
);
lcdTimer
->
display
(
t
.
toString
(
"m:ss"
));
lcdTimer
->
display
(
tCurrent
.
toString
(
mDisplayFormat
));
QGraphicsRectItem
::
update
();
QGraphicsRectItem
::
update
();
}
}
...
@@ -1309,17 +1321,21 @@ void DelegateMediaControl::updateTicker(qint64 time )
...
@@ -1309,17 +1321,21 @@ void DelegateMediaControl::updateTicker(qint64 time )
void
DelegateMediaControl
::
totalTimeChanged
(
qint64
newTotalTime
)
void
DelegateMediaControl
::
totalTimeChanged
(
qint64
newTotalTime
)
{
{
mTotalTimeInMs
=
newTotalTime
;
if
(
mTotalTimeInMs
!=
newTotalTime
)
update
();
{
mTotalTimeInMs
=
newTotalTime
;
positionHandles
();
update
();
}
}
}
void
DelegateMediaControl
::
mousePressEvent
(
QGraphicsSceneMouseEvent
*
event
)
void
DelegateMediaControl
::
mousePressEvent
(
QGraphicsSceneMouseEvent
*
event
)
{
{
qreal
frameWidth
=
mSeecArea
.
height
()
/
2
;
qreal
frameWidth
=
mSeecArea
.
height
()
/
2
;
if
(
boundingRect
().
contains
(
event
->
pos
()
-
QPointF
(
frameWidth
,
0
))
if
(
boundingRect
().
contains
(
event
->
pos
()
-
QPointF
(
frameWidth
,
0
))
&&
boundingRect
().
contains
(
event
->
pos
()
+
QPointF
(
frameWidth
,
0
)))
&&
boundingRect
().
contains
(
event
->
pos
()
+
QPointF
(
frameWidth
,
0
)))
{
{
mDisplayCurrentTime
=
true
;
mDisplayCurrentTime
=
true
;
seekToMousePos
(
event
->
pos
());
seekToMousePos
(
event
->
pos
());
this
->
update
();
this
->
update
();
...
@@ -1331,9 +1347,9 @@ void DelegateMediaControl::mousePressEvent(QGraphicsSceneMouseEvent *event)
...
@@ -1331,9 +1347,9 @@ void DelegateMediaControl::mousePressEvent(QGraphicsSceneMouseEvent *event)
void
DelegateMediaControl
::
mouseMoveEvent
(
QGraphicsSceneMouseEvent
*
event
)
void
DelegateMediaControl
::
mouseMoveEvent
(
QGraphicsSceneMouseEvent
*
event
)
{
{
qreal
frameWidth
=
mSeecArea
.
height
()
/
2
;
qreal
frameWidth
=
mSeecArea
.
height
()
/
2
;
if
(
boundingRect
().
contains
(
event
->
pos
()
-
QPointF
(
frameWidth
,
0
))
if
(
boundingRect
().
contains
(
event
->
pos
()
-
QPointF
(
frameWidth
,
0
))
&&
boundingRect
().
contains
(
event
->
pos
()
+
QPointF
(
frameWidth
,
0
)))
&&
boundingRect
().
contains
(
event
->
pos
()
+
QPointF
(
frameWidth
,
0
)))
{
{
seekToMousePos
(
event
->
pos
());
seekToMousePos
(
event
->
pos
());
this
->
update
();
this
->
update
();
event
->
accept
();
event
->
accept
();
...
@@ -1347,7 +1363,7 @@ void DelegateMediaControl::seekToMousePos(QPointF mousePos)
...
@@ -1347,7 +1363,7 @@ void DelegateMediaControl::seekToMousePos(QPointF mousePos)
qreal
frameWidth
=
rect
().
height
()
/
2
;
qreal
frameWidth
=
rect
().
height
()
/
2
;
minX
=
frameWidth
;
minX
=
frameWidth
;
length
=
mSeecArea
.
width
()
-
lcdTimer
->
rect
().
width
();
length
=
mSeecArea
.
width
()
-
mSeecArea
.
height
();
qreal
mouseX
=
mousePos
.
x
();
qreal
mouseX
=
mousePos
.
x
();
if
(
mouseX
>=
(
mSeecArea
.
width
()
-
mSeecArea
.
height
()
/
2
))
if
(
mouseX
>=
(
mSeecArea
.
width
()
-
mSeecArea
.
height
()
/
2
))
...
...
This diff is collapsed.
Click to expand it.
src/domain/UBGraphicsItemDelegate.h
View file @
4ace295a
...
@@ -104,10 +104,12 @@ public:
...
@@ -104,10 +104,12 @@ public:
MediaTimer
(
QGraphicsItem
*
parent
=
0
);
MediaTimer
(
QGraphicsItem
*
parent
=
0
);
~
MediaTimer
();
~
MediaTimer
();
void
positionHandles
();
void
paint
(
QPainter
*
painter
,
const
QStyleOptionGraphicsItem
*
option
,
void
paint
(
QPainter
*
painter
,
const
QStyleOptionGraphicsItem
*
option
,
QWidget
*
widget
);
QWidget
*
widget
);
void
display
(
const
QString
&
str
);
void
display
(
const
QString
&
str
);
void
setNumDigits
(
int
nDigits
);
private
:
private
:
...
@@ -117,7 +119,6 @@ private:
...
@@ -117,7 +119,6 @@ private:
void
drawSegment
(
const
QPoint
&
,
char
,
QPainter
&
,
int
,
bool
=
false
);
void
drawSegment
(
const
QPoint
&
,
char
,
QPainter
&
,
int
,
bool
=
false
);
void
addPoint
(
QPolygon
&
,
const
QPoint
&
);
void
addPoint
(
QPolygon
&
,
const
QPoint
&
);
void
internalSetString
(
const
QString
&
s
);
void
internalSetString
(
const
QString
&
s
);
void
setNumDigits
(
int
nDigits
);
static
char
segments
[][
8
];
static
char
segments
[][
8
];
...
@@ -128,6 +129,14 @@ private:
...
@@ -128,6 +129,14 @@ private:
uint
shadow
:
1
;
uint
shadow
:
1
;
uint
smallPoint
:
1
;
uint
smallPoint
:
1
;
int
digitSpace
;
int
xSegLen
;
int
ySegLen
;
int
segLen
;
int
xAdvance
;
int
xOffset
;
int
yOffset
;
};
};
class
DelegateMediaControl
:
public
QObject
,
public
QGraphicsRectItem
class
DelegateMediaControl
:
public
QObject
,
public
QGraphicsRectItem
...
@@ -178,6 +187,8 @@ class DelegateMediaControl: public QObject, public QGraphicsRectItem
...
@@ -178,6 +187,8 @@ class DelegateMediaControl: public QObject, public QGraphicsRectItem
QRectF
mLCDTimerArea
;
QRectF
mLCDTimerArea
;
MediaTimer
*
lcdTimer
;
MediaTimer
*
lcdTimer
;
QString
mDisplayFormat
;
};
};
class
UBGraphicsToolBarItem
:
public
QGraphicsRectItem
,
public
QObject
class
UBGraphicsToolBarItem
:
public
QGraphicsRectItem
,
public
QObject
...
@@ -189,7 +200,7 @@ class UBGraphicsToolBarItem : public QGraphicsRectItem, public QObject
...
@@ -189,7 +200,7 @@ class UBGraphicsToolBarItem : public QGraphicsRectItem, public QObject
bool
isVisibleOnBoard
()
const
{
return
mVisible
;
}
bool
isVisibleOnBoard
()
const
{
return
mVisible
;
}
void
setVisibleOnBoard
(
bool
visible
)
{
mVisible
=
visible
;
}
void
setVisibleOnBoard
(
bool
visible
)
{
mVisible
=
visible
;
}
bool
isShifting
()
const
{
return
mShifting
;
}
bool
isShifting
()
const
{
return
mShifting
;
}
void
setShifting
(
bool
shifting
)
{
mShifting
=
shifting
;
}
void
setShifting
(
bool
shifting
)
{
mShifting
=
shifting
;
}
QList
<
QGraphicsItem
*>
itemsOnToolBar
()
const
{
return
mItemsOnToolBar
;
}
QList
<
QGraphicsItem
*>
itemsOnToolBar
()
const
{
return
mItemsOnToolBar
;
}
void
setItemsOnToolBar
(
QList
<
QGraphicsItem
*>
itemsOnToolBar
)
{
mItemsOnToolBar
=
itemsOnToolBar
;}
void
setItemsOnToolBar
(
QList
<
QGraphicsItem
*>
itemsOnToolBar
)
{
mItemsOnToolBar
=
itemsOnToolBar
;}
int
minWidth
()
{
return
mMinWidth
;
}
int
minWidth
()
{
return
mMinWidth
;
}
...
@@ -340,6 +351,8 @@ private:
...
@@ -340,6 +351,8 @@ private:
bool
mToolBarUsed
;
bool
mToolBarUsed
;
bool
mShowGoContentButton
;
bool
mShowGoContentButton
;
bool
mMoved
;
};
};
...
...
This diff is collapsed.
Click to expand it.
src/domain/UBGraphicsMediaItem.cpp
View file @
4ace295a
...
@@ -85,7 +85,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
...
@@ -85,7 +85,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
if
(
""
==
mediaPath
)
if
(
""
==
mediaPath
)
mediaPath
=
pMediaFileUrl
.
toLocalFile
();
mediaPath
=
pMediaFileUrl
.
toLocalFile
();
if
(
mediaPath
.
toLower
().
contains
(
"videos"
))
if
(
mediaPath
.
toLower
().
contains
(
"videos"
))
{
{
mMediaType
=
mediaType_Video
;
mMediaType
=
mediaType_Video
;
...
@@ -102,8 +102,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
...
@@ -102,8 +102,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
haveLinkedImage
=
true
;
haveLinkedImage
=
true
;
}
}
else
else
if
(
mediaPath
.
toLower
().
contains
(
"audios"
))
if
(
mediaPath
.
toLower
().
contains
(
"audios"
))
{
{
mMediaType
=
mediaType_Audio
;
mMediaType
=
mediaType_Audio
;
mAudioOutput
=
new
Phonon
::
AudioOutput
(
Phonon
::
MusicCategory
,
this
);
mAudioOutput
=
new
Phonon
::
AudioOutput
(
Phonon
::
MusicCategory
,
this
);
...
@@ -117,20 +116,20 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
...
@@ -117,20 +116,20 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
borderSize
=
pAudioWidget
->
borderSize
();
borderSize
=
pAudioWidget
->
borderSize
();
}
}
mAudioWidget
->
resize
(
320
,
26
+
3
*
borderSize
);
mAudioWidget
->
resize
(
320
,
26
+
2
*
borderSize
);
//3*border size with enabled title
mAudioWidget
->
setMinimumSize
(
150
,
26
+
borderSize
);
mAudioWidget
->
setMinimumSize
(
150
,
26
+
borderSize
);
haveLinkedImage
=
false
;
haveLinkedImage
=
false
;
}
}
Phonon
::
createPath
(
mMediaObject
,
mAudioOutput
);
Phonon
::
createPath
(
mMediaObject
,
mAudioOutput
);
mSource
=
Phonon
::
MediaSource
(
pMediaFileUrl
);
mSource
=
Phonon
::
MediaSource
(
pMediaFileUrl
);
mMediaObject
->
setCurrentSource
(
mSource
);
mMediaObject
->
setCurrentSource
(
mSource
);
// we should create delegate after media objects because delegate uses his properties at creation.
// we should create delegate after media objects because delegate uses his properties at creation.
setDelegate
(
new
UBGraphicsMediaItemDelegate
(
this
,
mMediaObject
));
setDelegate
(
new
UBGraphicsMediaItemDelegate
(
this
,
mMediaObject
));
// delegate should be created earler because we setWidget calls resize event for graphics proxy widgt.
// delegate should be created earler because we setWidget calls resize event for graphics proxy widgt.
// resize uses delegate.
// resize uses delegate.
if
(
mediaType_Video
==
mMediaType
)
if
(
mediaType_Video
==
mMediaType
)
...
@@ -320,13 +319,13 @@ void UBGraphicsMediaItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
...
@@ -320,13 +319,13 @@ void UBGraphicsMediaItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
{
QGraphicsItem
*
curItem
=
group
->
getCurrentItem
();
QGraphicsItem
*
curItem
=
group
->
getCurrentItem
();
if
(
curItem
&&
this
!=
curItem
)
if
(
curItem
&&
this
!=
curItem
)
{
{
group
->
deselectCurrentItem
();
group
->
deselectCurrentItem
();
}
}
group
->
setCurrentItem
(
this
);
group
->
setCurrentItem
(
this
);
this
->
setSelected
(
true
);
this
->
setSelected
(
true
);
Delegate
()
->
positionHandles
();
Delegate
()
->
positionHandles
();
}
}
}
}
}
}
...
@@ -339,7 +338,7 @@ void UBGraphicsMediaItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
...
@@ -339,7 +338,7 @@ void UBGraphicsMediaItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
event
->
accept
();
event
->
accept
();
}
}
}
}
else
else
{
{
mShouldMove
=
(
event
->
buttons
()
&
Qt
::
LeftButton
);
mShouldMove
=
(
event
->
buttons
()
&
Qt
::
LeftButton
);
mMousePressPos
=
event
->
scenePos
();
mMousePressPos
=
event
->
scenePos
();
...
...
This diff is collapsed.
Click to expand it.
src/domain/UBGraphicsMediaItemDelegate.cpp
View file @
4ace295a
...
@@ -255,6 +255,11 @@ void UBGraphicsMediaItemDelegate::mediaStateChanged ( Phonon::State newstate, Ph
...
@@ -255,6 +255,11 @@ void UBGraphicsMediaItemDelegate::mediaStateChanged ( Phonon::State newstate, Ph
{
{
Q_UNUSED
(
newstate
);
Q_UNUSED
(
newstate
);
Q_UNUSED
(
oldstate
);
Q_UNUSED
(
oldstate
);
if
(
oldstate
==
Phonon
::
LoadingState
)
{
mMediaControl
->
totalTimeChanged
(
delegated
()
->
mediaObject
()
->
totalTime
());
}
updatePlayPauseState
();
updatePlayPauseState
();
}
}
...
...
This diff is collapsed.
Click to expand it.
src/domain/UBGraphicsScene.cpp
View file @
4ace295a
...
@@ -335,8 +335,8 @@ void UBGraphicsScene::updateGroupButtonState()
...
@@ -335,8 +335,8 @@ void UBGraphicsScene::updateGroupButtonState()
{
{
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
if
(
UBStylusTool
::
Selector
!=
currentTool
)
if
(
UBStylusTool
::
Selector
!=
currentTool
&&
UBStylusTool
::
Play
!=
currentTool
)
UBDrawingController
::
drawingController
()
->
setStylusTool
(
UBStylusTool
::
Selector
)
;
return
;
QAction
*
groupAction
=
UBApplication
::
mainWindow
->
actionGroupItems
;
QAction
*
groupAction
=
UBApplication
::
mainWindow
->
actionGroupItems
;
QList
<
QGraphicsItem
*>
selItems
=
selectedItems
();
QList
<
QGraphicsItem
*>
selItems
=
selectedItems
();
...
@@ -362,24 +362,18 @@ void UBGraphicsScene::updateGroupButtonState()
...
@@ -362,24 +362,18 @@ void UBGraphicsScene::updateGroupButtonState()
bool
UBGraphicsScene
::
inputDevicePress
(
const
QPointF
&
scenePos
,
const
qreal
&
pressure
)
bool
UBGraphicsScene
::
inputDevicePress
(
const
QPointF
&
scenePos
,
const
qreal
&
pressure
)
{
{
//mMesure1Ms = 0;
//mMesure2Ms = 0;
bool
accepted
=
false
;
bool
accepted
=
false
;
if
(
mInputDeviceIsPressed
)
if
(
mInputDeviceIsPressed
)
{
{
qWarning
()
<<
"scene received input device pressed, without input device release, muting event as input device move"
;
qWarning
()
<<
"scene received input device pressed, without input device release, muting event as input device move"
;
accepted
=
inputDeviceMove
(
scenePos
,
pressure
);
accepted
=
inputDeviceMove
(
scenePos
,
pressure
);
}
}
else
else
{
{
mInputDeviceIsPressed
=
true
;
mInputDeviceIsPressed
=
true
;
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
if
(
UBDrawingController
::
drawingController
()
->
isDrawingTool
())
if
(
UBDrawingController
::
drawingController
()
->
isDrawingTool
())
{
{
// -----------------------------------------------------------------
// -----------------------------------------------------------------
// We fall here if we are using the Pen, the Marker or the Line tool
// We fall here if we are using the Pen, the Marker or the Line tool
// -----------------------------------------------------------------
// -----------------------------------------------------------------
...
@@ -399,7 +393,8 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
...
@@ -399,7 +393,8 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
if
(
currentTool
!=
UBStylusTool
::
Line
){
if
(
currentTool
!=
UBStylusTool
::
Line
){
// Handle the pressure
// Handle the pressure
width
=
UBDrawingController
::
drawingController
()
->
currentToolWidth
()
*
pressure
;
width
=
UBDrawingController
::
drawingController
()
->
currentToolWidth
()
*
pressure
;
}
else
{
}
else
{
// Ignore pressure for the line tool
// Ignore pressure for the line tool
width
=
UBDrawingController
::
drawingController
()
->
currentToolWidth
();
width
=
UBDrawingController
::
drawingController
()
->
currentToolWidth
();
}
}
...
@@ -411,18 +406,14 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
...
@@ -411,18 +406,14 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
mRemovedItems
.
clear
();
mRemovedItems
.
clear
();
if
(
UBDrawingController
::
drawingController
()
->
mActiveRuler
)
if
(
UBDrawingController
::
drawingController
()
->
mActiveRuler
)
{
UBDrawingController
::
drawingController
()
->
mActiveRuler
->
StartLine
(
scenePos
,
width
);
UBDrawingController
::
drawingController
()
->
mActiveRuler
->
StartLine
(
scenePos
,
width
);
}
else
{
else
{
moveTo
(
scenePos
);
moveTo
(
scenePos
);
drawLineTo
(
scenePos
,
width
,
UBDrawingController
::
drawingController
()
->
stylusTool
()
==
UBStylusTool
::
Line
);
drawLineTo
(
scenePos
,
width
,
UBDrawingController
::
drawingController
()
->
stylusTool
()
==
UBStylusTool
::
Line
);
}
}
accepted
=
true
;
accepted
=
true
;
}
}
else
if
(
currentTool
==
UBStylusTool
::
Eraser
)
else
if
(
currentTool
==
UBStylusTool
::
Eraser
)
{
{
mAddedItems
.
clear
();
mAddedItems
.
clear
();
mRemovedItems
.
clear
();
mRemovedItems
.
clear
();
moveTo
(
scenePos
);
moveTo
(
scenePos
);
...
@@ -436,8 +427,7 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
...
@@ -436,8 +427,7 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
accepted
=
true
;
accepted
=
true
;
}
}
else
if
(
currentTool
==
UBStylusTool
::
Pointer
)
else
if
(
currentTool
==
UBStylusTool
::
Pointer
)
{
{
drawPointer
(
scenePos
,
true
);
drawPointer
(
scenePos
,
true
);
accepted
=
true
;
accepted
=
true
;
}
}
...
@@ -516,7 +506,8 @@ bool UBGraphicsScene::inputDeviceMove(const QPointF& scenePos, const qreal& pres
...
@@ -516,7 +506,8 @@ bool UBGraphicsScene::inputDeviceMove(const QPointF& scenePos, const qreal& pres
if
(
dc
->
mActiveRuler
){
if
(
dc
->
mActiveRuler
){
dc
->
mActiveRuler
->
DrawLine
(
position
,
width
);
dc
->
mActiveRuler
->
DrawLine
(
position
,
width
);
}
else
{
}
else
{
drawLineTo
(
position
,
width
,
UBDrawingController
::
drawingController
()
->
stylusTool
()
==
UBStylusTool
::
Line
);
drawLineTo
(
position
,
width
,
UBDrawingController
::
drawingController
()
->
stylusTool
()
==
UBStylusTool
::
Line
);
}
}
}
}
...
@@ -1487,15 +1478,14 @@ UBGraphicsTextItem* UBGraphicsScene::textForObjectName(const QString& pString, c
...
@@ -1487,15 +1478,14 @@ UBGraphicsTextItem* UBGraphicsScene::textForObjectName(const QString& pString, c
if
(
!
textItem
){
if
(
!
textItem
){
textItem
=
addTextWithFont
(
pString
,
QPointF
(
0
,
0
)
,
72
,
UBSettings
::
settings
()
->
fontFamily
(),
true
,
false
);
textItem
=
addTextWithFont
(
pString
,
QPointF
(
0
,
0
)
,
72
,
UBSettings
::
settings
()
->
fontFamily
(),
true
,
false
);
textItem
->
setObjectName
(
objectName
);
textItem
->
setObjectName
(
objectName
);
QSizeF
size
=
textItem
->
size
();
textItem
->
setPos
(
QPointF
(
-
size
.
width
()
/
2.0
,
-
size
.
height
()
/
2.0
));
textItem
->
setData
(
UBGraphicsItemData
::
ItemEditable
,
QVariant
(
false
));
textItem
->
setData
(
UBGraphicsItemData
::
ItemEditable
,
QVariant
(
false
));
textItem
->
adjustSize
();
textItem
->
setTextInteractionFlags
(
Qt
::
TextSelectableByMouse
|
Qt
::
TextSelectableByKeyboard
);
}
}
textItem
->
setPlainText
(
pString
);
textItem
->
setPlainText
(
pString
);
textItem
->
adjustSize
();
textItem
->
clearFocus
();
textItem
->
clearFocus
();
textItem
->
setTextInteractionFlags
(
Qt
::
TextSelectableByMouse
|
Qt
::
TextSelectableByKeyboard
);
return
textItem
;
return
textItem
;
}
}
...
@@ -2286,9 +2276,8 @@ void UBGraphicsScene::createPointer()
...
@@ -2286,9 +2276,8 @@ void UBGraphicsScene::createPointer()
void
UBGraphicsScene
::
setToolCursor
(
int
tool
)
void
UBGraphicsScene
::
setToolCursor
(
int
tool
)
{
{
if
(
tool
==
(
int
)
UBStylusTool
::
Selector
||
if
(
tool
==
(
int
)
UBStylusTool
::
Selector
||
tool
==
(
int
)
UBStylusTool
::
Text
||
tool
==
(
int
)
UBStylusTool
::
Text
||
tool
==
(
int
)
UBStylusTool
::
Play
)
tool
==
(
int
)
UBStylusTool
::
Play
)
{
{
deselectAllItems
();
deselectAllItems
();
}
}
...
...
This diff is collapsed.
Click to expand it.
src/domain/UBGraphicsWidgetItem.cpp
View file @
4ace295a
...
@@ -609,7 +609,9 @@ void UBGraphicsWidgetItem::mainFrameLoadFinished (bool ok)
...
@@ -609,7 +609,9 @@ void UBGraphicsWidgetItem::mainFrameLoadFinished (bool ok)
{
{
mLoadIsErronous
=
!
ok
;
mLoadIsErronous
=
!
ok
;
update
(
boundingRect
());
update
(
boundingRect
());
takeSnapshot
();
if
(
mInitialLoadDone
&&
scene
()
&&
scene
()
->
renderingContext
()
==
UBGraphicsScene
::
Screen
)
takeSnapshot
();
}
}
void
UBGraphicsWidgetItem
::
wheelEvent
(
QGraphicsSceneWheelEvent
*
event
)
void
UBGraphicsWidgetItem
::
wheelEvent
(
QGraphicsSceneWheelEvent
*
event
)
...
...
This diff is collapsed.
Click to expand it.
src/frameworks/UBCoreGraphicsScene.cpp
View file @
4ace295a
...
@@ -40,15 +40,9 @@ UBCoreGraphicsScene::~UBCoreGraphicsScene()
...
@@ -40,15 +40,9 @@ UBCoreGraphicsScene::~UBCoreGraphicsScene()
{
{
//we must delete removed items that are no more in any scene
//we must delete removed items that are no more in any scene
//at groups deleting some items can be added to mItemsToDelete, so we need to use iterators.
//at groups deleting some items can be added to mItemsToDelete, so we need to use iterators.
foreach
(
QGraphicsItem
*
item
,
mItemsToDelete
)
foreach
(
QGraphicsItem
*
item
,
mItemsToDelete
){
{
if
(
item
&&
item
->
type
()
!=
UBGraphicsItemType
::
PolygonItemType
&&
item
->
type
()
!=
QGraphicsItem
::
UserType
&&
item
->
type
()
!=
UBGraphicsItemType
::
groupContainerType
&&
(
item
->
scene
()
==
NULL
||
item
->
scene
()
==
this
))
if
(
item
)
delete
item
;
{
if
(
item
->
scene
()
==
NULL
||
item
->
scene
()
==
this
)
{
delete
item
;
}
}
}
}
mItemsToDelete
.
clear
();
mItemsToDelete
.
clear
();
}
}
...
@@ -62,7 +56,7 @@ void UBCoreGraphicsScene::addItem(QGraphicsItem* item)
...
@@ -62,7 +56,7 @@ void UBCoreGraphicsScene::addItem(QGraphicsItem* item)
removeItemFromDeletion
(
curItem
);
removeItemFromDeletion
(
curItem
);
}
}
}
}
if
(
item
->
scene
()
!=
this
)
if
(
item
->
scene
()
!=
this
)
QGraphicsScene
::
addItem
(
item
);
QGraphicsScene
::
addItem
(
item
);
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBNavigatorPalette.cpp
View file @
4ace295a
...
@@ -98,13 +98,13 @@ UBNavigatorPalette::~UBNavigatorPalette()
...
@@ -98,13 +98,13 @@ UBNavigatorPalette::~UBNavigatorPalette()
}
}
if
(
NULL
!=
mLayout
)
if
(
NULL
!=
mLayout
)
{
{
delete
mLayout
;
delete
mLayout
;
mLayout
=
NULL
;
mLayout
=
NULL
;
}
}
if
(
NULL
!=
mNavigator
)
if
(
NULL
!=
mNavigator
)
{
{
delete
mNavigator
;
delete
mNavigator
;
mNavigator
=
NULL
;
mNavigator
=
NULL
;
}
}
}
}
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBTeacherGuideWidget.cpp
View file @
4ace295a
...
@@ -273,8 +273,8 @@ void UBTeacherGuideEditionWidget::onActiveSceneChanged()
...
@@ -273,8 +273,8 @@ void UBTeacherGuideEditionWidget::onActiveSceneChanged()
void
UBTeacherGuideEditionWidget
::
cleanData
()
void
UBTeacherGuideEditionWidget
::
cleanData
()
{
{
mpPageTitle
->
setText
(
""
);
mpPageTitle
->
resetText
(
);
mpComment
->
setText
(
""
);
mpComment
->
resetText
(
);
QList
<
QTreeWidgetItem
*>
children
=
mpAddAnActionItem
->
takeChildren
();
QList
<
QTreeWidgetItem
*>
children
=
mpAddAnActionItem
->
takeChildren
();
children
<<
mpAddAMediaItem
->
takeChildren
();
children
<<
mpAddAMediaItem
->
takeChildren
();
children
<<
mpAddALinkItem
->
takeChildren
();
children
<<
mpAddALinkItem
->
takeChildren
();
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBTeacherGuideWidgetsTools.cpp
View file @
4ace295a
...
@@ -224,6 +224,19 @@ void UBTGAdaptableText::setInitialText(const QString& text)
...
@@ -224,6 +224,19 @@ void UBTGAdaptableText::setInitialText(const QString& text)
onTextChanged
();
onTextChanged
();
}
}
void
UBTGAdaptableText
::
resetText
()
{
if
(
mHasPlaceHolder
&&
!
mPlaceHolderText
.
isEmpty
()){
setTextColor
(
QColor
(
Qt
::
lightGray
));
setText
(
mPlaceHolderText
);
}
else
{
setText
(
""
);
setTextColor
(
QColor
(
Qt
::
black
));
}
onTextChanged
();
}
void
UBTGAdaptableText
::
showText
(
const
QString
&
text
)
void
UBTGAdaptableText
::
showText
(
const
QString
&
text
)
{
{
setText
(
text
);
setText
(
text
);
...
@@ -252,14 +265,40 @@ void UBTGAdaptableText::focusOutEvent(QFocusEvent* e)
...
@@ -252,14 +265,40 @@ void UBTGAdaptableText::focusOutEvent(QFocusEvent* e)
QTextEdit
::
focusOutEvent
(
e
);
QTextEdit
::
focusOutEvent
(
e
);
}
}
void
UBTGAdaptableText
::
insertFromMimeData
(
const
QMimeData
*
source
)
{
QMimeData
editedMimeData
;
QTextDocument
textDoc
;
QString
plainText
;
if
(
source
->
hasHtml
())
{
textDoc
.
setHtml
(
source
->
html
());
plainText
+=
textDoc
.
toPlainText
();
}
if
(
source
->
hasText
())
if
(
textDoc
.
toPlainText
()
!=
source
->
text
())
plainText
+=
source
->
text
();
if
(
source
->
hasUrls
())
{
foreach
(
QUrl
url
,
source
->
urls
())
{
plainText
+=
url
.
toString
();
}
}
editedMimeData
.
setText
(
plainText
);
QTextEdit
::
insertFromMimeData
(
&
editedMimeData
);
}
void
UBTGAdaptableText
::
managePlaceholder
(
bool
focus
)
void
UBTGAdaptableText
::
managePlaceholder
(
bool
focus
)
{
{
if
(
focus
){
if
(
focus
){
if
(
toPlainText
()
==
mPlaceHolderText
){
if
(
toPlainText
()
==
mPlaceHolderText
){
setTextColor
(
QColor
(
Qt
::
black
));
setTextColor
(
QColor
(
Qt
::
black
));
setPlainText
(
""
);
setPlainText
(
""
);
setCursorToTheEnd
();
}
}
setCursorToTheEnd
();
}
}
else
{
else
{
if
(
toPlainText
().
isEmpty
()){
if
(
toPlainText
().
isEmpty
()){
...
@@ -537,9 +576,9 @@ void UBTGMediaWidget::createWorkWidget(bool forceFlashMediaType)
...
@@ -537,9 +576,9 @@ void UBTGMediaWidget::createWorkWidget(bool forceFlashMediaType)
mpMediaLayout
=
new
QHBoxLayout
(
mpWorkWidget
);
mpMediaLayout
=
new
QHBoxLayout
(
mpWorkWidget
);
mpWorkWidget
->
setLayout
(
mpMediaLayout
);
mpWorkWidget
->
setLayout
(
mpMediaLayout
);
}
}
mpMediaLayout
->
addStretch
(
1
);
mpMediaLayout
->
addStretch
(
1
);
if
(
mpMediaLabelWidget
){
if
(
mpMediaLabelWidget
){
mpMediaLabelWidget
->
setFixedHeight
(
mMediaWidgetHeight
);
mpMediaLabelWidget
->
setFixedHeight
(
mMediaWidgetHeight
);
mpMediaLabelWidget
->
setParent
(
mpWorkWidget
);
mpMediaLabelWidget
->
setParent
(
mpWorkWidget
);
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBTeacherGuideWidgetsTools.h
View file @
4ace295a
...
@@ -103,6 +103,7 @@ class UBTGAdaptableText : public QTextEdit
...
@@ -103,6 +103,7 @@ class UBTGAdaptableText : public QTextEdit
public
:
public
:
explicit
UBTGAdaptableText
(
QTreeWidgetItem
*
widget
=
0
,
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBTGAdaptableText"
);
explicit
UBTGAdaptableText
(
QTreeWidgetItem
*
widget
=
0
,
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBTGAdaptableText"
);
void
showText
(
const
QString
&
text
);
void
showText
(
const
QString
&
text
);
void
resetText
();
void
bottomMargin
(
int
newValue
);
void
bottomMargin
(
int
newValue
);
void
setPlaceHolderText
(
QString
text
);
void
setPlaceHolderText
(
QString
text
);
QString
text
();
QString
text
();
...
@@ -118,6 +119,7 @@ protected:
...
@@ -118,6 +119,7 @@ protected:
void
showEvent
(
QShowEvent
*
e
);
void
showEvent
(
QShowEvent
*
e
);
void
focusInEvent
(
QFocusEvent
*
e
);
void
focusInEvent
(
QFocusEvent
*
e
);
void
focusOutEvent
(
QFocusEvent
*
e
);
void
focusOutEvent
(
QFocusEvent
*
e
);
virtual
void
insertFromMimeData
(
const
QMimeData
*
source
);
private
:
private
:
void
setCursorToTheEnd
();
void
setCursorToTheEnd
();
...
...
This diff is collapsed.
Click to expand it.
src/gui/UBThumbnailWidget.cpp
View file @
4ace295a
...
@@ -87,6 +87,7 @@ void UBThumbnailWidget::setGraphicsItems(const QList<QGraphicsItem*>& pGraphicsI
...
@@ -87,6 +87,7 @@ void UBThumbnailWidget::setGraphicsItems(const QList<QGraphicsItem*>& pGraphicsI
,
const
QStringList
pLabels
,
const
QStringList
pLabels
,
const
QString
&
pMimeType
)
,
const
QString
&
pMimeType
)
{
{
Q_ASSERT
(
pItemsPaths
.
count
()
==
pLabels
.
count
());
mGraphicItems
=
pGraphicsItems
;
mGraphicItems
=
pGraphicsItems
;
mItemsPaths
=
pItemsPaths
;
mItemsPaths
=
pItemsPaths
;
mMimeType
=
pMimeType
;
mMimeType
=
pMimeType
;
...
@@ -224,13 +225,6 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
...
@@ -224,13 +225,6 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
event
->
ignore
();
event
->
ignore
();
return
;
return
;
}
}
//if(sceneItem){
// int pageIndex = UBDocumentContainer::pageFromSceneIndex(sceneItem->sceneIndex());
// if(pageIndex == 0){
// event->ignore();
// return;
// }
//}
mMousePressScenePos
=
mapToScene
(
mMousePressPos
);
mMousePressScenePos
=
mapToScene
(
mMousePressPos
);
QGraphicsItem
*
underlyingItem
=
itemAt
(
mMousePressPos
);
QGraphicsItem
*
underlyingItem
=
itemAt
(
mMousePressPos
);
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment