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
Mar 11, 2013
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
Show 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()
QList
<
UBGraphicsPolygonItem
*>
polygonItems
=
polygonItemsFromPolylineSvg
(
mScene
->
isDarkBackground
()
?
Qt
::
white
:
Qt
::
black
);
QString
newParentId
=
QUuid
::
createUuid
().
toString
();
foreach
(
UBGraphicsPolygonItem
*
polygonItem
,
polygonItems
)
{
if
(
annotationGroup
)
{
polygonItem
->
setStroke
(
annotationGroup
);
}
if
(
strokesGroup
){
...
...
@@ -614,6 +614,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
polygonItem
->
setData
(
UBGraphicsItemData
::
ItemLayerType
,
QVariant
(
UBItemLayerType
::
Graphic
));
QString
parentId
=
mXmlReader
.
attributes
().
value
(
mNamespaceUri
,
"parent"
).
toString
();
if
(
parentId
.
isEmpty
())
parentId
=
newParentId
;
Q_ASSERT
(
!
parentId
.
isEmpty
());
UBGraphicsStrokesGroup
*
group
;
if
(
!
mStrokesList
.
contains
(
parentId
)){
...
...
@@ -623,8 +627,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
else
group
=
mStrokesList
.
value
(
parentId
);
group
->
addToGroup
(
polygonItem
);
polygonItem
->
show
();
}
}
else
if
(
mXmlReader
.
name
()
==
"image"
)
{
...
...
@@ -984,10 +990,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
{
if
(
mXmlReader
.
name
()
==
"g"
)
{
// if(strokesGroup && mScene){
// mScene->addItem(strokesGroup);
// }
if
(
annotationGroup
)
{
if
(
!
annotationGroup
->
polygons
().
empty
())
...
...
@@ -1010,12 +1012,12 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
QMapIterator
<
QString
,
UBGraphicsStrokesGroup
*>
iterator
(
mStrokesList
);
while
(
iterator
.
hasNext
())
{
iterator
.
next
();
qDebug
()
<<
"Number of polygons : "
<<
(
int
)(((
UBGraphicsStrokesGroup
*
)
iterator
.
value
())
->
childItems
().
count
());
mScene
->
addItem
(
iterator
.
value
());
}
if
(
mScene
)
{
if
(
mScene
)
mScene
->
setModified
(
false
);
}
if
(
annotationGroup
&&
annotationGroup
->
polygons
().
empty
()){
delete
annotationGroup
;
...
...
@@ -1557,17 +1559,8 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistGroupToDom(QGraphicsItem *gro
foreach
(
QGraphicsItem
*
item
,
groupItem
->
childItems
())
{
QUuid
tmpUuid
=
UBGraphicsScene
::
getPersonalUuid
(
item
);
if
(
!
tmpUuid
.
isNull
())
{
if
(
item
->
type
()
==
UBGraphicsGroupContainerItem
::
Type
&&
item
->
childItems
().
count
())
{
if
(
item
->
type
()
==
UBGraphicsGroupContainerItem
::
Type
&&
item
->
childItems
().
count
())
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
{
QDomElement
curSubElement
=
groupDomDocument
->
createElement
(
tElement
);
...
...
src/board/UBBoardController.cpp
View file @
4ace295a
...
...
@@ -357,9 +357,7 @@ void UBBoardController::setupToolbar()
void
UBBoardController
::
setToolCursor
(
int
tool
)
{
if
(
mActiveScene
)
{
mActiveScene
->
setToolCursor
(
tool
);
}
mControlView
->
setToolCursor
(
tool
);
}
...
...
src/board/UBBoardView.cpp
View file @
4ace295a
...
...
@@ -80,18 +80,18 @@
#include "core/memcheck.h"
UBBoardView
::
UBBoardView
(
UBBoardController
*
pController
,
QWidget
*
pParent
,
bool
isControl
,
bool
isDesktop
)
:
QGraphicsView
(
pParent
)
,
mController
(
pController
)
,
mIsCreatingTextZone
(
false
)
,
mIsCreatingSceneGrabZone
(
false
)
,
mOkOnWidget
(
false
)
,
suspendedMousePressEvent
(
NULL
)
,
mLongPressInterval
(
1000
)
,
mIsDragInProgress
(
false
)
,
mMultipleSelectionIsEnabled
(
false
)
,
bIsControl
(
isControl
)
,
bIsDesktop
(
isDesktop
)
,
mRubberBandInPlayMode
(
false
)
//enables rubberband with play tool
:
QGraphicsView
(
pParent
)
,
mController
(
pController
)
,
mIsCreatingTextZone
(
false
)
,
mIsCreatingSceneGrabZone
(
false
)
,
mOkOnWidget
(
false
)
,
suspendedMousePressEvent
(
NULL
)
,
mLongPressInterval
(
1000
)
,
mIsDragInProgress
(
false
)
,
mMultipleSelectionIsEnabled
(
false
)
,
bIsControl
(
isControl
)
,
bIsDesktop
(
isDesktop
)
,
mRubberBandInPlayMode
(
false
)
//enables rubberband with play tool
{
init
();
...
...
@@ -102,14 +102,14 @@ UBBoardView::UBBoardView (UBBoardController* pController, QWidget* pParent, bool
}
UBBoardView
::
UBBoardView
(
UBBoardController
*
pController
,
int
pStartLayer
,
int
pEndLayer
,
QWidget
*
pParent
,
bool
isControl
,
bool
isDesktop
)
:
QGraphicsView
(
pParent
)
,
mController
(
pController
)
,
suspendedMousePressEvent
(
NULL
)
,
mLongPressInterval
(
1000
)
,
mIsDragInProgress
(
false
)
,
mMultipleSelectionIsEnabled
(
false
)
,
bIsControl
(
isControl
)
,
bIsDesktop
(
isDesktop
)
:
QGraphicsView
(
pParent
)
,
mController
(
pController
)
,
suspendedMousePressEvent
(
NULL
)
,
mLongPressInterval
(
1000
)
,
mIsDragInProgress
(
false
)
,
mMultipleSelectionIsEnabled
(
false
)
,
bIsControl
(
isControl
)
,
bIsDesktop
(
isDesktop
)
{
init
();
...
...
@@ -482,12 +482,12 @@ bool UBBoardView::isCppTool(QGraphicsItem *item)
void
UBBoardView
::
handleItemsSelection
(
QGraphicsItem
*
item
)
{
// we need to select new pressed itemOnBoard and deselect all other items.
// the trouble is in:
// 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
//
// item selection managed by QGraphicsView::mousePressEvent(). It should be called later.
// we need to select new pressed itemOnBoard and deselect all other items.
// the trouble is in:
// 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
//
// item selection managed by QGraphicsView::mousePressEvent(). It should be called later.
if
(
item
)
{
...
...
@@ -530,7 +530,7 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item)
bool
UBBoardView
::
itemShouldReceiveMousePressEvent
(
QGraphicsItem
*
item
)
{
/*
/*
Some items should receive mouse press events averytime,
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)
...
...
@@ -570,6 +570,8 @@ Here we determines cases when items should to get mouse press event at pressing
case
UBGraphicsSvgItem
:
:
Type
:
case
UBGraphicsPixmapItem
:
:
Type
:
case
UBGraphicsTextItem
:
:
Type
:
if
(
currentTool
==
UBStylusTool
::
Play
)
return
true
;
if
((
currentTool
==
UBStylusTool
::
Selector
)
&&
item
->
isSelected
())
return
true
;
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
if
(
currentTool
!=
UBStylusTool
::
Selector
)
return
false
;
break
;
// Groups shouldn't reacts on any presses and moves for Play tool.
case
UBGraphicsItemType
:
:
StrokeItemType
:
if
(
currentTool
==
UBStylusTool
::
Play
)
return
true
;
break
;
case
UBGraphicsGroupContainerItem
:
:
Type
:
// Groups shouldn't reacts on any presses and moves for Play tool.
if
(
currentTool
==
UBStylusTool
::
Play
)
{
movingItem
=
NULL
;
return
true
;
}
return
false
;
break
;
//case UBToolWidget::Type:
// return true;
case
QGraphicsWebView
:
:
Type
:
return
true
;
...
...
@@ -759,12 +761,10 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event)
if
(
isMultipleSelectionEnabled
())
return
;
if
(
itemShouldReceiveMousePressEvent
(
movingItem
))
{
if
(
itemShouldReceiveMousePressEvent
(
movingItem
))
{
QGraphicsView
::
mousePressEvent
(
event
);
}
else
{
else
{
if
(
movingItem
)
{
UBGraphicsItem
*
graphicsItem
=
dynamic_cast
<
UBGraphicsItem
*>
(
movingItem
);
...
...
@@ -898,8 +898,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
mIsDragInProgress
=
false
;
if
(
isAbsurdPoint
(
event
->
pos
()))
{
if
(
isAbsurdPoint
(
event
->
pos
()))
{
event
->
accept
();
return
;
}
...
...
@@ -935,8 +934,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
mPreviousPoint
=
event
->
posF
();
event
->
accept
();
}
else
if
(
currentTool
==
UBStylusTool
::
Selector
||
currentTool
==
UBStylusTool
::
Play
)
{
else
if
(
currentTool
==
UBStylusTool
::
Selector
||
currentTool
==
UBStylusTool
::
Play
)
{
if
(
bIsDesktop
)
{
event
->
ignore
();
return
;
...
...
@@ -957,8 +955,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
mUBRubberBand
->
setGeometry
(
QRect
(
mMouseDownPos
,
QSize
()));
mUBRubberBand
->
show
();
}
else
{
else
{
if
(
mUBRubberBand
)
mUBRubberBand
->
hide
();
}
...
...
@@ -1223,22 +1220,18 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
QGraphicsView
::
mouseReleaseEvent
(
event
);
}
}
else
if
(
currentTool
==
UBStylusTool
::
Play
)
{
else
if
(
currentTool
==
UBStylusTool
::
Play
)
{
if
(
bIsDesktop
)
{
event
->
ignore
();
return
;
}
if
(
mWidgetMoved
)
{
if
(
mWidgetMoved
)
{
movingItem
=
NULL
;
mWidgetMoved
=
false
;
}
else
{
if
(
suspendedMousePressEvent
)
{
else
{
if
(
suspendedMousePressEvent
)
{
QGraphicsView
::
mousePressEvent
(
suspendedMousePressEvent
);
// suspendedMousePressEvent is deleted by old Qt event loop
movingItem
=
NULL
;
delete
suspendedMousePressEvent
;
...
...
@@ -1247,13 +1240,11 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
}
QGraphicsView
::
mouseReleaseEvent
(
event
);
}
else
if
(
currentTool
==
UBStylusTool
::
Text
)
{
else
if
(
currentTool
==
UBStylusTool
::
Text
)
{
if
(
mRubberBand
)
mRubberBand
->
hide
();
if
(
scene
()
&&
mRubberBand
&&
mIsCreatingTextZone
)
{
if
(
scene
()
&&
mRubberBand
&&
mIsCreatingTextZone
)
{
QRect
rubberRect
=
mRubberBand
->
geometry
();
UBGraphicsTextItem
*
textItem
=
scene
()
->
addTextHtml
(
""
,
mapToScene
(
rubberRect
.
topLeft
()));
...
...
@@ -1265,9 +1256,7 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
textItem
->
setFocus
();
}
else
{
QGraphicsView
::
mouseReleaseEvent
(
event
);
}
mIsCreatingTextZone
=
false
;
}
...
...
src/board/UBDrawingController.cpp
View file @
4ace295a
...
...
@@ -159,35 +159,23 @@ bool UBDrawingController::isDrawingTool()
int
UBDrawingController
::
currentToolWidthIndex
()
{
if
(
stylusTool
()
==
UBStylusTool
::
Pen
||
stylusTool
()
==
UBStylusTool
::
Line
)
{
return
UBSettings
::
settings
()
->
penWidthIndex
();
}
else
if
(
stylusTool
()
==
UBStylusTool
::
Marker
)
{
return
UBSettings
::
settings
()
->
markerWidthIndex
();
}
else
{
return
-
1
;
}
}
qreal
UBDrawingController
::
currentToolWidth
()
{
if
(
stylusTool
()
==
UBStylusTool
::
Pen
||
stylusTool
()
==
UBStylusTool
::
Line
)
{
return
UBSettings
::
settings
()
->
currentPenWidth
();
}
else
if
(
stylusTool
()
==
UBStylusTool
::
Marker
)
{
return
UBSettings
::
settings
()
->
currentMarkerWidth
();
}
else
{
//failsafe
return
UBSettings
::
settings
()
->
currentPenWidth
();
}
}
...
...
src/core/UB.h
View file @
4ace295a
src/domain/UBGraphicsItemDelegate.cpp
View file @
4ace295a
...
...
@@ -236,9 +236,7 @@ UBGraphicsItemDelegate::~UBGraphicsItemDelegate()
QVariant
UBGraphicsItemDelegate
::
itemChange
(
QGraphicsItem
::
GraphicsItemChange
change
,
const
QVariant
&
value
)
{
if
(
change
==
QGraphicsItem
::
ItemChildAddedChange
){
}
else
if
(
change
==
QGraphicsItem
::
ItemSelectedHasChanged
)
{
if
(
change
==
QGraphicsItem
::
ItemSelectedHasChanged
)
{
bool
ok
;
bool
selected
=
value
.
toUInt
(
&
ok
);
if
(
ok
)
{
...
...
@@ -286,6 +284,8 @@ bool UBGraphicsItemDelegate::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
mDragStartPosition
=
event
->
pos
();
mMoved
=
false
;
startUndoStep
();
if
(
!
delegated
()
->
isSelected
())
...
...
@@ -315,6 +315,7 @@ bool UBGraphicsItemDelegate::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
}
mDrag
->
exec
();
mDragPixmap
=
QPixmap
();
mMoved
=
true
;
return
true
;
}
return
false
;
...
...
@@ -439,22 +440,9 @@ void UBGraphicsItemDelegate::setZOrderButtonsVisible(bool visible)
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
());
if
(
scene
)
{
// bool shownOnDisplay = mDelegated->data(UBGraphicsItemData::ItemLayerType).toInt() != UBItemLayerType::Control;
// showHide(shownOnDisplay);
// updateFrame();
// updateButtons();
if
(
mFrame
&&
!
mFrame
->
scene
()
&&
mDelegated
->
scene
())
{
mDelegated
->
scene
()
->
addItem
(
mFrame
);
...
...
@@ -734,7 +722,7 @@ void UBGraphicsItemDelegate::updateButtons(bool showUpdated)
mDelegated
->
scene
()
->
addItem
(
mDeleteButton
);
}
if
(
showUpdated
/*&& mFrame->isResizing()*/
)
if
(
showUpdated
)
mDeleteButton
->
show
();
int
i
=
1
,
j
=
0
,
k
=
0
;
...
...
@@ -785,7 +773,6 @@ UBGraphicsToolBarItem::UBGraphicsToolBarItem(QGraphicsItem * parent) :
rect
.
setWidth
(
parent
->
boundingRect
().
width
());
this
->
setRect
(
rect
);
// setBrush(QColor(UBSettings::paletteColor));
setPen
(
Qt
::
NoPen
);
hide
();
...
...
@@ -826,25 +813,29 @@ MediaTimer::MediaTimer(QGraphicsItem * parent): QGraphicsRectItem(parent)
{
val
=
0
;
smallPoint
=
false
;
setNumDigits
(
4
);
setNumDigits
(
6
);
}
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
,
QBitArray
*
newPoints
,
bool
newString
)
{
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
++
)
{
pos
=
QPoint
(
xOffset
+
xAdvance
*
i
,
yOffset
);
if
(
newString
)
...
...
@@ -1090,10 +1081,6 @@ void MediaTimer::paint(QPainter *p,
Q_UNUSED
(
option
);
Q_UNUSED
(
widget
);
QFont
f
=
p
->
font
();
f
.
setPointSizeF
(
f
.
pointSizeF
());
p
->
setFont
(
f
);
if
(
smallPoint
)
drawString
(
digitStr
,
*
p
,
&
points
,
false
);
else
...
...
@@ -1178,7 +1165,7 @@ void MediaTimer::setNumDigits(int numDigits)
numDigits
=
0
;
}
if
(
digitStr
.
isNull
())
{
// from constructor
ndigits
=
numDigits
;
ndigits
=
numDigits
+
numDigits
/
2
-
1
;
digitStr
.
fill
(
QLatin1Char
(
' '
),
ndigits
);
points
.
fill
(
0
,
ndigits
);
digitStr
[
ndigits
-
1
]
=
QLatin1Char
(
'0'
);
// "0" is the default number
...
...
@@ -1208,6 +1195,7 @@ void MediaTimer::setNumDigits(int numDigits)
ndigits
=
numDigits
;
update
();
}
positionHandles
();
}
DelegateMediaControl
::
DelegateMediaControl
(
UBGraphicsMediaItem
*
pDelegated
,
QGraphicsItem
*
parent
)
...
...
@@ -1238,13 +1226,6 @@ void DelegateMediaControl::paint(QPainter *painter,
QPainterPath
path
;
mLCDTimerArea
.
setHeight
(
rect
().
height
());
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
);
painter
->
fillPath
(
path
,
brush
());
...
...
@@ -1274,28 +1255,59 @@ QPainterPath DelegateMediaControl::shape() const
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
());
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
->
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
;
mSeecArea
.
setWidth
(
rect
().
width
()
-
mLCDTimerArea
.
width
()
-
2
);
mSeecArea
.
setHeight
(
rect
().
height
()
-
2
*
mSeecAreaBorderHeight
);
mSeecArea
.
setY
(
mSeecAreaBorderHeight
);
QRectF
selfRect
=
rect
();
selfRect
.
setHeight
(
parentItem
()
->
boundingRect
().
height
());
setRect
(
selfRect
);
lcdTimer
->
setPos
(
rect
().
width
()
-
mLCDTimerArea
.
width
(),
0
);
}
void
DelegateMediaControl
::
update
()
{
QTime
t
;
t
=
t
.
addMSecs
(
mCurrentTimeInMs
<
0
?
0
:
mCurrentTimeInMs
);
lcdTimer
->
display
(
t
.
toString
(
"m:ss"
));
QTime
tCurrent
;
tCurrent
=
tCurrent
.
addMSecs
(
mCurrentTimeInMs
<
0
?
0
:
mCurrentTimeInMs
);
lcdTimer
->
display
(
tCurrent
.
toString
(
mDisplayFormat
));
QGraphicsRectItem
::
update
();
}
...
...
@@ -1309,8 +1321,12 @@ void DelegateMediaControl::updateTicker(qint64 time )
void
DelegateMediaControl
::
totalTimeChanged
(
qint64
newTotalTime
)
{
if
(
mTotalTimeInMs
!=
newTotalTime
)
{
mTotalTimeInMs
=
newTotalTime
;
positionHandles
();
update
();
}
}
...
...
@@ -1347,7 +1363,7 @@ void DelegateMediaControl::seekToMousePos(QPointF mousePos)
qreal
frameWidth
=
rect
().
height
()
/
2
;
minX
=
frameWidth
;
length
=
mSeecArea
.
width
()
-
lcdTimer
->
rect
().
width
();
length
=
mSeecArea
.
width
()
-
mSeecArea
.
height
();
qreal
mouseX
=
mousePos
.
x
();
if
(
mouseX
>=
(
mSeecArea
.
width
()
-
mSeecArea
.
height
()
/
2
))
...
...
src/domain/UBGraphicsItemDelegate.h
View file @
4ace295a
...
...
@@ -104,10 +104,12 @@ public:
MediaTimer
(
QGraphicsItem
*
parent
=
0
);
~
MediaTimer
();
void
positionHandles
();
void
paint
(
QPainter
*
painter
,
const
QStyleOptionGraphicsItem
*
option
,
QWidget
*
widget
);
void
display
(
const
QString
&
str
);
void
setNumDigits
(
int
nDigits
);
private
:
...
...
@@ -117,7 +119,6 @@ private:
void
drawSegment
(
const
QPoint
&
,
char
,
QPainter
&
,
int
,
bool
=
false
);
void
addPoint
(
QPolygon
&
,
const
QPoint
&
);
void
internalSetString
(
const
QString
&
s
);
void
setNumDigits
(
int
nDigits
);
static
char
segments
[][
8
];
...
...
@@ -128,6 +129,14 @@ private:
uint
shadow
:
1
;
uint
smallPoint
:
1
;
int
digitSpace
;
int
xSegLen
;
int
ySegLen
;
int
segLen
;
int
xAdvance
;
int
xOffset
;
int
yOffset
;
};
class
DelegateMediaControl
:
public
QObject
,
public
QGraphicsRectItem
...
...
@@ -178,6 +187,8 @@ class DelegateMediaControl: public QObject, public QGraphicsRectItem
QRectF
mLCDTimerArea
;
MediaTimer
*
lcdTimer
;
QString
mDisplayFormat
;
};
class
UBGraphicsToolBarItem
:
public
QGraphicsRectItem
,
public
QObject
...
...
@@ -340,6 +351,8 @@ private:
bool
mToolBarUsed
;
bool
mShowGoContentButton
;
bool
mMoved
;
};
...
...
src/domain/UBGraphicsMediaItem.cpp
View file @
4ace295a
...
...
@@ -102,8 +102,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
haveLinkedImage
=
true
;
}
else
if
(
mediaPath
.
toLower
().
contains
(
"audios"
))
else
if
(
mediaPath
.
toLower
().
contains
(
"audios"
))
{
mMediaType
=
mediaType_Audio
;
mAudioOutput
=
new
Phonon
::
AudioOutput
(
Phonon
::
MusicCategory
,
this
);
...
...
@@ -117,7 +116,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
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
);
haveLinkedImage
=
false
;
...
...
src/domain/UBGraphicsMediaItemDelegate.cpp
View file @
4ace295a
...
...
@@ -255,6 +255,11 @@ void UBGraphicsMediaItemDelegate::mediaStateChanged ( Phonon::State newstate, Ph
{
Q_UNUSED
(
newstate
);
Q_UNUSED
(
oldstate
);
if
(
oldstate
==
Phonon
::
LoadingState
)
{
mMediaControl
->
totalTimeChanged
(
delegated
()
->
mediaObject
()
->
totalTime
());
}
updatePlayPauseState
();
}
...
...
src/domain/UBGraphicsScene.cpp
View file @
4ace295a
...
...
@@ -335,8 +335,8 @@ void UBGraphicsScene::updateGroupButtonState()
{
UBStylusTool
::
Enum
currentTool
=
(
UBStylusTool
::
Enum
)
UBDrawingController
::
drawingController
()
->
stylusTool
();
if
(
UBStylusTool
::
Selector
!=
currentTool
)
UBDrawingController
::
drawingController
()
->
setStylusTool
(
UBStylusTool
::
Selector
)
;
if
(
UBStylusTool
::
Selector
!=
currentTool
&&
UBStylusTool
::
Play
!=
currentTool
)
return
;
QAction
*
groupAction
=
UBApplication
::
mainWindow
->
actionGroupItems
;
QList
<
QGraphicsItem
*>
selItems
=
selectedItems
();
...
...
@@ -362,24 +362,18 @@ void UBGraphicsScene::updateGroupButtonState()
bool
UBGraphicsScene
::
inputDevicePress
(
const
QPointF
&
scenePos
,
const
qreal
&
pressure
)
{
//mMesure1Ms = 0;
//mMesure2Ms = 0;
bool
accepted
=
false
;
if
(
mInputDeviceIsPressed
)
{
if
(
mInputDeviceIsPressed
)
{
qWarning
()
<<
"scene received input device pressed, without input device release, muting event as input device move"
;
accepted
=
inputDeviceMove
(
scenePos
,
pressure
);
}
else
{
else
{
mInputDeviceIsPressed
=
true
;
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
// -----------------------------------------------------------------
...
...
@@ -399,7 +393,8 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
if
(
currentTool
!=
UBStylusTool
::
Line
){
// Handle the pressure
width
=
UBDrawingController
::
drawingController
()
->
currentToolWidth
()
*
pressure
;
}
else
{
}
else
{
// Ignore pressure for the line tool
width
=
UBDrawingController
::
drawingController
()
->
currentToolWidth
();
}
...
...
@@ -411,18 +406,14 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
mRemovedItems
.
clear
();
if
(
UBDrawingController
::
drawingController
()
->
mActiveRuler
)
{
UBDrawingController
::
drawingController
()
->
mActiveRuler
->
StartLine
(
scenePos
,
width
);
}
else
{
else
{
moveTo
(
scenePos
);
drawLineTo
(
scenePos
,
width
,
UBDrawingController
::
drawingController
()
->
stylusTool
()
==
UBStylusTool
::
Line
);
}
accepted
=
true
;
}
else
if
(
currentTool
==
UBStylusTool
::
Eraser
)
{
else
if
(
currentTool
==
UBStylusTool
::
Eraser
)
{
mAddedItems
.
clear
();
mRemovedItems
.
clear
();
moveTo
(
scenePos
);
...
...
@@ -436,8 +427,7 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
accepted
=
true
;
}
else
if
(
currentTool
==
UBStylusTool
::
Pointer
)
{
else
if
(
currentTool
==
UBStylusTool
::
Pointer
)
{
drawPointer
(
scenePos
,
true
);
accepted
=
true
;
}
...
...
@@ -516,7 +506,8 @@ bool UBGraphicsScene::inputDeviceMove(const QPointF& scenePos, const qreal& pres
if
(
dc
->
mActiveRuler
){
dc
->
mActiveRuler
->
DrawLine
(
position
,
width
);
}
else
{
}
else
{
drawLineTo
(
position
,
width
,
UBDrawingController
::
drawingController
()
->
stylusTool
()
==
UBStylusTool
::
Line
);
}
}
...
...
@@ -1487,15 +1478,14 @@ UBGraphicsTextItem* UBGraphicsScene::textForObjectName(const QString& pString, c
if
(
!
textItem
){
textItem
=
addTextWithFont
(
pString
,
QPointF
(
0
,
0
)
,
72
,
UBSettings
::
settings
()
->
fontFamily
(),
true
,
false
);
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
->
adjustSize
();
textItem
->
setTextInteractionFlags
(
Qt
::
TextSelectableByMouse
|
Qt
::
TextSelectableByKeyboard
);
}
textItem
->
setPlainText
(
pString
);
textItem
->
adjustSize
();
textItem
->
clearFocus
();
textItem
->
setTextInteractionFlags
(
Qt
::
TextSelectableByMouse
|
Qt
::
TextSelectableByKeyboard
);
return
textItem
;
}
...
...
@@ -2287,8 +2277,7 @@ void UBGraphicsScene::setToolCursor(int tool)
{
if
(
tool
==
(
int
)
UBStylusTool
::
Selector
||
tool
==
(
int
)
UBStylusTool
::
Text
||
tool
==
(
int
)
UBStylusTool
::
Play
)
{
tool
==
(
int
)
UBStylusTool
::
Play
)
{
deselectAllItems
();
}
...
...
src/domain/UBGraphicsWidgetItem.cpp
View file @
4ace295a
...
...
@@ -609,6 +609,8 @@ void UBGraphicsWidgetItem::mainFrameLoadFinished (bool ok)
{
mLoadIsErronous
=
!
ok
;
update
(
boundingRect
());
if
(
mInitialLoadDone
&&
scene
()
&&
scene
()
->
renderingContext
()
==
UBGraphicsScene
::
Screen
)
takeSnapshot
();
}
...
...
src/frameworks/UBCoreGraphicsScene.cpp
View file @
4ace295a
...
...
@@ -40,16 +40,10 @@ UBCoreGraphicsScene::~UBCoreGraphicsScene()
{
//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.
foreach
(
QGraphicsItem
*
item
,
mItemsToDelete
)
{
if
(
item
)
{
if
(
item
->
scene
()
==
NULL
||
item
->
scene
()
==
this
)
{
foreach
(
QGraphicsItem
*
item
,
mItemsToDelete
){
if
(
item
&&
item
->
type
()
!=
UBGraphicsItemType
::
PolygonItemType
&&
item
->
type
()
!=
QGraphicsItem
::
UserType
&&
item
->
type
()
!=
UBGraphicsItemType
::
groupContainerType
&&
(
item
->
scene
()
==
NULL
||
item
->
scene
()
==
this
))
delete
item
;
}
}
}
mItemsToDelete
.
clear
();
}
...
...
src/gui/UBNavigatorPalette.cpp
View file @
4ace295a
src/gui/UBTeacherGuideWidget.cpp
View file @
4ace295a
...
...
@@ -273,8 +273,8 @@ void UBTeacherGuideEditionWidget::onActiveSceneChanged()
void
UBTeacherGuideEditionWidget
::
cleanData
()
{
mpPageTitle
->
setText
(
""
);
mpComment
->
setText
(
""
);
mpPageTitle
->
resetText
(
);
mpComment
->
resetText
(
);
QList
<
QTreeWidgetItem
*>
children
=
mpAddAnActionItem
->
takeChildren
();
children
<<
mpAddAMediaItem
->
takeChildren
();
children
<<
mpAddALinkItem
->
takeChildren
();
...
...
src/gui/UBTeacherGuideWidgetsTools.cpp
View file @
4ace295a
...
...
@@ -224,6 +224,19 @@ void UBTGAdaptableText::setInitialText(const QString& text)
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
)
{
setText
(
text
);
...
...
@@ -252,15 +265,41 @@ void UBTGAdaptableText::focusOutEvent(QFocusEvent* 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
)
{
if
(
focus
){
if
(
toPlainText
()
==
mPlaceHolderText
){
setTextColor
(
QColor
(
Qt
::
black
));
setPlainText
(
""
);
}
setCursorToTheEnd
();
}
}
else
{
if
(
toPlainText
().
isEmpty
()){
setTextColor
(
QColor
(
Qt
::
lightGray
));
...
...
src/gui/UBTeacherGuideWidgetsTools.h
View file @
4ace295a
...
...
@@ -103,6 +103,7 @@ class UBTGAdaptableText : public QTextEdit
public
:
explicit
UBTGAdaptableText
(
QTreeWidgetItem
*
widget
=
0
,
QWidget
*
parent
=
0
,
const
char
*
name
=
"UBTGAdaptableText"
);
void
showText
(
const
QString
&
text
);
void
resetText
();
void
bottomMargin
(
int
newValue
);
void
setPlaceHolderText
(
QString
text
);
QString
text
();
...
...
@@ -118,6 +119,7 @@ protected:
void
showEvent
(
QShowEvent
*
e
);
void
focusInEvent
(
QFocusEvent
*
e
);
void
focusOutEvent
(
QFocusEvent
*
e
);
virtual
void
insertFromMimeData
(
const
QMimeData
*
source
);
private
:
void
setCursorToTheEnd
();
...
...
src/gui/UBThumbnailWidget.cpp
View file @
4ace295a
...
...
@@ -87,6 +87,7 @@ void UBThumbnailWidget::setGraphicsItems(const QList<QGraphicsItem*>& pGraphicsI
,
const
QStringList
pLabels
,
const
QString
&
pMimeType
)
{
Q_ASSERT
(
pItemsPaths
.
count
()
==
pLabels
.
count
());
mGraphicItems
=
pGraphicsItems
;
mItemsPaths
=
pItemsPaths
;
mMimeType
=
pMimeType
;
...
...
@@ -224,13 +225,6 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
event
->
ignore
();
return
;
}
//if(sceneItem){
// int pageIndex = UBDocumentContainer::pageFromSceneIndex(sceneItem->sceneIndex());
// if(pageIndex == 0){
// event->ignore();
// return;
// }
//}
mMousePressScenePos
=
mapToScene
(
mMousePressPos
);
QGraphicsItem
*
underlyingItem
=
itemAt
(
mMousePressPos
);
...
...
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