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
2666115b
Commit
2666115b
authored
Sep 28, 2012
by
Aleksei Kanash
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Finished import cff and export to cff.
Import ubz works bad with groups.
parent
82259683
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
100 additions
and
28 deletions
+100
-28
UBCFFAdaptor.cpp
plugins/cffadaptor/src/UBCFFAdaptor.cpp
+11
-1
UBCFFConstants.h
plugins/cffadaptor/src/UBCFFConstants.h
+5
-2
UBCFFSubsetAdaptor.cpp
src/adaptors/UBCFFSubsetAdaptor.cpp
+3
-2
UBSvgSubsetAdaptor.cpp
src/adaptors/UBSvgSubsetAdaptor.cpp
+78
-22
UBGraphicsScene.cpp
src/domain/UBGraphicsScene.cpp
+1
-0
UBGraphicsScene.h
src/domain/UBGraphicsScene.h
+2
-1
No files found.
plugins/cffadaptor/src/UBCFFAdaptor.cpp
View file @
2666115b
...
...
@@ -1273,6 +1273,13 @@ bool UBCFFAdaptor::UBToCFFConverter::setCFFAttribute(const QString &attributeNam
{
setGeometryFromUBZ
(
ubzElement
,
svgElement
);
}
else
if
(
attributeName
.
contains
(
aUBZUuid
))
{
QString
id
=
"{"
+
ubzElement
.
attribute
(
aUBZParent
)
+
"}"
+
"{"
+
ubzElement
.
attribute
(
aUBZUuid
)
+
"}"
;
svgElement
.
setAttribute
(
aID
,
id
);
}
else
if
(
attributeName
.
contains
(
aUBZHref
)
||
attributeName
.
contains
(
aSrc
))
{
...
...
@@ -1822,7 +1829,10 @@ bool UBCFFAdaptor::UBToCFFConverter::parseUBZPolygon(const QDomElement &element,
if
(
0
<
iwbElementPart
.
attributes
().
count
())
{
QString
id
=
QUuid
::
createUuid
().
toString
();
QString
id
=
svgElementPart
.
attribute
(
aUBZUuid
);
if
(
id
.
isEmpty
())
id
=
QUuid
::
createUuid
().
toString
();
svgElementPart
.
setAttribute
(
aID
,
id
);
iwbElementPart
.
setAttribute
(
aRef
,
id
);
...
...
plugins/cffadaptor/src/UBCFFConstants.h
View file @
2666115b
...
...
@@ -68,6 +68,7 @@ const QString aBackground = "background";
const
QString
aCrossedBackground
=
"crossed-background"
;
const
QString
aUBZType
=
"type"
;
const
QString
aUBZUuid
=
"uuid"
;
const
QString
aUBZParent
=
"parent"
;
const
QString
aFill
=
"fill"
;
// IWB attribute contans color to fill
const
QString
aID
=
"id"
;
// ID of any svg element can be placed in to iwb section
...
...
@@ -335,8 +336,10 @@ stroke-lineshape-end \
const
QString
ubzElementAttributesToConvert
(
" \
xlink:href, \
src, \
transform \
"
);
transform, \
uuid \
"
);
// additional attributes. Have references in SVG section.
const
QString
svgElementAttributes
(
" \
...
...
src/adaptors/UBCFFSubsetAdaptor.cpp
View file @
2666115b
...
...
@@ -379,9 +379,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e
QUuid
itemGroupUuid
(
element
.
attribute
(
aId
).
left
(
QUuid
().
toString
().
length
()
-
1
));
if
(
!
itemUuid
.
isNull
()
&&
(
itemGroupUuid
!=
itemUuid
))
// reimported from UBZ
{
UBGraphicsPolygonItem
*
graphicsPolygon
=
new
UBGraphics
PolygonItem
(
polygon
);
UBGraphicsPolygonItem
*
graphicsPolygon
=
mCurrentScene
->
polygonTo
PolygonItem
(
polygon
);
graphicsPolygon
->
setBrush
(
brush
);
//graphicsPolygon->setPen(pen);
QTransform
transform
;
QString
textTransform
=
element
.
attribute
(
aTransform
);
...
...
@@ -1131,7 +1132,7 @@ UBGraphicsGroupContainerItem *UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGro
{
if
(
uuid
.
size
()
>
QUuid
().
toString
().
length
())
// create stroke group
{
currentStrokeIdentifier
=
uuid
.
left
(
QUuid
().
toString
().
length
()
-
1
);
currentStrokeIdentifier
=
uuid
.
left
(
QUuid
().
toString
().
length
());
UBGraphicsPolygonItem
*
strokeByUuid
=
qgraphicsitem_cast
<
UBGraphicsPolygonItem
*>
(
mCurrentScene
->
itemForUuid
(
QUuid
(
uuid
.
right
(
QUuid
().
toString
().
length
()))));
if
(
strokeByUuid
)
...
...
src/adaptors/UBSvgSubsetAdaptor.cpp
View file @
2666115b
...
...
@@ -555,6 +555,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
if
(
polygonItem
)
{
mScene
->
addItem
(
polygonItem
);
polygonItem
->
setUuid
(
uuidFromSvg
);
if
(
annotationGroup
)
{
polygonItem
->
setStroke
(
annotationGroup
);
...
...
@@ -991,31 +995,42 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
UBGraphicsGroupContainerItem
*
UBSvgSubsetAdaptor
::
UBSvgSubsetReader
::
readGroup
()
{
UBGraphicsGroupContainerItem
*
result
=
new
UBGraphicsGroupContainerItem
();
UBGraphicsGroupContainerItem
*
group
=
new
UBGraphicsGroupContainerItem
();
QMultiMap
<
QString
,
UBGraphicsPolygonItem
*>
strokesGroupsContainer
;
QList
<
QGraphicsItem
*>
groupContainer
;
QString
currentStrokeIdentifier
;
QUuid
groupUuid
=
QUuid
(
mXmlReader
.
attributes
().
value
(
aId
).
toString
());
mXmlReader
.
readNext
();
while
(
!
mXmlReader
.
atEnd
())
{
if
(
mXmlReader
.
isEndElement
())
{
mXmlReader
.
readNext
();
result
->
setUuid
(
groupUuid
);
if
(
!
result
->
childItems
().
count
())
{
delete
result
;
result
=
0
;
}
break
;
}
else
if
(
mXmlReader
.
isStartElement
())
{
if
(
mXmlReader
.
name
()
==
tGroup
)
{
while
(
!
mXmlReader
.
atEnd
())
{
if
(
mXmlReader
.
isStartElement
())
{
if
(
mXmlReader
.
name
()
==
tGroup
)
{
qDebug
()
<<
"came across the group id is"
<<
mXmlReader
.
attributes
().
value
(
aId
);
UBGraphicsGroupContainerItem
*
curGroup
=
readGroup
();
if
(
curGroup
)
{
result
->
addToGroup
(
curGroup
);
}
}
else
if
(
mXmlReader
.
name
()
==
tElement
)
{
if
(
curGroup
)
group
->
addToGroup
(
curGroup
);
}
else
if
(
mXmlReader
.
name
()
==
tElement
)
{
QString
id
=
mXmlReader
.
attributes
().
value
(
aId
).
toString
();
QString
itemId
=
id
.
right
(
QUuid
().
toString
().
size
());
QString
groupId
=
id
.
left
(
QUuid
().
toString
().
size
());
QGraphicsItem
*
curItem
=
readElementFromGroup
();
if
(
curItem
)
{
result
->
addToGroup
(
curItem
);
UBGraphicsPolygonItem
*
curPolygon
=
qgraphicsitem_cast
<
UBGraphicsPolygonItem
*>
(
curItem
);
if
(
curPolygon
&&
!
groupId
.
isEmpty
()
&&
!
itemId
.
isEmpty
()
&&
itemId
!=
groupId
)
{
strokesGroupsContainer
.
insert
(
groupId
,
curPolygon
);
}
else
// item
{
group
->
addToGroup
(
curItem
);
}
}
else
{
mXmlReader
.
skipCurrentElement
();
...
...
@@ -1025,7 +1040,47 @@ UBGraphicsGroupContainerItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroup()
}
}
return
result
;
foreach
(
QString
key
,
strokesGroupsContainer
.
keys
())
{
UBGraphicsStrokesGroup
*
pStrokesGroup
=
new
UBGraphicsStrokesGroup
();
UBGraphicsStroke
*
currentStroke
=
new
UBGraphicsStroke
();
foreach
(
UBGraphicsPolygonItem
*
poly
,
strokesGroupsContainer
.
values
(
key
))
{
if
(
poly
)
{
mScene
->
removeItem
(
poly
);
mScene
->
removeItemFromDeletion
(
poly
);
poly
->
setStrokesGroup
(
pStrokesGroup
);
poly
->
setStroke
(
currentStroke
);
pStrokesGroup
->
addToGroup
(
poly
);
}
}
if
(
currentStroke
->
polygons
().
empty
())
delete
currentStroke
;
if
(
pStrokesGroup
->
childItems
().
count
())
mScene
->
addItem
(
pStrokesGroup
);
else
delete
pStrokesGroup
;
if
(
pStrokesGroup
)
group
->
addToGroup
(
pStrokesGroup
);
}
foreach
(
QGraphicsItem
*
item
,
groupContainer
)
group
->
addToGroup
(
item
);
if
(
group
->
childItems
().
count
())
{
mScene
->
addItem
(
group
);
if
(
!
groupContainer
.
count
())
{
group
->
destroy
(
false
);
}
}
return
group
;
}
void
UBSvgSubsetAdaptor
::
UBSvgSubsetReader
::
readGroupRoot
()
...
...
@@ -1053,8 +1108,9 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroupRoot()
QGraphicsItem
*
UBSvgSubsetAdaptor
::
UBSvgSubsetReader
::
readElementFromGroup
()
{
QGraphicsItem
*
result
=
0
;
result
=
mScene
->
itemForUuid
(
QUuid
(
mXmlReader
.
attributes
().
value
(
aId
).
toString
()));
QString
id
=
mXmlReader
.
attributes
().
value
(
aId
).
toString
();
QString
uuid
=
id
.
right
(
QUuid
().
toString
().
size
());
result
=
mScene
->
itemForUuid
(
QUuid
(
uuid
));
mXmlReader
.
skipCurrentElement
();
mXmlReader
.
readNext
();
...
...
src/domain/UBGraphicsScene.cpp
View file @
2666115b
...
...
@@ -1713,6 +1713,7 @@ QRectF UBGraphicsScene::normalizedSceneRect(qreal ratio)
QGraphicsItem
*
UBGraphicsScene
::
itemForUuid
(
QUuid
uuid
)
{
QGraphicsItem
*
result
=
0
;
QString
ui
=
uuid
.
toString
();
//simple search before implementing container for fast access
foreach
(
QGraphicsItem
*
item
,
items
())
{
...
...
src/domain/UBGraphicsScene.h
View file @
2666115b
...
...
@@ -302,6 +302,8 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem
static
QUuid
getPersonalUuid
(
QGraphicsItem
*
item
);
UBGraphicsPolygonItem
*
polygonToPolygonItem
(
const
QPolygonF
pPolygon
);
public
slots
:
void
initStroke
();
void
hideEraser
();
...
...
@@ -338,7 +340,6 @@ public slots:
UBGraphicsPolygonItem
*
lineToPolygonItem
(
const
QLineF
&
pLine
,
const
qreal
&
pWidth
);
UBGraphicsPolygonItem
*
arcToPolygonItem
(
const
QLineF
&
pStartRadius
,
qreal
pSpanAngle
,
qreal
pWidth
);
UBGraphicsPolygonItem
*
polygonToPolygonItem
(
const
QPolygonF
pPolygon
);
void
initPolygonItem
(
UBGraphicsPolygonItem
*
);
...
...
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