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
84824631
Commit
84824631
authored
Apr 20, 2017
by
ElenaSubbotina
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
OdfFormatWriter - presentation styled list
parent
dc3ecb1f
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
275 additions
and
82 deletions
+275
-82
ASCOfficeOdfFileW/source/OdfFormat/odf_conversion_context.cpp
...fficeOdfFileW/source/OdfFormat/odf_conversion_context.cpp
+1
-0
ASCOfficeOdfFileW/source/OdfFormat/odf_lists_styles_context.cpp
...iceOdfFileW/source/OdfFormat/odf_lists_styles_context.cpp
+52
-35
ASCOfficeOdfFileW/source/OdfFormat/odf_lists_styles_context.h
...fficeOdfFileW/source/OdfFormat/odf_lists_styles_context.h
+4
-4
ASCOfficeOdfFileW/source/OdfFormat/odf_style_context.cpp
ASCOfficeOdfFileW/source/OdfFormat/odf_style_context.cpp
+2
-1
ASCOfficeOdfFileW/source/Oox2OdfConverter/ConvertDrawing.cpp
ASCOfficeOdfFileW/source/Oox2OdfConverter/ConvertDrawing.cpp
+183
-35
ASCOfficeOdfFileW/source/Oox2OdfConverter/Converter.h
ASCOfficeOdfFileW/source/Oox2OdfConverter/Converter.h
+5
-1
ASCOfficeOdfFileW/source/Oox2OdfConverter/DocxConverter.cpp
ASCOfficeOdfFileW/source/Oox2OdfConverter/DocxConverter.cpp
+4
-4
ASCOfficeOdfFileW/source/Oox2OdfConverter/PptxConverter.cpp
ASCOfficeOdfFileW/source/Oox2OdfConverter/PptxConverter.cpp
+8
-1
ASCOfficePPTXFile/PPTXFormat/Logic/Shape.cpp
ASCOfficePPTXFile/PPTXFormat/Logic/Shape.cpp
+15
-1
ASCOfficePPTXFile/PPTXFormat/Logic/Shape.h
ASCOfficePPTXFile/PPTXFormat/Logic/Shape.h
+1
-0
No files found.
ASCOfficeOdfFileW/source/OdfFormat/odf_conversion_context.cpp
View file @
84824631
...
@@ -262,6 +262,7 @@ void odf_conversion_context::process_settings(_object & object, bool isRoot)
...
@@ -262,6 +262,7 @@ void odf_conversion_context::process_settings(_object & object, bool isRoot)
void
odf_conversion_context
::
process_styles
(
_object
&
object
,
bool
isRoot
)
void
odf_conversion_context
::
process_styles
(
_object
&
object
,
bool
isRoot
)
{
{
create_element
(
L"office"
,
L"styles"
,
object
.
styles
,
this
,
true
);
//общие стили
create_element
(
L"office"
,
L"styles"
,
object
.
styles
,
this
,
true
);
//общие стили
object
.
style_context
->
process_office_styles
(
object
.
styles
.
back
());
object
.
style_context
->
process_office_styles
(
object
.
styles
.
back
());
page_layout_context
()
->
process_office_styles
(
object
.
styles
.
back
());
page_layout_context
()
->
process_office_styles
(
object
.
styles
.
back
());
...
...
ASCOfficeOdfFileW/source/OdfFormat/odf_lists_styles_context.cpp
View file @
84824631
...
@@ -54,11 +54,12 @@ void odf_lists_styles_context::set_odf_context(odf_conversion_context * Context)
...
@@ -54,11 +54,12 @@ void odf_lists_styles_context::set_odf_context(odf_conversion_context * Context)
odf_context_
=
Context
;
odf_context_
=
Context
;
}
}
void
odf_lists_styles_context
::
process_styles
(
office_element_ptr
root
)
void
odf_lists_styles_context
::
process_styles
(
office_element_ptr
root
,
bool
automatic
)
{
{
for
(
size_t
i
=
0
;
i
<
lists_format_array_
.
size
();
i
++
)
for
(
size_t
i
=
0
;
i
<
lists_format_array_
.
size
();
i
++
)
{
{
if
(
lists_format_array_
[
i
].
elements
.
size
()
<
1
)
continue
;
if
(
lists_format_array_
[
i
].
elements
.
size
()
<
1
)
continue
;
if
(
lists_format_array_
[
i
].
automatic
!=
automatic
)
continue
;
root
->
add_child_element
(
lists_format_array_
[
i
].
elements
[
0
]);
root
->
add_child_element
(
lists_format_array_
[
i
].
elements
[
0
]);
}
}
...
@@ -92,7 +93,13 @@ std::wstring odf_lists_styles_context::get_style_name1(int oox_style_num)
...
@@ -92,7 +93,13 @@ std::wstring odf_lists_styles_context::get_style_name1(int oox_style_num)
}
}
std
::
wstring
odf_lists_styles_context
::
get_style_name
(
int
oox_style_num
)
std
::
wstring
odf_lists_styles_context
::
get_style_name
(
int
oox_style_num
)
{
{
if
(
link_format_map_
.
count
(
oox_style_num
)
>
0
)
if
(
lists_format_array_
.
empty
())
return
L""
;
if
(
oox_style_num
<
0
)
{
return
lists_format_array_
.
back
().
odf_list_style_name
;
}
else
if
(
link_format_map_
.
count
(
oox_style_num
)
>
0
)
{
{
return
link_format_map_
.
at
(
oox_style_num
);
return
link_format_map_
.
at
(
oox_style_num
);
}
}
...
@@ -109,21 +116,30 @@ void odf_lists_styles_context::start_style(int based_number)
...
@@ -109,21 +116,30 @@ void odf_lists_styles_context::start_style(int based_number)
create_element
(
L"text"
,
L"list-style"
,
elm
,
odf_context_
);
create_element
(
L"text"
,
L"list-style"
,
elm
,
odf_context_
);
state
.
elements
.
push_back
(
elm
);
state
.
elements
.
push_back
(
elm
);
state
.
oox_based_number
=
based_number
;
if
(
based_number
<
0
)
state
.
odf_list_style_name
=
std
::
wstring
(
L"WWNum"
)
+
boost
::
lexical_cast
<
std
::
wstring
>
(
based_number
+
1
);
{
state
.
oox_based_number
=
lists_format_array_
.
size
();
state
.
odf_list_style_name
=
std
::
wstring
(
L"L"
)
+
boost
::
lexical_cast
<
std
::
wstring
>
(
state
.
oox_based_number
+
1
);
state
.
automatic
=
true
;
//document automatic style
}
else
{
state
.
oox_based_number
=
based_number
;
state
.
odf_list_style_name
=
std
::
wstring
(
L"WWNum"
)
+
boost
::
lexical_cast
<
std
::
wstring
>
(
state
.
oox_based_number
+
1
);
state
.
automatic
=
false
;
//office style
}
text_list_style
*
style
=
dynamic_cast
<
text_list_style
*>
(
elm
.
get
());
text_list_style
*
style
=
dynamic_cast
<
text_list_style
*>
(
elm
.
get
());
if
(
style
==
NULL
)
return
;
if
(
style
==
NULL
)
return
;
style
->
text_list_style_attr_
.
style_name_
=
state
.
odf_list_style_name
;
style
->
text_list_style_attr_
.
style_name_
=
state
.
odf_list_style_name
;
lists_format_array_
.
push_back
(
state
);
//перенести в end??
lists_format_array_
.
push_back
(
state
);
//перенести в end??
}
}
style_list_level_properties
*
odf_lists_styles_context
::
get_list_level_properties
()
style_list_level_properties
*
odf_lists_styles_context
::
get_list_level_properties
()
{
{
if
(
lists_format_array_
.
size
()
<
1
)
return
NULL
;
if
(
lists_format_array_
.
empty
()
)
return
NULL
;
if
(
lists_format_array_
.
back
().
elements
.
size
()
<
1
)
return
NULL
;
if
(
lists_format_array_
.
back
().
elements
.
empty
()
)
return
NULL
;
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_bullet
*
style_bullet_
=
dynamic_cast
<
text_list_level_style_bullet
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_bullet
*
style_bullet_
=
dynamic_cast
<
text_list_level_style_bullet
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
...
@@ -156,8 +172,8 @@ style_list_level_properties * odf_lists_styles_context::get_list_level_propertie
...
@@ -156,8 +172,8 @@ style_list_level_properties * odf_lists_styles_context::get_list_level_propertie
}
}
style_text_properties
*
odf_lists_styles_context
::
get_text_properties
()
style_text_properties
*
odf_lists_styles_context
::
get_text_properties
()
{
{
if
(
lists_format_array_
.
size
()
<
1
)
return
NULL
;
if
(
lists_format_array_
.
empty
()
)
return
NULL
;
if
(
lists_format_array_
.
back
().
elements
.
size
()
<
1
)
return
NULL
;
if
(
lists_format_array_
.
back
().
elements
.
empty
()
)
return
NULL
;
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_bullet
*
style_bullet_
=
dynamic_cast
<
text_list_level_style_bullet
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_bullet
*
style_bullet_
=
dynamic_cast
<
text_list_level_style_bullet
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
...
@@ -167,14 +183,14 @@ style_text_properties * odf_lists_styles_context::get_text_properties()
...
@@ -167,14 +183,14 @@ style_text_properties * odf_lists_styles_context::get_text_properties()
if
(
style_number_
)
if
(
style_number_
)
{
{
if
(
!
style_number_
->
style_text_properties_
)
if
(
!
style_number_
->
style_text_properties_
)
create_element
(
L"style"
,
L"text-properties"
,
style_number_
->
style_text_properties_
,
odf_context_
);
create_element
(
L"style"
,
L"text-properties"
,
style_number_
->
style_text_properties_
,
odf_context_
);
props
=
dynamic_cast
<
style_text_properties
*>
(
style_number_
->
style_text_properties_
.
get
());
props
=
dynamic_cast
<
style_text_properties
*>
(
style_number_
->
style_text_properties_
.
get
());
}
}
if
(
style_bullet_
)
if
(
style_bullet_
)
{
{
if
(
!
style_bullet_
->
style_text_properties_
)
if
(
!
style_bullet_
->
style_text_properties_
)
create_element
(
L"style"
,
L"text-properties"
,
style_bullet_
->
style_text_properties_
,
odf_context_
);
create_element
(
L"style"
,
L"text-properties"
,
style_bullet_
->
style_text_properties_
,
odf_context_
);
props
=
dynamic_cast
<
style_text_properties
*>
(
style_bullet_
->
style_text_properties_
.
get
());
props
=
dynamic_cast
<
style_text_properties
*>
(
style_bullet_
->
style_text_properties_
.
get
());
}
}
...
@@ -190,8 +206,8 @@ style_text_properties * odf_lists_styles_context::get_text_properties()
...
@@ -190,8 +206,8 @@ style_text_properties * odf_lists_styles_context::get_text_properties()
style_list_level_label_alignment
*
odf_lists_styles_context
::
get_list_level_alignment_properties
()
style_list_level_label_alignment
*
odf_lists_styles_context
::
get_list_level_alignment_properties
()
{
{
if
(
lists_format_array_
.
size
()
<
1
)
return
NULL
;
if
(
lists_format_array_
.
empty
()
)
return
NULL
;
if
(
lists_format_array_
.
back
().
elements
.
size
()
<
1
)
return
NULL
;
if
(
lists_format_array_
.
back
().
elements
.
empty
()
)
return
NULL
;
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_bullet
*
style_bullet_
=
dynamic_cast
<
text_list_level_style_bullet
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_bullet
*
style_bullet_
=
dynamic_cast
<
text_list_level_style_bullet
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
...
@@ -201,21 +217,21 @@ style_list_level_label_alignment * odf_lists_styles_context::get_list_level_alig
...
@@ -201,21 +217,21 @@ style_list_level_label_alignment * odf_lists_styles_context::get_list_level_alig
if
(
style_number_
)
if
(
style_number_
)
{
{
if
(
!
style_number_
->
style_list_level_properties_
)
if
(
!
style_number_
->
style_list_level_properties_
)
create_element
(
L"style"
,
L"list-level-properties"
,
style_number_
->
style_list_level_properties_
,
odf_context_
);
create_element
(
L"style"
,
L"list-level-properties"
,
style_number_
->
style_list_level_properties_
,
odf_context_
);
props
=
dynamic_cast
<
style_list_level_properties
*>
(
style_number_
->
style_list_level_properties_
.
get
());
props
=
dynamic_cast
<
style_list_level_properties
*>
(
style_number_
->
style_list_level_properties_
.
get
());
}
}
if
(
style_bullet_
)
if
(
style_bullet_
)
{
{
if
(
!
style_bullet_
->
style_list_level_properties_
)
if
(
!
style_bullet_
->
style_list_level_properties_
)
create_element
(
L"style"
,
L"list-level-properties"
,
style_bullet_
->
style_list_level_properties_
,
odf_context_
);
create_element
(
L"style"
,
L"list-level-properties"
,
style_bullet_
->
style_list_level_properties_
,
odf_context_
);
props
=
dynamic_cast
<
style_list_level_properties
*>
(
style_bullet_
->
style_list_level_properties_
.
get
());
props
=
dynamic_cast
<
style_list_level_properties
*>
(
style_bullet_
->
style_list_level_properties_
.
get
());
}
}
if
(
style_image_
)
if
(
style_image_
)
{
{
if
(
!
style_image_
->
style_list_level_properties_
)
if
(
!
style_image_
->
style_list_level_properties_
)
create_element
(
L"style"
,
L"list-level-properties"
,
style_image_
->
style_list_level_properties_
,
odf_context_
);
create_element
(
L"style"
,
L"list-level-properties"
,
style_image_
->
style_list_level_properties_
,
odf_context_
);
props
=
dynamic_cast
<
style_list_level_properties
*>
(
style_image_
->
style_list_level_properties_
.
get
());
props
=
dynamic_cast
<
style_list_level_properties
*>
(
style_image_
->
style_list_level_properties_
.
get
());
}
}
...
@@ -223,14 +239,15 @@ style_list_level_label_alignment * odf_lists_styles_context::get_list_level_alig
...
@@ -223,14 +239,15 @@ style_list_level_label_alignment * odf_lists_styles_context::get_list_level_alig
if
(
!
props
->
style_list_level_label_alignment_
)
if
(
!
props
->
style_list_level_label_alignment_
)
{
{
create_element
(
L"style"
,
L"list-level-label-alignment"
,
props
->
style_list_level_label_alignment_
,
odf_context_
);
create_element
(
L"style"
,
L"list-level-label-alignment"
,
props
->
style_list_level_label_alignment_
,
odf_context_
);
}
}
return
dynamic_cast
<
style_list_level_label_alignment
*>
(
props
->
style_list_level_label_alignment_
.
get
());
return
dynamic_cast
<
style_list_level_label_alignment
*>
(
props
->
style_list_level_label_alignment_
.
get
());
}
}
int
odf_lists_styles_context
::
start_style_level
(
int
level
,
int
type
)
int
odf_lists_styles_context
::
start_style_level
(
int
level
,
int
type
)
{
{
if
(
lists_format_array_
.
size
()
<
1
)
return
-
1
;
if
(
lists_format_array_
.
empty
())
return
-
1
;
int
odf_type
=
1
;
int
odf_type
=
1
;
int
format_type
=
-
1
;
int
format_type
=
-
1
;
...
@@ -451,10 +468,10 @@ wchar_t convert_bullet_char(wchar_t c)
...
@@ -451,10 +468,10 @@ wchar_t convert_bullet_char(wchar_t c)
}
}
void
odf_lists_styles_context
::
set_numeric_format
(
std
::
wstring
val
)
void
odf_lists_styles_context
::
set_numeric_format
(
std
::
wstring
val
)
{
{
if
(
lists_format_array_
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
empty
()
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
empty
()
)
return
;
if
(
val
.
length
()
<
1
)
return
;
if
(
val
.
empty
()
)
return
;
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
if
(
style_number_
)
if
(
style_number_
)
...
@@ -522,10 +539,10 @@ void odf_lists_styles_context::set_numeric_format(std::wstring val)
...
@@ -522,10 +539,10 @@ void odf_lists_styles_context::set_numeric_format(std::wstring val)
}
}
void
odf_lists_styles_context
::
set_bullet_char
(
std
::
wstring
val
)
void
odf_lists_styles_context
::
set_bullet_char
(
std
::
wstring
val
)
{
{
if
(
lists_format_array_
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
empty
()
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
empty
()
)
return
;
if
(
val
.
length
()
<
1
)
return
;
if
(
val
.
empty
()
)
return
;
text_list_level_style_bullet
*
style_bullet_
=
dynamic_cast
<
text_list_level_style_bullet
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_bullet
*
style_bullet_
=
dynamic_cast
<
text_list_level_style_bullet
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
...
@@ -536,8 +553,8 @@ void odf_lists_styles_context::set_bullet_char(std::wstring val)
...
@@ -536,8 +553,8 @@ void odf_lists_styles_context::set_bullet_char(std::wstring val)
void
odf_lists_styles_context
::
set_bullet_image_size
(
double
size
)
void
odf_lists_styles_context
::
set_bullet_image_size
(
double
size
)
{
{
if
(
size
<
0.1
)
return
;
if
(
size
<
0.1
)
return
;
if
(
lists_format_array_
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
empty
()
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
empty
()
)
return
;
style_list_level_properties
*
props
=
get_list_level_properties
();
style_list_level_properties
*
props
=
get_list_level_properties
();
...
@@ -548,8 +565,8 @@ void odf_lists_styles_context::set_bullet_image_size(double size)
...
@@ -548,8 +565,8 @@ void odf_lists_styles_context::set_bullet_image_size(double size)
}
}
void
odf_lists_styles_context
::
set_bullet_image
(
std
::
wstring
ref
)
void
odf_lists_styles_context
::
set_bullet_image
(
std
::
wstring
ref
)
{
{
if
(
lists_format_array_
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
empty
()
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
empty
()
)
return
;
text_list_level_style_image
*
style_image_
=
dynamic_cast
<
text_list_level_style_image
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_image
*
style_image_
=
dynamic_cast
<
text_list_level_style_image
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
...
@@ -563,8 +580,8 @@ void odf_lists_styles_context::set_bullet_image (std::wstring ref)
...
@@ -563,8 +580,8 @@ void odf_lists_styles_context::set_bullet_image (std::wstring ref)
}
}
void
odf_lists_styles_context
::
set_start_number
(
int
val
)
void
odf_lists_styles_context
::
set_start_number
(
int
val
)
{
{
if
(
lists_format_array_
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
empty
()
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
empty
()
)
return
;
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
...
@@ -574,8 +591,8 @@ void odf_lists_styles_context::set_start_number(int val)
...
@@ -574,8 +591,8 @@ void odf_lists_styles_context::set_start_number(int val)
}
}
void
odf_lists_styles_context
::
set_text_style_name
(
std
::
wstring
name
)
void
odf_lists_styles_context
::
set_text_style_name
(
std
::
wstring
name
)
{
{
if
(
lists_format_array_
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
empty
()
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
size
()
<
1
)
return
;
if
(
lists_format_array_
.
back
().
elements
.
empty
()
)
return
;
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_number
*
style_number_
=
dynamic_cast
<
text_list_level_style_number
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_bullet
*
style_bullet_
=
dynamic_cast
<
text_list_level_style_bullet
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
text_list_level_style_bullet
*
style_bullet_
=
dynamic_cast
<
text_list_level_style_bullet
*>
(
lists_format_array_
.
back
().
elements
.
back
().
get
());
...
...
ASCOfficeOdfFileW/source/OdfFormat/odf_lists_styles_context.h
View file @
84824631
...
@@ -55,7 +55,7 @@ struct list_format_state
...
@@ -55,7 +55,7 @@ struct list_format_state
std
::
vector
<
office_element_ptr
>
elements
;
std
::
vector
<
office_element_ptr
>
elements
;
std
::
wstring
odf_list_style_name
;
std
::
wstring
odf_list_style_name
;
bool
automatic
;
};
};
class
odf_lists_styles_context
class
odf_lists_styles_context
...
@@ -64,7 +64,7 @@ public:
...
@@ -64,7 +64,7 @@ public:
odf_lists_styles_context
();
odf_lists_styles_context
();
void
set_odf_context
(
odf_conversion_context
*
Context
);
void
set_odf_context
(
odf_conversion_context
*
Context
);
void
start_style
(
int
abstract_number
);
void
start_style
(
int
abstract_number
=
-
1
);
int
start_style_level
(
int
level
,
int
type
);
int
start_style_level
(
int
level
,
int
type
);
style_list_level_properties
*
get_list_level_properties
();
style_list_level_properties
*
get_list_level_properties
();
style_list_level_label_alignment
*
get_list_level_alignment_properties
();
style_list_level_label_alignment
*
get_list_level_alignment_properties
();
...
@@ -84,9 +84,9 @@ public:
...
@@ -84,9 +84,9 @@ public:
void
add_style
(
int
oox_style_num
,
int
oox_based_num
);
void
add_style
(
int
oox_style_num
,
int
oox_based_num
);
void
process_styles
(
office_element_ptr
root
);
void
process_styles
(
office_element_ptr
root
,
bool
automatic
);
std
::
wstring
get_style_name
(
int
oox_style_num
);
std
::
wstring
get_style_name
(
int
oox_style_num
=
-
1
);
std
::
wstring
get_style_name1
(
int
oox_style_num
);
std
::
wstring
get_style_name1
(
int
oox_style_num
);
private:
private:
std
::
vector
<
list_format_state
>
lists_format_array_
;
std
::
vector
<
list_format_state
>
lists_format_array_
;
...
...
ASCOfficeOdfFileW/source/OdfFormat/odf_style_context.cpp
View file @
84824631
...
@@ -161,6 +161,7 @@ void odf_style_context::process_automatic_styles(office_element_ptr root )
...
@@ -161,6 +161,7 @@ void odf_style_context::process_automatic_styles(office_element_ptr root )
if
(
/*it->automatic_== true && */
style_state_list_
[
i
]
->
root_
==
false
&&
style_state_list_
[
i
]
->
odf_style_
)
if
(
/*it->automatic_== true && */
style_state_list_
[
i
]
->
root_
==
false
&&
style_state_list_
[
i
]
->
odf_style_
)
root
->
add_child_element
(
style_state_list_
[
i
]
->
odf_style_
);
root
->
add_child_element
(
style_state_list_
[
i
]
->
odf_style_
);
}
}
lists_styles_context_
.
process_styles
(
root
,
true
);
}
}
void
odf_style_context
::
process_office_styles
(
office_element_ptr
root
)
void
odf_style_context
::
process_office_styles
(
office_element_ptr
root
)
...
@@ -175,7 +176,7 @@ void odf_style_context::process_office_styles(office_element_ptr root )
...
@@ -175,7 +176,7 @@ void odf_style_context::process_office_styles(office_element_ptr root )
root
->
add_child_element
(
style_state_list_
[
i
]
->
odf_style_
);
root
->
add_child_element
(
style_state_list_
[
i
]
->
odf_style_
);
}
}
lists_styles_context_
.
process_styles
(
root
);
lists_styles_context_
.
process_styles
(
root
,
false
);
}
}
std
::
wstring
odf_style_context
::
find_odf_style_name
(
int
oox_id_style
,
style_family
::
type
family
,
bool
root
,
bool
automatic
)
std
::
wstring
odf_style_context
::
find_odf_style_name
(
int
oox_id_style
,
style_family
::
type
family
,
bool
root
,
bool
automatic
)
{
{
...
...
ASCOfficeOdfFileW/source/Oox2OdfConverter/ConvertDrawing.cpp
View file @
84824631
...
@@ -34,7 +34,6 @@
...
@@ -34,7 +34,6 @@
#include "../../../Common/DocxFormat/Source/DocxFormat/Diagram/DiagramDrawing.h"
#include "../../../Common/DocxFormat/Source/DocxFormat/Diagram/DiagramDrawing.h"
#include "../../../Common/DocxFormat/Source/XlsxFormat/Chart/Chart.h"
#include "../../../Common/DocxFormat/Source/XlsxFormat/Chart/Chart.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/SpTreeElem.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/SpTreeElem.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/GraphicFrame.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/GraphicFrame.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Shape.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Shape.h"
...
@@ -46,6 +45,7 @@
...
@@ -46,6 +45,7 @@
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SrgbClr.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SrgbClr.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/PrstClr.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/PrstClr.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SchemeClr.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SchemeClr.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/TextFont.h"
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Drawing.h"
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Drawing.h"
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Word.h"
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Word.h"
...
@@ -55,6 +55,7 @@
...
@@ -55,6 +55,7 @@
#include "../OdfFormat/odf_drawing_context.h"
#include "../OdfFormat/odf_drawing_context.h"
#include "../OdfFormat/style_text_properties.h"
#include "../OdfFormat/style_text_properties.h"
#include "../OdfFormat/style_paragraph_properties.h"
#include "../OdfFormat/style_paragraph_properties.h"
#include "../OdfFormat/styles_list.h"
using
namespace
cpdoccore
;
using
namespace
cpdoccore
;
...
@@ -1106,6 +1107,138 @@ void OoxConverter::convert(PPTX::Logic::NvPr *oox_nvPr)
...
@@ -1106,6 +1107,138 @@ void OoxConverter::convert(PPTX::Logic::NvPr *oox_nvPr)
//nullable_limit<Limit::PlaceholderSize> sz;
//nullable_limit<Limit::PlaceholderSize> sz;
}
}
}
}
void
OoxConverter
::
convert_list_level
(
PPTX
::
Logic
::
TextParagraphPr
*
oox_para_props
,
int
level
)
{
//одномерные списки тока
//if (!oox_list)return;
if
(
!
oox_para_props
)
return
;
PPTX
::
Theme
*
theme
=
oox_theme
();
PPTX
::
Logic
::
Bullet
&
bullet
=
oox_para_props
->
ParagraphBullet
;
if
(
bullet
.
is
<
PPTX
::
Logic
::
BuNone
>
())
return
;
if
(
bullet
.
is
<
PPTX
::
Logic
::
BuAutoNum
>
())
{
const
PPTX
::
Logic
::
BuAutoNum
&
buAutoNum
=
bullet
.
as
<
PPTX
::
Logic
::
BuAutoNum
>
();
int
type
=
13
;
int
pptx_type
=
buAutoNum
.
type
.
GetBYTECode
();
if
(
pptx_type
<
3
)
type
=
46
;
if
(
pptx_type
>
2
&&
pptx_type
<
6
)
type
=
60
;
if
(
pptx_type
>
28
&&
pptx_type
<
32
)
type
=
47
;
if
(
pptx_type
>
31
&&
pptx_type
<
35
)
type
=
61
;
odf_context
()
->
styles_context
()
->
lists_styles
().
start_style_level
(
level
,
type
);
if
(
buAutoNum
.
startAt
.
IsInit
())
{
int
start_value
=
*
buAutoNum
.
startAt
;
if
(
start_value
>
1
)
odf_context
()
->
styles_context
()
->
lists_styles
().
set_start_number
(
start_value
);
}
}
if
(
bullet
.
is
<
PPTX
::
Logic
::
BuChar
>
())
{
const
PPTX
::
Logic
::
BuChar
&
buChar
=
bullet
.
as
<
PPTX
::
Logic
::
BuChar
>
();
odf_context
()
->
styles_context
()
->
lists_styles
().
start_style_level
(
level
,
5
);
odf_context
()
->
styles_context
()
->
lists_styles
().
set_bullet_char
(
buChar
.
Char
);
}
if
(
bullet
.
is
<
PPTX
::
Logic
::
BuBlip
>
())
{
const
PPTX
::
Logic
::
BuBlip
&
buBlip
=
bullet
.
as
<
PPTX
::
Logic
::
BuBlip
>
();
odf_context
()
->
styles_context
()
->
lists_styles
().
start_style_level
(
level
,
1000
);
odf_context
()
->
styles_context
()
->
lists_styles
().
set_bullet_image
(
odf_context
()
->
mediaitems
()
->
items
().
back
().
odf_ref
);
}
//odf_writer::style_list_level_label_alignment * aligment_props = odf_context()->styles_context()->lists_styles().get_list_level_alignment_properties();
odf_writer
::
style_list_level_properties
*
level_props
=
odf_context
()
->
styles_context
()
->
lists_styles
().
get_list_level_properties
();
odf_writer
::
style_text_properties
*
text_properties
=
odf_context
()
->
styles_context
()
->
lists_styles
().
get_text_properties
();
convert
(
oox_para_props
->
defRPr
.
GetPointer
(),
text_properties
);
if
(
oox_para_props
->
indent
.
IsInit
())
{
level_props
->
text_space_before_
=
odf_types
::
length
(
-
oox_para_props
->
indent
.
get
()
/
12700.
,
odf_types
::
length
::
pt
);
level_props
->
text_min_label_width_
=
odf_types
::
length
(
1
,
odf_types
::
length
::
pt
);
}
else
{
//aligment_props->fo_text_indent_ = odf_types::length(0, odf_types::length::cm);
//aligment_props->fo_margin_left_ = odf_types::length(0, odf_types::length::cm);
}
if
(
oox_para_props
->
buColor
.
is
<
PPTX
::
Logic
::
BuClrTx
>
())
{
const
PPTX
::
Logic
::
BuClrTx
&
buClrTx
=
oox_para_props
->
buColor
.
as
<
PPTX
::
Logic
::
BuClrTx
>
();
}
if
(
oox_para_props
->
buColor
.
is
<
PPTX
::
Logic
::
BuClr
>
())
{
PPTX
::
Logic
::
BuClr
&
buClr
=
oox_para_props
->
buColor
.
as
<
PPTX
::
Logic
::
BuClr
>
();
std
::
wstring
hexColor
;
_CP_OPT
(
double
)
opacity
;
convert
(
&
buClr
.
Color
,
hexColor
,
opacity
);
if
(
!
hexColor
.
empty
())
{
int
res
=
0
;
if
((
res
=
hexColor
.
find
(
L"#"
))
<
0
)
hexColor
=
std
::
wstring
(
L"#"
)
+
hexColor
;
text_properties
->
content_
.
fo_color_
=
odf_types
::
color
(
hexColor
);
}
}
if
(
oox_para_props
->
buSize
.
is
<
PPTX
::
Logic
::
BuSzTx
>
())
{
const
PPTX
::
Logic
::
BuSzTx
&
buSzTx
=
oox_para_props
->
buSize
.
as
<
PPTX
::
Logic
::
BuSzTx
>
();
}
else
if
(
oox_para_props
->
buSize
.
is
<
PPTX
::
Logic
::
BuSzPct
>
())
{
const
PPTX
::
Logic
::
BuSzPct
&
buSzPct
=
oox_para_props
->
buSize
.
as
<
PPTX
::
Logic
::
BuSzPct
>
();
if
(
buSzPct
.
val
.
IsInit
())
text_properties
->
content_
.
fo_font_size_
=
odf_types
::
percent
(
*
buSzPct
.
val
/
1000.
);
}
else
text_properties
->
content_
.
fo_font_size_
=
odf_types
::
percent
(
100.
);
if
(
oox_para_props
->
buSize
.
is
<
PPTX
::
Logic
::
BuSzPts
>
())
{
const
PPTX
::
Logic
::
BuSzPts
&
buSzPts
=
oox_para_props
->
buSize
.
as
<
PPTX
::
Logic
::
BuSzPts
>
();
if
(
buSzPts
.
val
.
IsInit
())
text_properties
->
content_
.
fo_font_size_
=
odf_types
::
length
(
*
buSzPts
.
val
,
odf_types
::
length
::
pt
);
}
else
if
(
oox_para_props
->
buTypeface
.
is
<
PPTX
::
Logic
::
BuFontTx
>
())
{
const
PPTX
::
Logic
::
BuFontTx
&
buFontTx
=
oox_para_props
->
buTypeface
.
as
<
PPTX
::
Logic
::
BuFontTx
>
();
}
if
(
oox_para_props
->
buTypeface
.
is
<
PPTX
::
Logic
::
TextFont
>
())
{
const
PPTX
::
Logic
::
TextFont
&
textFont
=
oox_para_props
->
buTypeface
.
as
<
PPTX
::
Logic
::
TextFont
>
();
std
::
wstring
font
=
textFont
.
typeface
;
convert_font
(
theme
,
font
);
if
(
!
font
.
empty
())
text_properties
->
content_
.
fo_font_family_
=
font
;
}
odf_context
()
->
styles_context
()
->
lists_styles
().
end_style_level
();
}
void
OoxConverter
::
convert_list
(
PPTX
::
Logic
::
TextListStyle
*
oox_list_style
)
{
if
(
!
oox_list_style
)
return
;
odf_context
()
->
styles_context
()
->
lists_styles
().
start_style
();
for
(
int
i
=
0
;
i
<
9
;
i
++
)
{
convert_list_level
(
oox_list_style
->
levels
[
0
].
GetPointer
(),
i
);
}
odf_context
()
->
styles_context
()
->
lists_styles
().
end_style
();
}
void
OoxConverter
::
convert
(
PPTX
::
Logic
::
Paragraph
*
oox_paragraph
,
PPTX
::
Logic
::
TextListStyle
*
oox_list_style
)
void
OoxConverter
::
convert
(
PPTX
::
Logic
::
Paragraph
*
oox_paragraph
,
PPTX
::
Logic
::
TextListStyle
*
oox_list_style
)
{
{
if
(
!
oox_paragraph
)
return
;
if
(
!
oox_paragraph
)
return
;
...
@@ -1116,27 +1249,37 @@ void OoxConverter::convert(PPTX::Logic::Paragraph *oox_paragraph, PPTX::Logic::T
...
@@ -1116,27 +1249,37 @@ void OoxConverter::convert(PPTX::Logic::Paragraph *oox_paragraph, PPTX::Logic::T
std
::
wstring
list_style_name
;
std
::
wstring
list_style_name
;
int
list_level
=
0
;
int
list_level
=
0
;
NSCommon
::
nullable
<
PPTX
::
Logic
::
TextParagraphPr
>
paraPr
;
if
(
oox_paragraph
->
pPr
.
IsInit
()
||
oox_list_style
)
if
(
oox_paragraph
->
pPr
.
IsInit
()
&&
oox_paragraph
->
pPr
->
lvl
.
IsInit
()
)
{
{
if
(
oox_paragraph
->
pPr
.
IsInit
())
list_level
=
*
oox_paragraph
->
pPr
->
lvl
;
{
}
if
(
oox_paragraph
->
pPr
->
ParagraphBullet
.
is_init
())
if
(
oox_list_style
&&
list_level
>=
0
&&
list_level
<
10
)
{
{
list_present
=
true
;
if
(
oox_list_style
->
levels
[
list_level
].
IsInit
())
list_level
=
1
;
oox_list_style
->
levels
[
list_level
]
->
Merge
(
paraPr
);
}
}
if
(
oox_paragraph
->
pPr
->
lvl
.
IsInit
())
if
(
oox_paragraph
->
pPr
.
IsInit
())
{
oox_paragraph
->
pPr
->
Merge
(
paraPr
);
list_level
=
*
oox_paragraph
->
pPr
->
lvl
;
if
(
list_level
>
0
)
if
(
paraPr
.
IsInit
())
list_present
=
true
;
{
}
list_level
=
paraPr
->
lvl
.
IsInit
()
?
*
paraPr
->
lvl
:
0
;
}
//свойства могут быть приписаны не только к параграфу, но и к самому объекту
if
(
list_level
>
0
)
list_present
=
true
;
if
(
paraPr
->
ParagraphBullet
.
is_init
())
{
list_present
=
true
;
if
(
paraPr
->
ParagraphBullet
.
is
<
PPTX
::
Logic
::
BuNone
>
())
list_present
=
false
;
else
if
(
list_level
==
0
)
list_level
=
1
;
}
//свойства могут быть приписаны не только к параграфу, но и к самому объекту
odf_writer
::
style_paragraph_properties
*
paragraph_properties
=
odf_context
()
->
text_context
()
->
get_paragraph_properties
();
odf_writer
::
style_paragraph_properties
*
paragraph_properties
=
odf_context
()
->
text_context
()
->
get_paragraph_properties
();
odf_writer
::
style_text_properties
*
text_properties
=
NULL
;
odf_writer
::
style_text_properties
*
text_properties
=
NULL
;
if
(
!
paragraph_properties
)
if
(
!
paragraph_properties
)
{
{
odf_context
()
->
text_context
()
->
get_styles_context
()
->
create_style
(
L""
,
odf_types
::
style_family
::
Paragraph
,
true
,
false
,
-
1
);
odf_context
()
->
text_context
()
->
get_styles_context
()
->
create_style
(
L""
,
odf_types
::
style_family
::
Paragraph
,
true
,
false
,
-
1
);
...
@@ -1144,37 +1287,38 @@ void OoxConverter::convert(PPTX::Logic::Paragraph *oox_paragraph, PPTX::Logic::T
...
@@ -1144,37 +1287,38 @@ void OoxConverter::convert(PPTX::Logic::Paragraph *oox_paragraph, PPTX::Logic::T
paragraph_properties
=
odf_context
()
->
text_context
()
->
get_styles_context
()
->
last_state
()
->
get_paragraph_properties
();
paragraph_properties
=
odf_context
()
->
text_context
()
->
get_styles_context
()
->
last_state
()
->
get_paragraph_properties
();
text_properties
=
odf_context
()
->
text_context
()
->
get_styles_context
()
->
last_state
()
->
get_text_properties
();
text_properties
=
odf_context
()
->
text_context
()
->
get_styles_context
()
->
last_state
()
->
get_text_properties
();
//if(list_present && oox_list_style)
//{
// list_style_name = odf_context->styles_context()->lists_styles().get_style_name(list_style_id);
// odf_context->styles_context()->last_state()->set_list_style_name(list_style_name);
//}
styled
=
true
;
styled
=
true
;
}
}
convert
(
oox_list_style
,
list_level
,
paragraph_properties
,
text_properties
);
convert
(
paraPr
.
GetPointer
(),
paragraph_properties
,
text_properties
);
convert
(
oox_paragraph
->
pPr
.
GetPointer
(),
paragraph_properties
,
text_properties
);
if
(
odf_context
()
->
drawing_context
()
->
is_wordart
())
if
(
odf_context
()
->
drawing_context
()
->
is_wordart
())
odf_context
()
->
drawing_context
()
->
set_paragraph_properties
(
paragraph_properties
);
odf_context
()
->
drawing_context
()
->
set_paragraph_properties
(
paragraph_properties
);
}
}
if
(
oox_paragraph
->
RunElems
.
empty
()
&&
list_present
)
list_present
=
false
;
// ms не обозначает присутствие списка, libra - показывает значек
while
(
odf_context
()
->
text_context
()
->
list_state_
.
levels
.
size
()
>
list_level
)
{
odf_context
()
->
text_context
()
->
end_list
();
}
if
(
list_present
)
if
(
list_present
)
{
{
while
(
odf_context
()
->
text_context
()
->
list_state_
.
levels
.
size
()
>
list_level
)
if
(
odf_context
()
->
text_context
()
->
list_state_
.
levels
.
empty
())
{
odf_context
()
->
text_context
()
->
end_list
();
}
if
(
odf_context
()
->
text_context
()
->
list_state_
.
levels
.
size
()
<
1
)
{
{
odf_context
()
->
text_context
()
->
list_state_
.
started_list
=
false
;
odf_context
()
->
text_context
()
->
list_state_
.
started_list
=
false
;
odf_context
()
->
text_context
()
->
list_state_
.
style_name
=
L""
;
odf_context
()
->
text_context
()
->
list_state_
.
style_name
=
L""
;
}
}
if
(
odf_context
()
->
text_context
()
->
list_state_
.
started_list
==
false
)
if
(
odf_context
()
->
text_context
()
->
list_state_
.
started_list
==
false
)
{
{
odf_context
()
->
styles_context
()
->
lists_styles
().
start_style
();
convert_list_level
(
paraPr
.
GetPointer
(),
list_level
-
1
);
odf_context
()
->
styles_context
()
->
lists_styles
().
end_style
();
list_style_name
=
odf_context
()
->
styles_context
()
->
lists_styles
().
get_style_name
();
odf_context
()
->
text_context
()
->
start_list
(
list_style_name
);
odf_context
()
->
text_context
()
->
start_list
(
list_style_name
);
//text_context()->set_list_continue(true); //??? держать в памяти все списки????
}
}
odf_context
()
->
text_context
()
->
start_list_item
();
odf_context
()
->
text_context
()
->
start_list_item
();
...
@@ -1186,10 +1330,14 @@ void OoxConverter::convert(PPTX::Logic::Paragraph *oox_paragraph, PPTX::Logic::T
...
@@ -1186,10 +1330,14 @@ void OoxConverter::convert(PPTX::Logic::Paragraph *oox_paragraph, PPTX::Logic::T
odf_context
()
->
text_context
()
->
start_list
(
list_style_name
);
odf_context
()
->
text_context
()
->
start_list
(
list_style_name
);
odf_context
()
->
text_context
()
->
start_list_item
();
odf_context
()
->
text_context
()
->
start_list_item
();
}
}
}
}
else
if
(
odf_context
()
->
text_context
()
->
list_state_
.
started_list
==
true
)
{
odf_context
()
->
text_context
()
->
end_list
();
}
odf_context
()
->
text_context
()
->
start_paragraph
(
styled
);
odf_context
()
->
text_context
()
->
start_paragraph
(
styled
);
for
(
size_t
i
=
0
;
i
<
oox_paragraph
->
RunElems
.
size
();
i
++
)
for
(
size_t
i
=
0
;
i
<
oox_paragraph
->
RunElems
.
size
();
i
++
)
{
{
convert
(
&
oox_paragraph
->
RunElems
[
i
].
as
<
OOX
::
WritingElement
>
());
convert
(
&
oox_paragraph
->
RunElems
[
i
].
as
<
OOX
::
WritingElement
>
());
}
}
...
...
ASCOfficeOdfFileW/source/Oox2OdfConverter/Converter.h
View file @
84824631
...
@@ -263,6 +263,7 @@ namespace PPTX
...
@@ -263,6 +263,7 @@ namespace PPTX
class
Theme
;
class
Theme
;
namespace
Logic
namespace
Logic
{
{
class
Bullet
;
class
ClrMap
;
class
ClrMap
;
class
SpTreeElem
;
class
SpTreeElem
;
class
GraphicFrame
;
class
GraphicFrame
;
...
@@ -403,7 +404,10 @@ public:
...
@@ -403,7 +404,10 @@ public:
void
convert
(
PPTX
::
Logic
::
NvCxnSpPr
*
oox_nvSpPr
);
void
convert
(
PPTX
::
Logic
::
NvCxnSpPr
*
oox_nvSpPr
);
void
convert
(
PPTX
::
Logic
::
NvGrpSpPr
*
oox_nvSpPr
);
void
convert
(
PPTX
::
Logic
::
NvGrpSpPr
*
oox_nvSpPr
);
void
convert
(
PPTX
::
Logic
::
NvPr
*
oox_nvPr
);
void
convert
(
PPTX
::
Logic
::
NvPr
*
oox_nvPr
);
void
convert
(
PPTX
::
Logic
::
Paragraph
*
oox_para
,
PPTX
::
Logic
::
TextListStyle
*
oox_list_style
=
NULL
);
void
convert
(
PPTX
::
Logic
::
Paragraph
*
oox_para
,
PPTX
::
Logic
::
TextListStyle
*
oox_list_style
=
NULL
);
void
convert_list_level
(
PPTX
::
Logic
::
TextParagraphPr
*
oox_para_props
,
int
level
);
void
convert_list
(
PPTX
::
Logic
::
TextListStyle
*
oox_list_style
);
void
convert
(
PPTX
::
Logic
::
TextListStyle
*
oox_list_style
,
int
level
,
cpdoccore
::
odf_writer
::
style_paragraph_properties
*
paragraph_properties
,
void
convert
(
PPTX
::
Logic
::
TextListStyle
*
oox_list_style
,
int
level
,
cpdoccore
::
odf_writer
::
style_paragraph_properties
*
paragraph_properties
,
cpdoccore
::
odf_writer
::
style_text_properties
*
text_properties
);
cpdoccore
::
odf_writer
::
style_text_properties
*
text_properties
);
...
...
ASCOfficeOdfFileW/source/Oox2OdfConverter/DocxConverter.cpp
View file @
84824631
...
@@ -3049,7 +3049,7 @@ void DocxConverter::convert(OOX::Numbering::CLvl* oox_num_lvl)
...
@@ -3049,7 +3049,7 @@ void DocxConverter::convert(OOX::Numbering::CLvl* oox_num_lvl)
int
type_list
=
odt_context
->
styles_context
()
->
lists_styles
().
start_style_level
(
oox_num_lvl
->
m_oIlvl
->
GetValue
(),
oox_type_list
);
int
type_list
=
odt_context
->
styles_context
()
->
lists_styles
().
start_style_level
(
oox_num_lvl
->
m_oIlvl
->
GetValue
(),
oox_type_list
);
if
(
type_list
<
0
)
return
;
if
(
type_list
<
0
)
return
;
odf_writer
::
style_list_level_properties
*
level_props
=
odt_context
->
styles_context
()
->
lists_styles
().
get_list_level_properties
();
odf_writer
::
style_list_level_properties
*
level_props
=
odt_context
->
styles_context
()
->
lists_styles
().
get_list_level_properties
();
odf_writer
::
style_list_level_label_alignment
*
aligment_props
=
odt_context
->
styles_context
()
->
lists_styles
().
get_list_level_alignment_properties
();
odf_writer
::
style_list_level_label_alignment
*
aligment_props
=
odt_context
->
styles_context
()
->
lists_styles
().
get_list_level_alignment_properties
();
if
(
level_props
==
NULL
)
return
;
if
(
level_props
==
NULL
)
return
;
...
@@ -3101,8 +3101,8 @@ void DocxConverter::convert(OOX::Numbering::CLvl* oox_num_lvl)
...
@@ -3101,8 +3101,8 @@ void DocxConverter::convert(OOX::Numbering::CLvl* oox_num_lvl)
}
}
}
else
}
else
{
{
aligment_props
->
fo_text_indent_
=
odf_types
::
length
(
0
,
odf_types
::
length
::
cm
);
aligment_props
->
fo_text_indent_
=
odf_types
::
length
(
0
,
odf_types
::
length
::
cm
);
aligment_props
->
fo_margin_left_
=
odf_types
::
length
(
0
,
odf_types
::
length
::
cm
);
aligment_props
->
fo_margin_left_
=
odf_types
::
length
(
0
,
odf_types
::
length
::
cm
);
}
}
}
}
...
@@ -3114,7 +3114,7 @@ void DocxConverter::convert(OOX::Numbering::CLvl* oox_num_lvl)
...
@@ -3114,7 +3114,7 @@ void DocxConverter::convert(OOX::Numbering::CLvl* oox_num_lvl)
convert
(
oox_num_lvl
->
m_oRPr
.
GetPointer
(),
text_props
);
convert
(
oox_num_lvl
->
m_oRPr
.
GetPointer
(),
text_props
);
//create text style for symbols list НА ЛОКАЛЬНОМ контексте - иначе пересечение имен стилей (todoo вытащить генерацию имен в общую часть)
//create text style for symbols list НА ЛОКАЛЬНОМ контексте - иначе пересечение имен стилей (todoo вытащить генерацию имен в общую часть)
styles_context
->
create_style
(
L""
,
odf_types
::
style_family
::
Text
,
false
,
true
,
-
1
);
styles_context
->
create_style
(
L""
,
odf_types
::
style_family
::
Text
,
false
,
true
,
-
1
);
odf_writer
::
odf_style_state_ptr
style_state
=
styles_context
->
last_state
(
odf_types
::
style_family
::
Text
);
odf_writer
::
odf_style_state_ptr
style_state
=
styles_context
->
last_state
(
odf_types
::
style_family
::
Text
);
if
(
style_state
)
if
(
style_state
)
{
{
...
...
ASCOfficeOdfFileW/source/Oox2OdfConverter/PptxConverter.cpp
View file @
84824631
...
@@ -986,9 +986,16 @@ void PptxConverter::convert_slide(PPTX::Logic::CSld *oox_slide, PPTX::Logic::TxS
...
@@ -986,9 +986,16 @@ void PptxConverter::convert_slide(PPTX::Logic::CSld *oox_slide, PPTX::Logic::TxS
}
}
update_shape
.
txBody
->
lstStyle
.
reset
(
newListStyle
);
update_shape
.
txBody
->
lstStyle
.
reset
(
newListStyle
);
}
}
pShape
->
Merge
(
update_shape
);
pShape
->
Merge
(
update_shape
);
//if (pShape->IsListStyleEmpty() == false)
//{
// //create list style
//}else if (listMasterStyle)
//{
//}
OoxConverter
::
convert
(
&
update_shape
);
OoxConverter
::
convert
(
&
update_shape
);
}
}
else
else
...
...
ASCOfficePPTXFile/PPTXFormat/Logic/Shape.cpp
View file @
84824631
...
@@ -437,7 +437,6 @@ namespace PPTX
...
@@ -437,7 +437,6 @@ namespace PPTX
pWriter
->
EndRecord
();
pWriter
->
EndRecord
();
}
}
void
Shape
::
FillLevelUp
()
void
Shape
::
FillLevelUp
()
{
{
if
((
m_pLevelUp
==
NULL
)
&&
(
nvSpPr
.
nvPr
.
ph
.
IsInit
()))
if
((
m_pLevelUp
==
NULL
)
&&
(
nvSpPr
.
nvPr
.
ph
.
IsInit
()))
...
@@ -452,6 +451,21 @@ namespace PPTX
...
@@ -452,6 +451,21 @@ namespace PPTX
}
}
}
}
bool
Shape
::
IsListStyleEmpty
()
{
if
((
m_pLevelUp
)
&&
(
m_pLevelUp
->
IsListStyleEmpty
()
==
false
))
return
false
;
if
(
txBody
.
IsInit
()
==
false
)
return
true
;
if
(
txBody
->
lstStyle
.
IsInit
()
==
false
)
return
true
;
for
(
int
i
=
0
;
i
<
10
;
i
++
)
{
if
(
txBody
->
lstStyle
->
levels
[
i
].
IsInit
())
return
false
;
}
return
true
;
}
void
Shape
::
Merge
(
Shape
&
shape
,
bool
bIsSlidePlaceholder
)
void
Shape
::
Merge
(
Shape
&
shape
,
bool
bIsSlidePlaceholder
)
{
{
if
(
m_pLevelUp
)
if
(
m_pLevelUp
)
...
...
ASCOfficePPTXFile/PPTXFormat/Logic/Shape.h
View file @
84824631
...
@@ -303,6 +303,7 @@ namespace PPTX
...
@@ -303,6 +303,7 @@ namespace PPTX
void
FillLevelUp
();
void
FillLevelUp
();
void
Merge
(
Shape
&
shape
,
bool
bIsSlidePlaceholder
=
false
);
void
Merge
(
Shape
&
shape
,
bool
bIsSlidePlaceholder
=
false
);
bool
IsListStyleEmpty
();
void
SetLevelUpElement
(
Shape
*
p
){
m_pLevelUp
=
p
;};
void
SetLevelUpElement
(
Shape
*
p
){
m_pLevelUp
=
p
;};
...
...
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