Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
onlyoffice_core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boris Kocherov
onlyoffice_core
Commits
ccc4d751
Commit
ccc4d751
authored
Jul 06, 2017
by
ElenaSubbotina
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/hotfix/v4.4.2' into develop
parents
7852b7fb
a020d3db
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
70 additions
and
9 deletions
+70
-9
ASCOfficePPTXFile/PPTXFormat/Logic/GraphicFrame.cpp
ASCOfficePPTXFile/PPTXFormat/Logic/GraphicFrame.cpp
+15
-1
ASCOfficePPTXFile/PPTXFormat/Logic/Pic.cpp
ASCOfficePPTXFile/PPTXFormat/Logic/Pic.cpp
+50
-3
ASCOfficePPTXFile/PPTXFormat/Logic/Pic.h
ASCOfficePPTXFile/PPTXFormat/Logic/Pic.h
+1
-1
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_structures/ODRAW/OfficeArtFOPTE.h
...ce/XlsFormat/Logic/Biff_structures/ODRAW/OfficeArtFOPTE.h
+1
-1
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_drawing_context.cpp
...XlsFile2/source/XlsXlsxConverter/xlsx_drawing_context.cpp
+1
-1
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_drawing_context.h
...ceXlsFile2/source/XlsXlsxConverter/xlsx_drawing_context.h
+2
-2
No files found.
ASCOfficePPTXFile/PPTXFormat/Logic/GraphicFrame.cpp
View file @
ccc4d751
...
...
@@ -250,12 +250,26 @@ namespace PPTX
}
else
if
(
L"oleObj"
==
strName
)
{
olePic
=
oNode
.
ReadNode
(
L"p:pic"
);
olePic
=
oNode
.
ReadNode
(
L"p:pic"
);
//нормальный вариант объекта
if
(
olePic
.
IsInit
())
{
olePic
->
fromXMLOle
(
oNode
);
result
=
true
;
}
else
{
olePic
.
Init
();
//старый вариант описания объекта через spid в VmlDrawing
olePic
->
spPr
.
xfrm
;
Logic
::
PrstGeom
*
geom
=
new
Logic
::
PrstGeom
();
geom
->
prst
=
L"rect"
;
olePic
->
spPr
.
Geometry
.
m_geometry
.
reset
(
geom
);
olePic
->
fromXMLOle
(
oNode
);
result
=
true
;
}
if
(
olePic
->
spPr
.
xfrm
.
IsInit
()
==
false
)
olePic
->
spPr
.
xfrm
=
xfrm
;
}
else
if
(
L"AlternateContent"
==
strName
)
{
...
...
ASCOfficePPTXFile/PPTXFormat/Logic/Pic.cpp
View file @
ccc4d751
...
...
@@ -619,6 +619,45 @@ namespace PPTX
if
(
oleObject
.
IsInit
())
{
pWriter
->
StartRecord
(
SPTREE_TYPE_OLE
);
if
(
oleObject
->
m_sShapeId
.
IsInit
()
&&
(
!
blipFill
.
blip
->
embed
.
IsInit
()
&&
blipFill
.
blip
->
oleFilepathImage
.
empty
())
&&
parentFileIs
<
PPTX
::
Slide
>
()
&&
parentFileAs
<
PPTX
::
Slide
>
().
Vml
.
IsInit
())
{
OOX
::
CVmlDrawing
*
pVml
=
parentFileAs
<
PPTX
::
Slide
>
().
Vml
.
operator
->
();
std
::
map
<
std
::
wstring
,
OOX
::
CVmlDrawing
::
_vml_shape
>::
iterator
pPair
=
pVml
->
m_mapShapes
.
find
(
*
oleObject
->
m_sShapeId
);
if
(
pVml
->
m_mapShapes
.
end
()
!=
pPair
)
{
pPair
->
second
.
bUsed
=
true
;
OOX
::
Vml
::
CShape
*
pShape
=
dynamic_cast
<
OOX
::
Vml
::
CShape
*>
(
pPair
->
second
.
pElement
);
for
(
size_t
j
=
0
;
(
pShape
)
&&
(
j
<
pShape
->
m_arrItems
.
size
());
++
j
)
{
OOX
::
WritingElement
*
pChildElemShape
=
pShape
->
m_arrItems
[
j
];
if
(
OOX
::
et_v_imagedata
==
pChildElemShape
->
getType
())
{
OOX
::
Vml
::
CImageData
*
pImageData
=
static_cast
<
OOX
::
Vml
::
CImageData
*>
(
pChildElemShape
);
std
::
wstring
sIdImageFileCache
;
if
(
pImageData
->
m_oRelId
.
IsInit
())
sIdImageFileCache
=
pImageData
->
m_oRelId
->
GetValue
();
else
if
(
pImageData
->
m_rId
.
IsInit
())
sIdImageFileCache
=
pImageData
->
m_rId
->
GetValue
();
if
(
!
sIdImageFileCache
.
empty
())
{
//ищем физический файл ( rId относительно vml_drawing)
smart_ptr
<
OOX
::
File
>
pFile
=
pVml
->
Find
(
sIdImageFileCache
);
if
(
pFile
.
IsInit
()
&&
(
OOX
::
FileTypes
::
Image
==
pFile
->
type
()))
{
OOX
::
Image
*
pImageFileCache
=
static_cast
<
OOX
::
Image
*>
(
pFile
.
operator
->
());
blipFill
.
blip
->
oleFilepathImage
=
pImageFileCache
->
filename
().
GetPath
();
}
}
}
}
}
}
}
else
if
(
nvPicPr
.
nvPr
.
media
.
is_init
())
{
...
...
@@ -630,10 +669,17 @@ namespace PPTX
blipFill
.
blip
->
mediaFilepath
=
mediaFile
->
filename
().
GetPath
();
}
if
(
nvPicPr
.
nvPr
.
media
.
as
<
MediaFile
>
().
name
==
L"audioFile"
)
if
(
nvPicPr
.
nvPr
.
media
.
is
<
MediaFile
>
())
{
if
(
nvPicPr
.
nvPr
.
media
.
as
<
MediaFile
>
().
name
==
L"audioFile"
)
pWriter
->
StartRecord
(
SPTREE_TYPE_AUDIO
);
else
if
(
nvPicPr
.
nvPr
.
media
.
as
<
MediaFile
>
().
name
==
L"videoFile"
)
pWriter
->
StartRecord
(
SPTREE_TYPE_VIDEO
);
}
else
if
(
nvPicPr
.
nvPr
.
media
.
is
<
WavAudioFile
>
()
||
nvPicPr
.
nvPr
.
media
.
is
<
AudioCD
>
())
{
pWriter
->
StartRecord
(
SPTREE_TYPE_AUDIO
);
else
if
(
nvPicPr
.
nvPr
.
media
.
as
<
MediaFile
>
().
name
==
L"videoFile"
)
pWriter
->
StartRecord
(
SPTREE_TYPE_VIDEO
);
}
else
pWriter
->
StartRecord
(
SPTREE_TYPE_PIC
);
}
...
...
@@ -1338,6 +1384,7 @@ namespace PPTX
blipFill
.
blip
.
Init
();
blipFill
.
blip
->
oleRid
=
oleObject
->
m_oId
->
get
();
}
node
.
ReadAttributeBase
(
L"spid"
,
oleObject
->
m_sShapeId
);
}
}
// namespace Logic
}
// namespace PPTX
ASCOfficePPTXFile/PPTXFormat/Logic/Pic.h
View file @
ccc4d751
...
...
@@ -259,7 +259,7 @@ namespace PPTX
void
toXmlWriterVML
(
NSBinPptxRW
::
CXmlWriter
*
pWriter
,
smart_ptr
<
PPTX
::
Theme
>&
oTheme
,
smart_ptr
<
PPTX
::
Logic
::
ClrMap
>&
oClrMap
,
bool
in_group
=
false
);
//----------------------------------------------------------------------
NvPicPr
nvPicPr
;
BlipFill
blipFill
;
mutable
BlipFill
blipFill
;
SpPr
spPr
;
nullable
<
ShapeStyle
>
style
;
//internal
...
...
ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_structures/ODRAW/OfficeArtFOPTE.h
View file @
ccc4d751
...
...
@@ -750,7 +750,7 @@ class pConnectionSitesDir : public OfficeArtFOPTE
virtual
void
ReadComplexData
(
XLS
::
CFRecord
&
record
);
IMsoArray
<
O
DRAW
::
FixedPoint
>
complex
;
IMsoArray
<
O
SHARED
::
FixedPoint
>
complex
;
};
class
pInscribe
:
public
OfficeArtFOPTE
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_drawing_context.cpp
View file @
ccc4d751
...
...
@@ -2423,7 +2423,7 @@ void xlsx_drawing_context::set_custom_connection(std::vector<ODRAW::MSOPOINT>& p
current_drawing_states
->
back
()
->
custom_connection
=
points
;
}
void
xlsx_drawing_context
::
set_custom_connectionDir
(
std
::
vector
<
O
DRAW
::
FixedPoint
>&
points
)
void
xlsx_drawing_context
::
set_custom_connectionDir
(
std
::
vector
<
O
SHARED
::
FixedPoint
>&
points
)
{
if
(
current_drawing_states
==
NULL
)
return
;
if
(
current_drawing_states
->
empty
())
return
;
...
...
ASCOfficeXlsFile2/source/XlsXlsxConverter/xlsx_drawing_context.h
View file @
ccc4d751
...
...
@@ -182,7 +182,7 @@ public:
std
::
vector
<
ODRAW
::
MSOPOINT
>
custom_verticles
;
std
::
vector
<
ODRAW
::
ADJH
>
custom_adjustHandles
;
std
::
vector
<
ODRAW
::
MSOPOINT
>
custom_connection
;
std
::
vector
<
O
DRAW
::
FixedPoint
>
custom_connectionDir
;
std
::
vector
<
O
SHARED
::
FixedPoint
>
custom_connectionDir
;
std
::
vector
<
ODRAW
::
MSORECT
>
custom_inscribe
;
_rect
custom_rect
;
...
...
@@ -413,7 +413,7 @@ public:
void
set_custom_adjustValues
(
std
::
vector
<
_CP_OPT
(
int
)
>
&
values
);
void
set_custom_path
(
int
type_path
);
void
set_custom_connection
(
std
::
vector
<
ODRAW
::
MSOPOINT
>
&
points
);
void
set_custom_connectionDir
(
std
::
vector
<
O
DRAW
::
FixedPoint
>&
points
);
void
set_custom_connectionDir
(
std
::
vector
<
O
SHARED
::
FixedPoint
>&
points
);
void
set_custom_inscribe
(
std
::
vector
<
ODRAW
::
MSORECT
>
&
rects
);
void
set_custom_x_limo
(
int
val
);
void
set_custom_y_limo
(
int
val
);
...
...
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