mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-27 15:51:51 +08:00
Compare commits
22 Commits
v4.5.dev.6
...
v4.5.dev.9
| Author | SHA1 | Date | |
|---|---|---|---|
| 8efed345b0 | |||
| f5dcb1bed7 | |||
| 6b4695fc3a | |||
| bed884007c | |||
| 1aa0b03901 | |||
| e2ada4ca61 | |||
| d87649f08e | |||
| 3982ac06d2 | |||
| 0a5d0af882 | |||
| 08e97b4a68 | |||
| c4447d7396 | |||
| c55af15ccd | |||
| 333d2fdbf0 | |||
| a2bbb1640c | |||
| 7388bf871f | |||
| 493238d656 | |||
| ea8dc009c9 | |||
| 9ade820313 | |||
| 358c1613ad | |||
| b3a83ad699 | |||
| 8d4e78ed40 | |||
| bde2c73f64 |
@ -2087,6 +2087,7 @@ namespace DocFileFormat
|
||||
nElemSize = 4;
|
||||
bTruncated = true;
|
||||
}
|
||||
else nElemSize = 2;
|
||||
|
||||
long dwSize = nElems * nElemSize;
|
||||
|
||||
|
||||
@ -105,6 +105,7 @@ SOURCES += \
|
||||
../src/odf/table_calculation_settings.cpp \
|
||||
../src/odf/table_docx.cpp \
|
||||
../src/odf/table_named_expressions.cpp \
|
||||
../src/odf/table_data_pilot_tables.cpp \
|
||||
../src/odf/table_pptx.cpp \
|
||||
../src/odf/table_xlsx.cpp \
|
||||
../src/odf/templates.cpp \
|
||||
@ -210,6 +211,7 @@ SOURCES += \
|
||||
../src/odf/datatypes/writingmode.cpp \
|
||||
../src/odf/datatypes/xlink.cpp \
|
||||
../src/odf/datatypes/chartlabelposition.cpp \
|
||||
../src/odf/datatypes/grandtotal.cpp \
|
||||
../src/docx/xlsx_conditionalFormatting.cpp \
|
||||
../src/docx/xlsx_dxfs.cpp \
|
||||
../src/docx/docx_content_type.cpp \
|
||||
@ -463,6 +465,8 @@ HEADERS += \
|
||||
../src/odf/datatypes/wrapoption.h \
|
||||
../src/odf/datatypes/writingmode.h \
|
||||
../src/odf/datatypes/xlink.h \
|
||||
../src/odf/datatypes/chartlabelposition.h \
|
||||
../src/odf/datatypes/grandtotal.h \
|
||||
../src/docx/docx_content_type.h \
|
||||
../src/docx/docx_conversion_context.h \
|
||||
../src/docx/docx_conversion_state.h \
|
||||
|
||||
@ -88,6 +88,7 @@
|
||||
#include "../src/odf/table_calculation_settings.cpp"
|
||||
#include "../src/odf/table_docx.cpp"
|
||||
#include "../src/odf/table_named_expressions.cpp"
|
||||
#include "../src/odf/table_data_pilot_tables.cpp"
|
||||
#include "../src/odf/table_pptx.cpp"
|
||||
#include "../src/odf/table_xlsx.cpp"
|
||||
#include "../src/odf/templates.cpp"
|
||||
|
||||
@ -120,3 +120,4 @@
|
||||
#include "../src/odf/datatypes/writingmode.cpp"
|
||||
#include "../src/odf/datatypes/xlink.cpp"
|
||||
#include "../src/odf/datatypes/chartlabelposition.cpp"
|
||||
#include "../src/odf/datatypes/grandtotal.cpp"
|
||||
|
||||
66
ASCOfficeOdfFile/src/odf/datatypes/grandtotal.cpp
Normal file
66
ASCOfficeOdfFile/src/odf/datatypes/grandtotal.cpp
Normal file
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2017
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "grandtotal.h"
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <ostream>
|
||||
|
||||
namespace cpdoccore { namespace odf_types {
|
||||
|
||||
std::wostream & operator << (std::wostream & _Wostream, const grand_total & _Val)
|
||||
{
|
||||
switch(_Val.get_type())
|
||||
{
|
||||
case grand_total::none: _Wostream << L"none"; break;
|
||||
case grand_total::both: _Wostream << L"both"; break;
|
||||
case grand_total::column: _Wostream << L"column"; break;
|
||||
case grand_total::row: _Wostream << L"row"; break;
|
||||
}
|
||||
return _Wostream;
|
||||
}
|
||||
|
||||
grand_total grand_total::parse(const std::wstring & Str)
|
||||
{
|
||||
std::wstring tmp = Str;
|
||||
boost::algorithm::to_lower(tmp);
|
||||
|
||||
if (tmp == L"none") return grand_total( none );
|
||||
else if (tmp == L"both") return grand_total( both );
|
||||
else if (tmp == L"column") return grand_total( column );
|
||||
else if (tmp == L"row") return grand_total( row );
|
||||
else
|
||||
{
|
||||
return grand_total( none );
|
||||
}
|
||||
}
|
||||
|
||||
} }
|
||||
67
ASCOfficeOdfFile/src/odf/datatypes/grandtotal.h
Normal file
67
ASCOfficeOdfFile/src/odf/datatypes/grandtotal.h
Normal file
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2017
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <iosfwd>
|
||||
#include <string>
|
||||
#include "odfattributes.h"
|
||||
|
||||
|
||||
namespace cpdoccore { namespace odf_types {
|
||||
|
||||
class grand_total
|
||||
{
|
||||
public:
|
||||
enum type
|
||||
{
|
||||
none,
|
||||
both,
|
||||
column,
|
||||
row
|
||||
};
|
||||
|
||||
grand_total() {}
|
||||
grand_total(type _Type) : type_(_Type) {}
|
||||
type get_type() const { return type_; };
|
||||
static grand_total parse(const std::wstring & Str);
|
||||
|
||||
private:
|
||||
type type_;
|
||||
|
||||
};
|
||||
std::wostream & operator << (std::wostream & _Wostream, const grand_total & _Val);
|
||||
|
||||
}
|
||||
|
||||
APPLY_PARSE_XML_ATTRIBUTES(odf_types::grand_total);
|
||||
|
||||
}
|
||||
@ -219,6 +219,15 @@ enum ElementType
|
||||
typeTableTableRowGroup,
|
||||
typeTableTableRowNoGroup,
|
||||
typeTableTableSource,
|
||||
|
||||
typeTableDataPilotTables,
|
||||
typeTableDataPilotTable,
|
||||
typeTableDataPilotField,
|
||||
typeTableDatabaseSourceTable,
|
||||
typeTableDatabaseSourceQuery,
|
||||
typeTableDatabaseSourceSql,
|
||||
typeTableSourceCellRange,
|
||||
typeTableSourceService,
|
||||
|
||||
typeOfficeBody,
|
||||
typeOfficeText,
|
||||
|
||||
@ -34,7 +34,6 @@
|
||||
|
||||
#include <cpdoccore/xml/xmlchar.h>
|
||||
#include <cpdoccore/xml/attributes.h>
|
||||
#include <cpdoccore/xml/attributes.h>
|
||||
|
||||
#include "serialize_elements.h"
|
||||
|
||||
@ -52,6 +51,10 @@ void office_spreadsheet::add_child_element( xml::sax * Reader, const std::wstrin
|
||||
{
|
||||
CP_CREATE_ELEMENT(table_database_ranges_);
|
||||
}
|
||||
else if CP_CHECK_NAME(L"table", L"data-pilot-tables")
|
||||
{
|
||||
CP_CREATE_ELEMENT(table_data_pilot_tables_);
|
||||
}
|
||||
else
|
||||
CP_CREATE_ELEMENT(content_);
|
||||
}
|
||||
@ -87,6 +90,10 @@ void office_spreadsheet::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
for (size_t i = 0; i < table_data_pilot_tables_.size(); i++)
|
||||
{
|
||||
table_data_pilot_tables_[i]->xlsx_convert(Context);
|
||||
}
|
||||
Context.end_office_spreadsheet();
|
||||
}
|
||||
|
||||
@ -66,6 +66,7 @@ public:
|
||||
// TODO: table-decls
|
||||
|
||||
office_element_ptr_array table_database_ranges_;
|
||||
office_element_ptr_array table_data_pilot_tables_;
|
||||
|
||||
office_element_ptr tracked_changes_;//??
|
||||
office_element_ptr_array content_;
|
||||
|
||||
@ -35,11 +35,13 @@
|
||||
#include <cpdoccore/CPOptional.h>
|
||||
#include <cpdoccore/xml/xmlelement.h>
|
||||
#include <cpdoccore/xml/nodetype.h>
|
||||
|
||||
#include "office_elements.h"
|
||||
#include "office_elements_create.h"
|
||||
|
||||
#include "table_named_expressions.h"
|
||||
#include "table_database_ranges.h"
|
||||
#include "table_data_pilot_tables.h"
|
||||
#include "calcext_elements.h"
|
||||
|
||||
#include "datatypes/tablemode.h"
|
||||
|
||||
209
ASCOfficeOdfFile/src/odf/table_data_pilot_tables.cpp
Normal file
209
ASCOfficeOdfFile/src/odf/table_data_pilot_tables.cpp
Normal file
@ -0,0 +1,209 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2017
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "table_data_pilot_tables.h"
|
||||
|
||||
#include <cpdoccore/xml/xmlchar.h>
|
||||
#include <cpdoccore/xml/attributes.h>
|
||||
|
||||
#include "serialize_elements.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
|
||||
using namespace odf_types;
|
||||
|
||||
namespace odf_reader {
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
const wchar_t * table_data_pilot_tables::ns = L"table";
|
||||
const wchar_t * table_data_pilot_tables::name = L"data-pilot-tables";
|
||||
|
||||
void table_data_pilot_tables::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
{
|
||||
}
|
||||
|
||||
void table_data_pilot_tables::add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name)
|
||||
{
|
||||
CP_CREATE_ELEMENT (content_);
|
||||
}
|
||||
void table_data_pilot_tables::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
const wchar_t * table_data_pilot_table::ns = L"table";
|
||||
const wchar_t * table_data_pilot_table::name = L"data-pilot-table";
|
||||
|
||||
void table_data_pilot_table::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
{
|
||||
CP_APPLY_ATTR(L"table:name" , table_name_);
|
||||
CP_APPLY_ATTR(L"table:application-data" , table_application_data_);
|
||||
CP_APPLY_ATTR(L"table:buttons" , table_buttons_);
|
||||
CP_APPLY_ATTR(L"table:drill-down-ondouble-click", table_drill_down_ondouble_click_);
|
||||
CP_APPLY_ATTR(L"table:grand-total" , table_grand_total_);
|
||||
CP_APPLY_ATTR(L"table:identify-categories" , table_identify_categories_);
|
||||
CP_APPLY_ATTR(L"table:ignore-empty-rows" , table_ignore_empty_rows_);
|
||||
CP_APPLY_ATTR(L"table:show-filterbutton" , table_show_filterbutton_);
|
||||
CP_APPLY_ATTR(L"table:show-target-range-address", table_show_target_range_address_);
|
||||
|
||||
}
|
||||
|
||||
void table_data_pilot_table::add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name)
|
||||
{
|
||||
CP_CREATE_ELEMENT (content_);
|
||||
}
|
||||
void table_data_pilot_table::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
const wchar_t * table_data_pilot_field::ns = L"table";
|
||||
const wchar_t * table_data_pilot_field::name = L"data-pilot-field";
|
||||
|
||||
void table_data_pilot_field::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
{
|
||||
}
|
||||
|
||||
void table_data_pilot_field::add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name)
|
||||
{
|
||||
CP_CREATE_ELEMENT (content_);
|
||||
}
|
||||
void table_data_pilot_field::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
const wchar_t * table_database_source_table::ns = L"table";
|
||||
const wchar_t * table_database_source_table::name = L"database-source-table";
|
||||
|
||||
void table_database_source_table::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
{
|
||||
}
|
||||
|
||||
void table_database_source_table::add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name)
|
||||
{
|
||||
CP_CREATE_ELEMENT (content_);
|
||||
}
|
||||
void table_database_source_table::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
const wchar_t * table_database_source_query::ns = L"table";
|
||||
const wchar_t * table_database_source_query::name = L"database-source-query";
|
||||
|
||||
void table_database_source_query::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
{
|
||||
}
|
||||
|
||||
void table_database_source_query::add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name)
|
||||
{
|
||||
CP_CREATE_ELEMENT (content_);
|
||||
}
|
||||
void table_database_source_query::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
const wchar_t * table_database_source_sql::ns = L"table";
|
||||
const wchar_t * table_database_source_sql::name = L"database-source-sql";
|
||||
|
||||
void table_database_source_sql::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
{
|
||||
}
|
||||
|
||||
void table_database_source_sql::add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name)
|
||||
{
|
||||
CP_CREATE_ELEMENT (content_);
|
||||
}
|
||||
void table_database_source_sql::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
const wchar_t * table_source_cell_range::ns = L"table";
|
||||
const wchar_t * table_source_cell_range::name = L"source-cell-range";
|
||||
|
||||
void table_source_cell_range::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
{
|
||||
}
|
||||
|
||||
void table_source_cell_range::add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name)
|
||||
{
|
||||
CP_CREATE_ELEMENT (content_);
|
||||
}
|
||||
void table_source_cell_range::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
const wchar_t * table_source_service::ns = L"table";
|
||||
const wchar_t * table_source_service::name = L"source-service";
|
||||
|
||||
void table_source_service::add_attributes( const xml::attributes_wc_ptr & Attributes )
|
||||
{
|
||||
}
|
||||
|
||||
void table_source_service::add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name)
|
||||
{
|
||||
CP_CREATE_ELEMENT (content_);
|
||||
}
|
||||
void table_source_service::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
227
ASCOfficeOdfFile/src/odf/table_data_pilot_tables.h
Normal file
227
ASCOfficeOdfFile/src/odf/table_data_pilot_tables.h
Normal file
@ -0,0 +1,227 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2017
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <iosfwd>
|
||||
#include <cpdoccore/CPOptional.h>
|
||||
#include <cpdoccore/xml/xmlelement.h>
|
||||
#include <cpdoccore/xml/nodetype.h>
|
||||
#include "office_elements.h"
|
||||
#include "office_elements_create.h"
|
||||
|
||||
#include "datatypes/common_attlists.h"
|
||||
#include "datatypes/bool.h"
|
||||
#include "datatypes/grandtotal.h"
|
||||
|
||||
namespace cpdoccore {
|
||||
namespace odf_reader {
|
||||
|
||||
class table_data_pilot_tables : public office_element_impl<table_data_pilot_tables>
|
||||
{
|
||||
public:
|
||||
static const wchar_t * ns;
|
||||
static const wchar_t * name;
|
||||
static const xml::NodeType xml_type = xml::typeElement;
|
||||
static const ElementType type = typeTableDataPilotTables;
|
||||
CPDOCCORE_DEFINE_VISITABLE();
|
||||
|
||||
virtual void xlsx_convert(oox::xlsx_conversion_context & Context);
|
||||
|
||||
private:
|
||||
virtual void add_attributes( const xml::attributes_wc_ptr & Attributes );
|
||||
virtual void add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name);
|
||||
|
||||
office_element_ptr_array content_;
|
||||
|
||||
};
|
||||
|
||||
CP_REGISTER_OFFICE_ELEMENT2(table_data_pilot_tables);
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
class table_data_pilot_table : public office_element_impl<table_data_pilot_table>
|
||||
{
|
||||
public:
|
||||
static const wchar_t * ns;
|
||||
static const wchar_t * name;
|
||||
static const xml::NodeType xml_type = xml::typeElement;
|
||||
static const ElementType type = typeTableDataPilotTable;
|
||||
CPDOCCORE_DEFINE_VISITABLE();
|
||||
|
||||
virtual void xlsx_convert(oox::xlsx_conversion_context & Context);
|
||||
|
||||
private:
|
||||
virtual void add_attributes( const xml::attributes_wc_ptr & Attributes );
|
||||
virtual void add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name);
|
||||
|
||||
_CP_OPT(std::wstring) table_name_;
|
||||
_CP_OPT(std::wstring) table_application_data_;
|
||||
_CP_OPT(std::wstring) table_buttons_;
|
||||
_CP_OPT(odf_types::Bool) table_drill_down_ondouble_click_;
|
||||
_CP_OPT(odf_types::grand_total)table_grand_total_;
|
||||
_CP_OPT(odf_types::Bool) table_identify_categories_;
|
||||
_CP_OPT(odf_types::Bool) table_ignore_empty_rows_;
|
||||
_CP_OPT(odf_types::Bool) table_show_filterbutton_;
|
||||
_CP_OPT(odf_types::Bool) table_show_target_range_address_;
|
||||
|
||||
office_element_ptr_array content_;
|
||||
};
|
||||
|
||||
CP_REGISTER_OFFICE_ELEMENT2(table_data_pilot_table);
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
class table_data_pilot_field : public office_element_impl<table_data_pilot_field>
|
||||
{
|
||||
public:
|
||||
static const wchar_t * ns;
|
||||
static const wchar_t * name;
|
||||
static const xml::NodeType xml_type = xml::typeElement;
|
||||
static const ElementType type = typeTableDataPilotField;
|
||||
CPDOCCORE_DEFINE_VISITABLE();
|
||||
|
||||
virtual void xlsx_convert(oox::xlsx_conversion_context & Context);
|
||||
|
||||
private:
|
||||
virtual void add_attributes( const xml::attributes_wc_ptr & Attributes );
|
||||
virtual void add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name);
|
||||
|
||||
office_element_ptr_array content_;
|
||||
};
|
||||
|
||||
CP_REGISTER_OFFICE_ELEMENT2(table_data_pilot_field);
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
class table_database_source_table : public office_element_impl<table_database_source_table>
|
||||
{
|
||||
public:
|
||||
static const wchar_t * ns;
|
||||
static const wchar_t * name;
|
||||
static const xml::NodeType xml_type = xml::typeElement;
|
||||
static const ElementType type = typeTableDatabaseSourceTable;
|
||||
CPDOCCORE_DEFINE_VISITABLE();
|
||||
|
||||
virtual void xlsx_convert(oox::xlsx_conversion_context & Context);
|
||||
|
||||
private:
|
||||
virtual void add_attributes( const xml::attributes_wc_ptr & Attributes );
|
||||
virtual void add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name);
|
||||
|
||||
office_element_ptr_array content_;
|
||||
};
|
||||
|
||||
CP_REGISTER_OFFICE_ELEMENT2(table_database_source_table);
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
class table_database_source_query : public office_element_impl<table_database_source_query>
|
||||
{
|
||||
public:
|
||||
static const wchar_t * ns;
|
||||
static const wchar_t * name;
|
||||
static const xml::NodeType xml_type = xml::typeElement;
|
||||
static const ElementType type = typeTableDatabaseSourceQuery;
|
||||
CPDOCCORE_DEFINE_VISITABLE();
|
||||
|
||||
virtual void xlsx_convert(oox::xlsx_conversion_context & Context);
|
||||
|
||||
private:
|
||||
virtual void add_attributes( const xml::attributes_wc_ptr & Attributes );
|
||||
virtual void add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name);
|
||||
|
||||
office_element_ptr_array content_;
|
||||
};
|
||||
|
||||
CP_REGISTER_OFFICE_ELEMENT2(table_database_source_query);
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
class table_database_source_sql : public office_element_impl<table_database_source_sql>
|
||||
{
|
||||
public:
|
||||
static const wchar_t * ns;
|
||||
static const wchar_t * name;
|
||||
static const xml::NodeType xml_type = xml::typeElement;
|
||||
static const ElementType type = typeTableDatabaseSourceSql;
|
||||
CPDOCCORE_DEFINE_VISITABLE();
|
||||
|
||||
virtual void xlsx_convert(oox::xlsx_conversion_context & Context);
|
||||
|
||||
private:
|
||||
virtual void add_attributes( const xml::attributes_wc_ptr & Attributes );
|
||||
virtual void add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name);
|
||||
|
||||
office_element_ptr_array content_;
|
||||
};
|
||||
|
||||
CP_REGISTER_OFFICE_ELEMENT2(table_database_source_sql);
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
class table_source_cell_range : public office_element_impl<table_source_cell_range>
|
||||
{
|
||||
public:
|
||||
static const wchar_t * ns;
|
||||
static const wchar_t * name;
|
||||
static const xml::NodeType xml_type = xml::typeElement;
|
||||
static const ElementType type = typeTableSourceCellRange;
|
||||
CPDOCCORE_DEFINE_VISITABLE();
|
||||
|
||||
virtual void xlsx_convert(oox::xlsx_conversion_context & Context);
|
||||
|
||||
private:
|
||||
virtual void add_attributes( const xml::attributes_wc_ptr & Attributes );
|
||||
virtual void add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name);
|
||||
|
||||
office_element_ptr_array content_;
|
||||
};
|
||||
|
||||
CP_REGISTER_OFFICE_ELEMENT2(table_source_cell_range);
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
class table_source_service : public office_element_impl<table_source_service>
|
||||
{
|
||||
public:
|
||||
static const wchar_t * ns;
|
||||
static const wchar_t * name;
|
||||
static const xml::NodeType xml_type = xml::typeElement;
|
||||
static const ElementType type = typeTableSourceService;
|
||||
CPDOCCORE_DEFINE_VISITABLE();
|
||||
|
||||
virtual void xlsx_convert(oox::xlsx_conversion_context & Context);
|
||||
|
||||
private:
|
||||
virtual void add_attributes( const xml::attributes_wc_ptr & Attributes );
|
||||
virtual void add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name);
|
||||
|
||||
office_element_ptr_array content_;
|
||||
};
|
||||
|
||||
CP_REGISTER_OFFICE_ELEMENT2(table_source_service);
|
||||
//-------------------------------------------------------------------------------------
|
||||
}
|
||||
}
|
||||
@ -565,6 +565,14 @@
|
||||
RelativePath="..\src\odf\datatypes\gradientstyle.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\odf\datatypes\grandtotal.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\odf\datatypes\grandtotal.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\odf\datatypes\hatchstyle.cpp"
|
||||
>
|
||||
|
||||
@ -1659,6 +1659,14 @@
|
||||
RelativePath="..\src\odf\table_calculation_settings.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\odf\table_data_pilot_tables.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\odf\table_data_pilot_tables.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\odf\table_database_ranges.cpp"
|
||||
>
|
||||
|
||||
@ -594,8 +594,17 @@ void OoxConverter::convert(PPTX::Logic::SpPr *oox_spPr, PPTX::Logic::ShapeStyle*
|
||||
|
||||
convert(oox_spPr->xfrm.GetPointer());
|
||||
|
||||
PPTX::Logic::PrstGeom* prstGeom = &oox_spPr->Geometry.as<PPTX::Logic::PrstGeom>();
|
||||
PPTX::Logic::CustGeom* custGeom = &oox_spPr->Geometry.as<PPTX::Logic::CustGeom>();
|
||||
PPTX::Logic::PrstGeom* prstGeom = NULL;
|
||||
PPTX::Logic::CustGeom* custGeom = NULL;
|
||||
|
||||
if (oox_spPr->Geometry.is<PPTX::Logic::PrstGeom>())
|
||||
{
|
||||
prstGeom = &oox_spPr->Geometry.as<PPTX::Logic::PrstGeom>();
|
||||
}
|
||||
if (oox_spPr->Geometry.is<PPTX::Logic::CustGeom>())
|
||||
{
|
||||
custGeom = &oox_spPr->Geometry.as<PPTX::Logic::CustGeom>();
|
||||
}
|
||||
|
||||
convert(prstGeom);
|
||||
convert(custGeom);
|
||||
@ -627,8 +636,13 @@ void OoxConverter::convert(PPTX::Logic::SpPr *oox_spPr, PPTX::Logic::ShapeStyle*
|
||||
}
|
||||
odf_context()->drawing_context()->end_line_properties();
|
||||
//-----------------------------------------------------------------------------------------------------------------------------
|
||||
PPTX::Logic::EffectLst* effectLst = &oox_spPr->EffectList.as<PPTX::Logic::EffectLst>();
|
||||
PPTX::Logic::EffectLst* effectLst = NULL;
|
||||
|
||||
if (oox_spPr->EffectList.is<PPTX::Logic::EffectLst>())
|
||||
{
|
||||
effectLst = &oox_spPr->EffectList.as<PPTX::Logic::EffectLst>();
|
||||
}
|
||||
|
||||
if (effectLst) convert(effectLst);
|
||||
else if (oox_sp_style) convert(&oox_sp_style->effectRef, 3);
|
||||
|
||||
@ -642,20 +656,14 @@ void OoxConverter::convert(PPTX::Logic::SpPr *oox_spPr, PPTX::Logic::ShapeStyle*
|
||||
|
||||
void OoxConverter::convert(PPTX::Logic::UniFill *oox_fill, DWORD nARGB)
|
||||
{
|
||||
if (oox_fill == NULL) return;
|
||||
|
||||
PPTX::Logic::NoFill* noFill = &oox_fill->as<PPTX::Logic::NoFill>();
|
||||
PPTX::Logic::BlipFill* blipFill = &oox_fill->as<PPTX::Logic::BlipFill>();
|
||||
PPTX::Logic::GradFill* gradFill = &oox_fill->as<PPTX::Logic::GradFill>();
|
||||
PPTX::Logic::SolidFill* solidFill = &oox_fill->as<PPTX::Logic::SolidFill>();
|
||||
PPTX::Logic::PattFill* pattFill = &oox_fill->as<PPTX::Logic::PattFill>();
|
||||
if (oox_fill == NULL) return;
|
||||
|
||||
if (solidFill) convert(solidFill, nARGB);
|
||||
else if (blipFill) convert(blipFill);
|
||||
else if (gradFill) convert(gradFill, nARGB);
|
||||
else if (pattFill) convert(pattFill, nARGB);
|
||||
else if (noFill) odf_context()->drawing_context()->set_no_fill();
|
||||
if (oox_fill->is<PPTX::Logic::NoFill>()) odf_context()->drawing_context()->set_no_fill();
|
||||
|
||||
if (oox_fill->is<PPTX::Logic::BlipFill>()) convert(&oox_fill->as<PPTX::Logic::BlipFill>());
|
||||
if (oox_fill->is<PPTX::Logic::GradFill>()) convert(&oox_fill->as<PPTX::Logic::GradFill>(), nARGB);
|
||||
if (oox_fill->is<PPTX::Logic::SolidFill>()) convert(&oox_fill->as<PPTX::Logic::SolidFill>(),nARGB);
|
||||
if (oox_fill->is<PPTX::Logic::PattFill>()) convert(&oox_fill->as<PPTX::Logic::PattFill>(), nARGB);
|
||||
}
|
||||
|
||||
int OoxConverter::convert(PPTX::Logic::PrstTxWarp *oox_text_preset)
|
||||
@ -783,8 +791,10 @@ void OoxConverter::convert(PPTX::Logic::Path2D *oox_geom_path)
|
||||
|
||||
for (size_t i = 0 ; i < oox_geom_path->Paths.size(); i++)
|
||||
{
|
||||
PPTX::Logic::PathBase* pathBase = &oox_geom_path->Paths[i].Path2D.as<PPTX::Logic::PathBase>();
|
||||
convert(pathBase);
|
||||
if (oox_geom_path->Paths[i].Path2D.is<PPTX::Logic::PathBase>())
|
||||
{
|
||||
convert(&oox_geom_path->Paths[i].Path2D.as<PPTX::Logic::PathBase>());
|
||||
}
|
||||
}
|
||||
|
||||
if (oox_geom_path->stroke.IsInit() && *oox_geom_path->stroke == false)
|
||||
@ -1692,12 +1702,21 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
|
||||
_CP_OPT(double) opacityText;
|
||||
std::wstring hexColorText;
|
||||
|
||||
PPTX::Logic::GradFill* gradFill = &oox_run_pr->Fill.as<PPTX::Logic::GradFill>();
|
||||
PPTX::Logic::GradFill* gradFill = NULL;
|
||||
PPTX::Logic::SolidFill* solidFill = NULL;
|
||||
|
||||
if (oox_run_pr->Fill.is<PPTX::Logic::GradFill>())
|
||||
{
|
||||
gradFill = &oox_run_pr->Fill.as<PPTX::Logic::GradFill>();
|
||||
}
|
||||
if (gradFill && !gradFill->GsLst.empty())
|
||||
{
|
||||
convert(&gradFill->GsLst[0].color, hexColorText, opacityText);
|
||||
}
|
||||
PPTX::Logic::SolidFill* solidFill = &oox_run_pr->Fill.as<PPTX::Logic::SolidFill>();
|
||||
if (oox_run_pr->Fill.is<PPTX::Logic::SolidFill>())
|
||||
{
|
||||
solidFill = &oox_run_pr->Fill.as<PPTX::Logic::SolidFill>();
|
||||
}
|
||||
if (solidFill)
|
||||
{
|
||||
convert(&solidFill->Color, hexColorText, opacityText);
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../../../DesktopEditor/common/ASCVariant.h"
|
||||
#include "../../DesktopEditor/common/ASCVariant.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
|
||||
@ -4581,10 +4581,13 @@ std::wstring CDrawingConverter::SaveObjectBackground(LONG lStart, LONG lLength)
|
||||
NSBinPptxRW::CXmlWriter oXmlWriter;
|
||||
SaveObjectExWriterInit(oXmlWriter, XMLWRITER_DOC_TYPE_DOCX);
|
||||
|
||||
oXmlWriter.m_bIsTop = true; // не забыть скинуть в самом шейпе
|
||||
PPTX::Logic::Shape& oShape = oElem.as<PPTX::Logic::Shape>();
|
||||
oShape.toXmlWriterVMLBackground(&oXmlWriter, *m_pTheme, *m_pClrMap);
|
||||
if (oElem.is<PPTX::Logic::Shape>())
|
||||
{
|
||||
oXmlWriter.m_bIsTop = true; // не забыть скинуть в самом шейпе
|
||||
|
||||
PPTX::Logic::Shape& oShape = oElem.as<PPTX::Logic::Shape>();
|
||||
oShape.toXmlWriterVMLBackground(&oXmlWriter, *m_pTheme, *m_pClrMap);
|
||||
}
|
||||
--m_nCurrentIndexObject;
|
||||
|
||||
SaveObjectExWriterRelease(oXmlWriter);
|
||||
@ -4606,18 +4609,26 @@ void CDrawingConverter::ConvertShapeVML(PPTX::Logic::SpTreeElem& oElem, const st
|
||||
{
|
||||
ConvertMainPropsToVML(bsMainProps, oWriter, oElem);
|
||||
|
||||
oWriter.m_bIsTop = true; // не забыть скинуть в самом шейпе
|
||||
PPTX::Logic::Shape& oShape = oElem.as<PPTX::Logic::Shape>();
|
||||
oShape.toXmlWriterVML(&oWriter, *m_pTheme, *m_pClrMap, false, bSignature);
|
||||
if (oElem.is<PPTX::Logic::Shape>())
|
||||
{
|
||||
oWriter.m_bIsTop = true; // не забыть скинуть в самом шейпе
|
||||
|
||||
PPTX::Logic::Shape& oShape = oElem.as<PPTX::Logic::Shape>();
|
||||
oShape.toXmlWriterVML(&oWriter, *m_pTheme, *m_pClrMap, false, bSignature);
|
||||
}
|
||||
}
|
||||
|
||||
void CDrawingConverter::ConvertGroupVML(PPTX::Logic::SpTreeElem& oElem, const std::wstring& bsMainProps, NSBinPptxRW::CXmlWriter& oWriter)
|
||||
{
|
||||
ConvertMainPropsToVML(bsMainProps, oWriter, oElem);
|
||||
|
||||
oWriter.m_bIsTop = true; // не забыть скинуть в самом шейпе (вместе с остальными параметрами)
|
||||
PPTX::Logic::SpTree& oGroup = oElem.as<PPTX::Logic::SpTree>();
|
||||
oGroup.toXmlWriterVML(&oWriter, *m_pTheme, *m_pClrMap);
|
||||
if (oElem.is<PPTX::Logic::SpTree>())
|
||||
{
|
||||
oWriter.m_bIsTop = true; // не забыть скинуть в самом шейпе (вместе с остальными параметрами)
|
||||
|
||||
PPTX::Logic::SpTree& oGroup = oElem.as<PPTX::Logic::SpTree>();
|
||||
oGroup.toXmlWriterVML(&oWriter, *m_pTheme, *m_pClrMap);
|
||||
}
|
||||
}
|
||||
void CDrawingConverter::ConvertTextVML(XmlUtils::CXmlNode &nodeTextBox, PPTX::Logic::Shape* pShape)
|
||||
{
|
||||
|
||||
@ -415,11 +415,10 @@ namespace NSBinPptxRW
|
||||
LONG lLayouts = (LONG)m_arSlideMasters_Theme[i].m_arLayouts.size();
|
||||
for (LONG j = 0; j < lLayouts; ++j)
|
||||
{
|
||||
arrLays.push_back(PPTX::Logic::XmlId());
|
||||
arrLays.push_back(PPTX::Logic::XmlId(L"p:sldLayoutId"));
|
||||
|
||||
std::wstring sId = std::to_wstring((_UINT64)(0x80000000 + __nCountLayouts + j + 1));
|
||||
|
||||
arrLays[j].m_name = _T("sldLayoutId");
|
||||
arrLays[j].id = sId;
|
||||
arrLays[j].rid = (size_t)(j + 1);
|
||||
}
|
||||
@ -755,11 +754,10 @@ namespace NSBinPptxRW
|
||||
LONG nCountLayouts = 0;
|
||||
for (LONG i = 0; i < nCountMasters; ++i)
|
||||
{
|
||||
m_oPresentation.sldMasterIdLst.push_back(PPTX::Logic::XmlId());
|
||||
m_oPresentation.sldMasterIdLst.push_back(PPTX::Logic::XmlId(L"p:sldMasterId"));
|
||||
|
||||
std::wstring sId = std::to_wstring((_UINT64)(0x80000000 + nCountLayouts));
|
||||
|
||||
m_oPresentation.sldMasterIdLst[i].m_name = _T("sldMasterId");
|
||||
m_oPresentation.sldMasterIdLst[i].id = sId;
|
||||
m_oPresentation.sldMasterIdLst[i].rid = (size_t)(i + 1);
|
||||
nCountLayouts += (LONG)(m_arSlideMasters_Theme[i].m_arLayouts.size() + 1);
|
||||
@ -773,11 +771,10 @@ namespace NSBinPptxRW
|
||||
m_oPresentation.sldIdLst.clear();
|
||||
for (LONG i = 0; i < nCountSlides; ++i)
|
||||
{
|
||||
m_oPresentation.sldIdLst.push_back(PPTX::Logic::XmlId());
|
||||
m_oPresentation.sldIdLst.push_back(PPTX::Logic::XmlId(L"p:sldId"));
|
||||
|
||||
std::wstring sId = std::to_wstring(256 + i);
|
||||
|
||||
m_oPresentation.sldIdLst[i].m_name = _T("sldId");
|
||||
m_oPresentation.sldIdLst[i].id = sId;
|
||||
m_oPresentation.sldIdLst[i].rid = (size_t)nCurrentRels;
|
||||
++nCurrentRels;
|
||||
@ -788,8 +785,8 @@ namespace NSBinPptxRW
|
||||
m_oPresentation.notesMasterIdLst.clear();
|
||||
if (bNotesMasterPresent)
|
||||
{
|
||||
m_oPresentation.notesMasterIdLst.push_back(PPTX::Logic::XmlId());
|
||||
m_oPresentation.notesMasterIdLst[0].m_name = _T("notesMasterId");
|
||||
m_oPresentation.notesMasterIdLst.push_back(PPTX::Logic::XmlId(L"p:notesMasterId"));
|
||||
|
||||
m_oPresentation.notesMasterIdLst[0].rid = (size_t)nCurrentRels;
|
||||
++nCurrentRels;
|
||||
}
|
||||
|
||||
@ -32,15 +32,15 @@
|
||||
#ifndef PPTX_LOGIC_EXTP_PROPERTIES_INCLUDE_H_
|
||||
#define PPTX_LOGIC_EXTP_PROPERTIES_INCLUDE_H_
|
||||
|
||||
#include "./../WrapperWritingElement.h"
|
||||
#include "../../../Common/DocxFormat/Source/DocxFormat/RId.h"
|
||||
#include "../Presentation/SectionLst.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
//<p:ext uri="{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}">
|
||||
//<p14:media xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" r:embed="rId2">
|
||||
//<p14:trim st="93333.0816" end="96583.4816"/>
|
||||
//</p14:media>
|
||||
//</p:ext>
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
//<ext uri="{05C60535-1F16-4fd2-B633-F4F36F0B64E0}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main">
|
||||
// <x14:sparklineGroups xmlns:xm="http://schemas.microsoft.com/office/excel/2006/main">
|
||||
// <x14:sparklineGroup displayEmptyCellsAs="gap">
|
||||
@ -61,10 +61,33 @@
|
||||
// </x14:sparklineGroup>
|
||||
// </x14:sparklineGroups>
|
||||
//</ext>
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
//<a:ext uri="{63B3BB69-23CF-44E3-9099-C40C66FF867C}">
|
||||
// <a14:compatExt spid="_x0000_s1025"/>
|
||||
//</a:ext>
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
// <p:ext uri="{521415D9-36F7-43E2-AB2F-B90AF26B5E84}">
|
||||
// <p14:sectionLst xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main">
|
||||
// <p14:section name="123" id="{775558AA-D529-4C59-9762-B6F3CDAC8092}">
|
||||
// <p14:sldIdLst>
|
||||
// <p14:sldId id="256"/>
|
||||
// <p14:sldId id="257"/>
|
||||
// </p14:sldIdLst>
|
||||
// </p14:section>
|
||||
// <p14:section name="qwerty" id="{296A3C58-7D47-4848-A546-3C86980BE927}">
|
||||
// <p14:sldIdLst>
|
||||
// <p14:sldId id="258"/>
|
||||
// </p14:sldIdLst>
|
||||
// </p14:section>
|
||||
// <p14:section name="Раздел без заголовка" id="{DA908BF8-2A15-4E46-B49B-C1BB4B4AAF31}">
|
||||
// <p14:sldIdLst/>
|
||||
// </p14:section>
|
||||
// </p14:sectionLst>
|
||||
// </p:ext>
|
||||
// <p:ext uri="{EFAFB233-063F-42B5-8137-9DF3F51BA10A}">
|
||||
// <p15:sldGuideLst xmlns:p15="http://schemas.microsoft.com/office/powerpoint/2012/main"/>
|
||||
// </p:ext>
|
||||
//</p:extLst>
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
@ -115,48 +138,61 @@ namespace PPTX
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("uri"), uri)
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, L"uri", uri)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
void ReadAttributes1(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle( oReader, _T("r:embed"), link)
|
||||
WritingElement_ReadAttributes_ReadSingle( oReader, L"r:embed", link)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
void ReadAttributes2(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("st"), st)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("end"), end)
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, L"st", st)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, L"end", end)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
void ReadAttributes3(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("spid"), spid)
|
||||
WritingElement_ReadAttributes_Start( oReader );
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, L"spid", spid)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{//todooo списком ..
|
||||
XmlUtils::CXmlNode media = node.ReadNodeNoNS(_T("media"));
|
||||
if (media.IsValid())
|
||||
{
|
||||
XmlUtils::CXmlNodes oNodes;
|
||||
if (node.GetNodes(L"*", oNodes))
|
||||
{
|
||||
link = media.GetAttribute(_T("r:embed"));
|
||||
|
||||
XmlUtils::CXmlNode trim = media.ReadNodeNoNS(_T("trim"));
|
||||
if (trim.IsValid())
|
||||
int nCount = oNodes.GetCount();
|
||||
for (int i = 0; i < nCount; ++i)
|
||||
{
|
||||
trim.ReadAttributeBase(_T("st"), st);
|
||||
trim.ReadAttributeBase(_T("end"), end);
|
||||
XmlUtils::CXmlNode oNode;
|
||||
oNodes.GetAt(i, oNode);
|
||||
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(oNode.GetName());
|
||||
|
||||
if (L"media" == strName)
|
||||
{
|
||||
link = oNode.GetAttribute(L"r:embed");
|
||||
|
||||
XmlUtils::CXmlNode trim = oNode.ReadNodeNoNS(L"trim");
|
||||
if (trim.IsValid())
|
||||
{
|
||||
trim.ReadAttributeBase(L"st", st);
|
||||
trim.ReadAttributeBase(L"end", end);
|
||||
}
|
||||
}
|
||||
else if (L"compatExt" == strName)
|
||||
{
|
||||
spid = oNode.GetAttribute(L"spid");
|
||||
}
|
||||
else if (L"sectionLst" == strName)
|
||||
{
|
||||
sectionLst = oNode;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
XmlUtils::CXmlNode compatExt = node.ReadNodeNoNS(_T("compatExt"));
|
||||
if (compatExt.IsValid())
|
||||
{
|
||||
spid = media.GetAttribute(_T("spid"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -170,11 +206,11 @@ namespace PPTX
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
if (link.IsInit() && uri.IsInit())
|
||||
if (link.IsInit())
|
||||
{
|
||||
pWriter->StartNode(L"p:ext");
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(L"uri", *uri);
|
||||
pWriter->WriteAttribute(L"uri", std::wstring(L"{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}"));
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->StartNode(L"p14:media");
|
||||
@ -185,6 +221,16 @@ namespace PPTX
|
||||
pWriter->EndNode(L"p14:media");
|
||||
pWriter->EndNode(L"p:ext");
|
||||
}
|
||||
if (sectionLst.IsInit())
|
||||
{
|
||||
pWriter->StartNode(L"p:ext");
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(L"uri", std::wstring(L"{521415D9-36F7-43E2-AB2F-B90AF26B5E84}"));
|
||||
pWriter->EndAttributes();
|
||||
|
||||
sectionLst->toXmlWriter(pWriter);
|
||||
pWriter->EndNode(L"p:ext");
|
||||
}
|
||||
}
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
@ -201,10 +247,11 @@ namespace PPTX
|
||||
//media
|
||||
nullable<OOX::RId> link;
|
||||
nullable_double st;
|
||||
nullable_double end;
|
||||
|
||||
nullable_double end;
|
||||
//compatExt
|
||||
nullable_string spid;
|
||||
|
||||
nullable<nsPresentation::SectionLst> sectionLst;
|
||||
//dataModelExt
|
||||
//table
|
||||
//sparklineGroups
|
||||
|
||||
@ -896,7 +896,6 @@ namespace PPTX
|
||||
{
|
||||
PPTX::Logic::Ext ext;
|
||||
ext.link = OOX::RId(blipFill.blip->mediaRid);
|
||||
ext.uri = L"{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}";
|
||||
nvPicPr.nvPr.extLst.push_back(ext);
|
||||
|
||||
int nRId = -1;
|
||||
|
||||
@ -45,9 +45,14 @@ namespace PPTX
|
||||
public:
|
||||
PPTX_LOGIC_BASE(XmlId)
|
||||
|
||||
XmlId(std::wstring name)
|
||||
{
|
||||
m_name = name;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_name = XmlUtils::GetNameNoNS(node.GetName());
|
||||
m_name = node.GetName();
|
||||
|
||||
node.ReadAttributeBase(L"r:id", rid);
|
||||
node.ReadAttributeBase(L"id", id);
|
||||
}
|
||||
@ -57,7 +62,7 @@ namespace PPTX
|
||||
oAttr.Write(_T("r:id"), rid.ToString());
|
||||
oAttr.Write(_T("id"), id);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:") + m_name, oAttr);
|
||||
return XmlUtils::CreateNode(m_name, oAttr);
|
||||
}
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
@ -69,17 +74,48 @@ namespace PPTX
|
||||
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
}
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG _end_rec = pReader->GetPos() + pReader->GetLong() + 4;
|
||||
|
||||
pReader->Skip(1); // start attributes
|
||||
|
||||
while (true)
|
||||
{
|
||||
BYTE _at = pReader->GetUChar_TypeNode();
|
||||
if (_at == NSBinPptxRW::g_nodeAttributeEnd)
|
||||
break;
|
||||
|
||||
switch (_at)
|
||||
{
|
||||
case 0:
|
||||
id = pReader->GetString2();
|
||||
break;
|
||||
case 1:
|
||||
rid = pReader->GetString2();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(_T("p:") + m_name);
|
||||
pWriter->StartNode( m_name );
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("id"), id);
|
||||
pWriter->WriteAttribute(_T("r:id"), rid.ToString());
|
||||
pWriter->WriteAttribute(_T("id"), id);
|
||||
|
||||
std::wstring sRid = rid.ToString();
|
||||
if (sRid.empty() == false)
|
||||
{
|
||||
pWriter->WriteAttribute(_T("r:id"), sRid);
|
||||
}
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->EndNode(_T("p:") + m_name);
|
||||
pWriter->EndNode( m_name );
|
||||
}
|
||||
|
||||
nullable_string id;
|
||||
|
||||
@ -52,40 +52,42 @@ namespace PPTX
|
||||
class Namespaces
|
||||
{
|
||||
public:
|
||||
Namespaces() : a(L"a", L"http://schemas.openxmlformats.org/drawingml/2006/main"),
|
||||
b(L"b", L"http://schemas.openxmlformats.org/officeDocument/2006/bibliography"),
|
||||
cdr(L"cdr", L"http://schemas.openxmlformats.org/drawingml/2006/chartDrawing"),
|
||||
cp(L"cp", L"http://schemas.openxmlformats.org/package/2006/metadata/core-properties"),
|
||||
dc(L"dc", L"http://purl.org/dc/elements/1.1/"),
|
||||
Namespaces() :
|
||||
a (L"a", L"http://schemas.openxmlformats.org/drawingml/2006/main"),
|
||||
b (L"b", L"http://schemas.openxmlformats.org/officeDocument/2006/bibliography"),
|
||||
cdr (L"cdr", L"http://schemas.openxmlformats.org/drawingml/2006/chartDrawing"),
|
||||
cp (L"cp", L"http://schemas.openxmlformats.org/package/2006/metadata/core-properties"),
|
||||
dc (L"dc", L"http://purl.org/dc/elements/1.1/"),
|
||||
dchrt(L"dchrt", L"http://schemas.openxmlformats.org/drawingml/2006/chart"),
|
||||
dcmitype(L"dcmitype", L"http://purl.org/dc/dcmitype/"),
|
||||
dcterms(L"dcterms", L"http://purl.org/dc/terms/"),
|
||||
ddgrm(L"ddgrm", L"http://schemas.openxmlformats.org/drawingml/2006/diagram"),
|
||||
dgm(L"dgm", L"http://schemas.openxmlformats.org/drawingml/2006/diagram"),
|
||||
dgm (L"dgm", L"http://schemas.openxmlformats.org/drawingml/2006/diagram"),
|
||||
dlckcnv(L"dlckcnv", L"http://schemas.openxmlformats.org/drawingml/2006/lockedCanvas"),
|
||||
dpct(L"dpct", L"http://schemas.openxmlformats.org/drawingml/2006/picture"),
|
||||
ds(L"ds", L"http://schemas.openxmlformats.org/officeDocument/2006/customXml"),
|
||||
m(L"m", L"http://schemas.openxmlformats.org/officeDocument/2006/math"),
|
||||
o(L"o", L"urn:schemas-microsoft-com:office:office"),
|
||||
p(L"p", L"http://schemas.openxmlformats.org/presentationml/2006/main"),
|
||||
pic(L"pic", L"http://schemas.openxmlformats.org/drawingml/2006/picture"),
|
||||
pvml(L"pvml", L"urn:schemas-microsoft-com:office:powerpoint"),
|
||||
r(L"r", L"http://schemas.openxmlformats.org/officeDocument/2006/relationships"),
|
||||
s(L"s", L"http://schemas.openxmlformats.org/officeDocument/2006/sharedTypes"),
|
||||
sl(L"sl", L"http://schemas.openxmlformats.org/schemaLibrary/2006/main"),
|
||||
v(L"v", L"urn:schemas-microsoft-com:vml"),
|
||||
ve(L"ve", L"http://schemas.openxmlformats.org/markup-compatibility/2006"),
|
||||
vp(L"vp", L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"),
|
||||
vt(L"vt", L"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"),
|
||||
w(L"w", L"http://schemas.openxmlformats.org/wordprocessingml/2006/main"),
|
||||
w10(L"w10", L"urn:schemas-microsoft-com:office:word"),
|
||||
wne(L"wne", L"http://schemas.microsoft.com/office/word/2006/wordml"),
|
||||
wp(L"wp", L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"),
|
||||
x(L"x", L"urn:schemas-microsoft-com:office:excel"),
|
||||
xdr(L"xdr", L"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"),
|
||||
dpct(L"dpct", L"http://schemas.openxmlformats.org/drawingml/2006/picture"),
|
||||
ds (L"ds", L"http://schemas.openxmlformats.org/officeDocument/2006/customXml"),
|
||||
m (L"m", L"http://schemas.openxmlformats.org/officeDocument/2006/math"),
|
||||
o (L"o", L"urn:schemas-microsoft-com:office:office"),
|
||||
p (L"p", L"http://schemas.openxmlformats.org/presentationml/2006/main"),
|
||||
pic (L"pic", L"http://schemas.openxmlformats.org/drawingml/2006/picture"),
|
||||
pvml(L"pvml", L"urn:schemas-microsoft-com:office:powerpoint"),
|
||||
r (L"r", L"http://schemas.openxmlformats.org/officeDocument/2006/relationships"),
|
||||
s (L"s", L"http://schemas.openxmlformats.org/officeDocument/2006/sharedTypes"),
|
||||
sl (L"sl", L"http://schemas.openxmlformats.org/schemaLibrary/2006/main"),
|
||||
v (L"v", L"urn:schemas-microsoft-com:vml"),
|
||||
ve (L"ve", L"http://schemas.openxmlformats.org/markup-compatibility/2006"),
|
||||
vp (L"vp", L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"),
|
||||
vt (L"vt", L"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"),
|
||||
w (L"w", L"http://schemas.openxmlformats.org/wordprocessingml/2006/main"),
|
||||
w10 (L"w10", L"urn:schemas-microsoft-com:office:word"),
|
||||
wne (L"wne", L"http://schemas.microsoft.com/office/word/2006/wordml"),
|
||||
wp (L"wp", L"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"),
|
||||
x (L"x", L"urn:schemas-microsoft-com:office:excel"),
|
||||
xdr (L"xdr", L"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"),
|
||||
xmlns(L"xmlns", L"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"),
|
||||
xsd(L"xsd", L"http://www.w3.org/2001/XMLSchema"),
|
||||
xsi(L"xsi", L"http://www.w3.org/2001/XMLSchema-instance")
|
||||
xsd (L"xsd", L"http://www.w3.org/2001/XMLSchema"),
|
||||
xsi (L"xsi", L"http://www.w3.org/2001/XMLSchema-instance"),
|
||||
p14 (L"p14", L"http://schemas.microsoft.com/office/powerpoint/2010/main")
|
||||
{
|
||||
}
|
||||
|
||||
@ -124,6 +126,7 @@ namespace PPTX
|
||||
const Namespace xmlns;
|
||||
const Namespace xsd;
|
||||
const Namespace xsi;
|
||||
const Namespace p14;
|
||||
};
|
||||
|
||||
static Namespaces g_Namespaces;
|
||||
|
||||
@ -37,19 +37,19 @@
|
||||
#include "FileContainer.h"
|
||||
#include "FileTypes.h"
|
||||
|
||||
#include "Limit/Conformance.h"
|
||||
#include "Logic/TextListStyle.h"
|
||||
#include "Logic/ClrMap.h"
|
||||
#include "Theme/ClrScheme.h"
|
||||
|
||||
#include "Presentation/EmbeddedFont.h"
|
||||
#include "Presentation/Kinsoku.h"
|
||||
#include "Presentation/NotesSz.h"
|
||||
#include "Presentation/PhotoAlbum.h"
|
||||
#include "Logic/XmlId.h"
|
||||
#include "Presentation/SldSz.h"
|
||||
#include "CommentAuthors.h"
|
||||
|
||||
#include "Limit/Conformance.h"
|
||||
#include "Logic/TextListStyle.h"
|
||||
#include "Logic/ClrMap.h"
|
||||
#include "Logic/ExtP.h"
|
||||
#include "Theme/ClrScheme.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
class Presentation : public WrapperFile, public PPTX::FileContainer
|
||||
@ -87,7 +87,6 @@ namespace PPTX
|
||||
oNode.ReadAttributeBase(L"showSpecialPlsOnTitleSld", attrShowSpecialPlsOnTitleSld);
|
||||
oNode.ReadAttributeBase(L"strictFirstAndLastChars", attrStrictFirstAndLastChars);
|
||||
|
||||
|
||||
//custDataLst (Customer Data List)
|
||||
//custShowLst (List of Custom Shows)
|
||||
defaultTextStyle = oNode.ReadNode(_T("p:defaultTextStyle"));
|
||||
@ -100,8 +99,7 @@ namespace PPTX
|
||||
{
|
||||
oNodeEmbeddedFonts.LoadArray(_T("p:embeddedFont"), embeddedFontLst);
|
||||
|
||||
size_t count = embeddedFontLst.size();
|
||||
for (size_t i = 0; i < count; ++i)
|
||||
for (size_t i = 0; i < embeddedFontLst.size(); ++i)
|
||||
embeddedFontLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
|
||||
@ -111,8 +109,7 @@ namespace PPTX
|
||||
{
|
||||
oNodeHMList.LoadArray(_T("p:handoutMasterId"), handoutMasterIdLst);
|
||||
|
||||
size_t count = handoutMasterIdLst.size();
|
||||
for (size_t i = 0; i < count; ++i)
|
||||
for (size_t i = 0; i < handoutMasterIdLst.size(); ++i)
|
||||
handoutMasterIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
|
||||
@ -128,8 +125,7 @@ namespace PPTX
|
||||
{
|
||||
oNodeMIDList.LoadArray(_T("p:notesMasterId"), notesMasterIdLst);
|
||||
|
||||
size_t count = notesMasterIdLst.size();
|
||||
for (size_t i = 0; i < count; ++i)
|
||||
for (size_t i = 0; i < notesMasterIdLst.size(); ++i)
|
||||
notesMasterIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
|
||||
@ -147,8 +143,7 @@ namespace PPTX
|
||||
{
|
||||
oNode_sldId.LoadArray(_T("p:sldId"), sldIdLst);
|
||||
|
||||
size_t count = sldIdLst.size();
|
||||
for (size_t i = 0; i < count; ++i)
|
||||
for (size_t i = 0; i < sldIdLst.size(); ++i)
|
||||
sldIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
|
||||
@ -158,16 +153,36 @@ namespace PPTX
|
||||
{
|
||||
oNode_sldM_Id.LoadArray(_T("p:sldMasterId"), sldMasterIdLst);
|
||||
|
||||
size_t count = sldMasterIdLst.size();
|
||||
for (size_t i = 0; i < count; ++i)
|
||||
for (size_t i = 0; i < sldMasterIdLst.size(); ++i)
|
||||
sldMasterIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
|
||||
sldSz = oNode.ReadNode(_T("p:sldSz"));
|
||||
if (sldSz.is_init())
|
||||
sldSz->SetParentFilePointer(this);
|
||||
//smartTags (Smart Tags)
|
||||
|
||||
XmlUtils::CXmlNode list = oNode.ReadNodeNoNS(_T("extLst"));
|
||||
if (list.IsValid())
|
||||
{
|
||||
XmlUtils::CXmlNodes oNodes;
|
||||
if (list.GetNodes(_T("*"), oNodes))
|
||||
{
|
||||
int nCount = oNodes.GetCount();
|
||||
for (int i = 0; i < nCount; ++i)
|
||||
{
|
||||
XmlUtils::CXmlNode oNode;
|
||||
oNodes.GetAt(i, oNode);
|
||||
|
||||
PPTX::Logic::Ext ext;
|
||||
ext.fromXML(oNode);
|
||||
if (ext.sectionLst.IsInit())
|
||||
{
|
||||
sectionLst = ext.sectionLst;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//smartTags (Smart Tags)
|
||||
Normalize();
|
||||
}
|
||||
virtual void write(const OOX::CPath& filename, const OOX::CPath& directory, OOX::CContentTypes& content)const
|
||||
@ -205,6 +220,7 @@ namespace PPTX
|
||||
pWriter->WriteRecord2(5, sldSz);
|
||||
|
||||
pWriter->WriteRecord2(6, commentAuthors);
|
||||
pWriter->WriteRecord2(7, sectionLst);
|
||||
|
||||
pWriter->EndRecord();
|
||||
}
|
||||
@ -312,6 +328,12 @@ namespace PPTX
|
||||
commentAuthors->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
sectionLst = new nsPresentation::SectionLst();
|
||||
sectionLst->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
pReader->Seek(_end_pos);
|
||||
@ -350,11 +372,11 @@ namespace PPTX
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->WriteArray(_T("p:sldMasterIdLst"), sldMasterIdLst);
|
||||
pWriter->WriteArray(_T("p:notesMasterIdLst"), notesMasterIdLst);
|
||||
pWriter->WriteArray(_T("p:handoutMasterIdLst"), handoutMasterIdLst);
|
||||
pWriter->WriteArray(_T("p:embeddedFontLst"), embeddedFontLst);
|
||||
pWriter->WriteArray(_T("p:sldIdLst"), sldIdLst);
|
||||
pWriter->WriteArray(L"p:sldMasterIdLst", sldMasterIdLst);
|
||||
pWriter->WriteArray(L"p:notesMasterIdLst", notesMasterIdLst);
|
||||
pWriter->WriteArray(L"p:handoutMasterIdLst", handoutMasterIdLst);
|
||||
pWriter->WriteArray(L"p:embeddedFontLst", embeddedFontLst);
|
||||
pWriter->WriteArray(L"p:sldIdLst", sldIdLst);
|
||||
|
||||
pWriter->Write(sldSz);
|
||||
pWriter->Write(notesSz);
|
||||
@ -362,7 +384,17 @@ namespace PPTX
|
||||
pWriter->Write(kinsoku);
|
||||
pWriter->Write(defaultTextStyle);
|
||||
|
||||
pWriter->EndNode(_T("p:presentation"));
|
||||
std::vector<Logic::Ext> extLst;
|
||||
|
||||
if (sectionLst.IsInit())
|
||||
{
|
||||
Logic::Ext exp;
|
||||
exp.sectionLst = sectionLst;
|
||||
extLst.push_back(exp);
|
||||
}
|
||||
pWriter->WriteArray(L"p:extLst", extLst);
|
||||
|
||||
pWriter->EndNode(L"p:presentation");
|
||||
}
|
||||
|
||||
public:
|
||||
@ -380,7 +412,7 @@ namespace PPTX
|
||||
}
|
||||
|
||||
public:
|
||||
//Childs
|
||||
//Childs
|
||||
//custDataLst (Customer Data List)
|
||||
//property<std::list<Presentation::CustShow> > custShowLst (List of Custom Shows)
|
||||
nullable<Logic::TextListStyle> defaultTextStyle;
|
||||
@ -394,6 +426,7 @@ namespace PPTX
|
||||
std::vector<Logic::XmlId> sldIdLst;
|
||||
std::vector<Logic::XmlId> sldMasterIdLst;
|
||||
nullable<nsPresentation::SldSz> sldSz;
|
||||
nullable<nsPresentation::SectionLst> sectionLst;
|
||||
//smartTags (Smart Tags)
|
||||
|
||||
// Attrs
|
||||
|
||||
247
ASCOfficePPTXFile/PPTXFormat/Presentation/SectionLst.h
Normal file
247
ASCOfficePPTXFile/PPTXFormat/Presentation/SectionLst.h
Normal file
@ -0,0 +1,247 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2017
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../Logic/XmlId.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
class Section : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Section)
|
||||
|
||||
nullable_string id;
|
||||
nullable_string name;
|
||||
std::vector<Logic::XmlId> arSldIdLst;
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"id", id);
|
||||
node.ReadAttributeBase(L"name", name);
|
||||
|
||||
XmlUtils::CXmlNode oNodeSldIdLst;
|
||||
if (node.GetNode(L"p14:sldIdLst", oNodeSldIdLst))
|
||||
{
|
||||
oNodeSldIdLst.LoadArray(L"p14:sldId", arSldIdLst);
|
||||
}
|
||||
}
|
||||
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
return L"";
|
||||
}
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(L"p14:section");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute2(L"name", name);
|
||||
pWriter->WriteAttribute(L"id", id);
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->StartNode(L"p14:sldIdLst");
|
||||
pWriter->WriteArray2(arSldIdLst);
|
||||
pWriter->EndNode(L"p14:sldIdLst");
|
||||
|
||||
pWriter->EndNode(L"p14:section");
|
||||
}
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
pWriter->WriteString2(0, id);
|
||||
pWriter->WriteString2(1, name);
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
|
||||
pWriter->WriteRecordArray(0, 0, arSldIdLst);
|
||||
|
||||
}
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG _end_rec = pReader->GetPos() + pReader->GetLong() + 4;
|
||||
|
||||
pReader->Skip(1); // start attributes
|
||||
|
||||
while (true)
|
||||
{
|
||||
BYTE _at = pReader->GetUChar_TypeNode();
|
||||
if (_at == NSBinPptxRW::g_nodeAttributeEnd)
|
||||
break;
|
||||
|
||||
switch (_at)
|
||||
{
|
||||
case 0:
|
||||
id = pReader->GetString2();
|
||||
break;
|
||||
case 1:
|
||||
name = pReader->GetString2();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
while (pReader->GetPos() < _end_rec)
|
||||
{
|
||||
BYTE _rec = pReader->GetUChar();
|
||||
|
||||
switch (_rec)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
pReader->Skip(4); // len
|
||||
ULONG lCount = pReader->GetULong();
|
||||
|
||||
for (ULONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
pReader->Skip(1);
|
||||
|
||||
Logic::XmlId sldId(L"p14:sldId");
|
||||
|
||||
arSldIdLst.push_back(sldId);
|
||||
arSldIdLst.back().fromPPTY(pReader);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
virtual void FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
namespace nsPresentation
|
||||
{
|
||||
class SectionLst : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(SectionLst)
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlUtils::CXmlNodes oNodes;
|
||||
if (node.GetNodes(_T("*"), oNodes))
|
||||
{
|
||||
int nCount = oNodes.GetCount();
|
||||
for (int i = 0; i < nCount; ++i)
|
||||
{
|
||||
XmlUtils::CXmlNode oNode;
|
||||
oNodes.GetAt(i, oNode);
|
||||
|
||||
Logic::Section sect;
|
||||
|
||||
arSectionLst.push_back(sect);
|
||||
arSectionLst.back().fromXML(oNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
return L"";
|
||||
}
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG end = pReader->GetPos() + pReader->GetLong() + 4;
|
||||
|
||||
while (pReader->GetPos() < end)
|
||||
{
|
||||
BYTE _rec = pReader->GetUChar();
|
||||
|
||||
switch (_rec)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
pReader->Skip(4); // len
|
||||
ULONG lCount = pReader->GetULong();
|
||||
|
||||
for (ULONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
pReader->Skip(1);
|
||||
|
||||
Logic::Section sect;
|
||||
|
||||
arSectionLst.push_back(sect);
|
||||
arSectionLst.back().fromPPTY(pReader);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pReader->Seek(end);
|
||||
}
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteRecordArray(0, 0, arSectionLst);
|
||||
}
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(L"p14:sectionLst");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(L"xmlns:p14", PPTX::g_Namespaces.p14.m_strLink);
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->WriteArray2(arSectionLst);
|
||||
|
||||
pWriter->EndNode(L"p14:sectionLst");
|
||||
}
|
||||
|
||||
std::vector<Logic::Section> arSectionLst;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds(){};
|
||||
};
|
||||
}
|
||||
} // namespace PPTX
|
||||
@ -2987,6 +2987,10 @@
|
||||
RelativePath="..\.\PPTXFormat\Presentation.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\PPTXFormat\Presentation\SectionLst.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\.\PPTXFormat\Presentation\SldSz.h"
|
||||
>
|
||||
|
||||
@ -562,6 +562,7 @@
|
||||
_IOS,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
AVS_USE_CONVERT_PPTX_TOCUSTOM_VML,
|
||||
_XCODE,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@ -595,6 +596,7 @@
|
||||
_IOS,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
AVS_USE_CONVERT_PPTX_TOCUSTOM_VML,
|
||||
_XCODE,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
||||
@ -969,6 +969,8 @@ void OOXShapeReader::Parse( ReaderParameter oParam, RtfShapePtr& pOutput, PPTX::
|
||||
PPTX::Theme *theme = oParam.oDocx->GetTheme();
|
||||
if (!theme || fmt_index <0) return;
|
||||
|
||||
if (style_ref->Color.is<PPTX::Logic::SchemeClr>() == false) return;
|
||||
|
||||
PPTX::Logic::SchemeClr & schemeClr = style_ref->Color.as<PPTX::Logic::SchemeClr>();
|
||||
|
||||
std::wstring color = schemeClr.val.get();
|
||||
|
||||
@ -47,24 +47,21 @@
|
||||
|
||||
int _tmain(int argc, _TCHAR* argv[])
|
||||
{
|
||||
if (argc < 3) return 0;
|
||||
if (argc < 2) return 0;
|
||||
|
||||
std::wstring sXMLOptions = _T("<Options><TXTOptions><Encoding>1000</Encoding></TXTOptions></Options>");
|
||||
std::wstring sXMLOptions = _T("<Options><TXTOptions><Encoding>50</Encoding></TXTOptions></Options>");
|
||||
|
||||
std::wstring srcFileName = argv[1];
|
||||
std::wstring dstFileName = argv[2];
|
||||
std::wstring outputDir = NSDirectory::GetFolderPath(dstFileName);
|
||||
|
||||
std::wstring dstTempPath = NSDirectory::CreateDirectoryWithUniqueName(outputDir);
|
||||
|
||||
int n1 = srcFileName.rfind(L".");
|
||||
int n2 = dstFileName.rfind(L".");
|
||||
|
||||
std::wstring ext_1 = n1>=0 ? srcFileName.substr(n1+1, srcFileName.length() - n1): L""; //ext_1.MakeLower();
|
||||
std::wstring ext_2 = n2>=0 ? dstFileName.substr(n2+1, dstFileName.length() - n2): L""; //ext_2.MakeLower();
|
||||
|
||||
int n1 = srcFileName.rfind(_T('.'));
|
||||
std::wstring ext_1 = n1 >= 0 ? srcFileName.substr(n1+1, srcFileName.length() - n1) : _T("");
|
||||
|
||||
std::transform(ext_1.begin(), ext_1.end(), ext_1.begin(), ::tolower);
|
||||
|
||||
std::wstring dstFileName = argc > 2 ? argv[2] : srcFileName + L"_my." + (ext_1 == L"txt" ? L"docx" : L"txt");
|
||||
|
||||
std::wstring outputDir = NSDirectory::GetFolderPath(dstFileName);
|
||||
std::wstring dstTempPath = NSDirectory::CreateDirectoryWithUniqueName(outputDir);
|
||||
|
||||
CTxtXmlFile txtFile;
|
||||
|
||||
COfficeUtils oCOfficeUtils(NULL);
|
||||
@ -77,7 +74,7 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
if (S_OK != oCOfficeUtils.CompressFileOrDirectory(dstTempPath.c_str(), dstFileName.c_str(), -1))
|
||||
return S_FALSE;
|
||||
}
|
||||
if (ext_2 == L"txt")
|
||||
else
|
||||
{
|
||||
// docx->txt
|
||||
if (S_OK != oCOfficeUtils.ExtractToDirectory(srcFileName.c_str(), dstTempPath.c_str(), NULL, 0))
|
||||
|
||||
@ -85,7 +85,7 @@ namespace Docx2Txt
|
||||
OOX::CDocument *pDocument, OOX::CNumbering* pNumbering, OOX::CStyles *pStyles);
|
||||
|
||||
size_t NoteCount;
|
||||
std::list<std::wstring> Notes;
|
||||
std::map<std::wstring, std::list<std::wstring>> Notes;
|
||||
|
||||
static std::wstring IntToLowerLetter (int number);
|
||||
static std::wstring IntToUpperLetter (int number);
|
||||
@ -198,10 +198,20 @@ namespace Docx2Txt
|
||||
|
||||
if(NoteCount != 0)
|
||||
{
|
||||
m_outputFile.m_listContent.push_back(_T("---------------------------"));
|
||||
for(std::list<std::wstring>::const_iterator iter = Notes.begin(); iter != Notes.end(); iter++)
|
||||
m_outputFile.m_listContent.push_back(L"");
|
||||
m_outputFile.m_listContent.push_back(L"---------------------------");
|
||||
|
||||
for(std::map<std::wstring, std::list<std::wstring>>::const_iterator iter_map = Notes.begin(); iter_map != Notes.end(); iter_map++)
|
||||
{
|
||||
m_outputFile.m_listContent.push_back(*iter);
|
||||
bool bFirst = true;
|
||||
|
||||
for(std::list<std::wstring>::const_iterator iter = iter_map->second.begin(); iter != iter_map->second.end(); iter++)
|
||||
{
|
||||
if (bFirst) m_outputFile.m_listContent.push_back(iter_map->first + L" " + *iter);
|
||||
else m_outputFile.m_listContent.push_back(*iter);
|
||||
|
||||
bFirst = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -491,31 +501,52 @@ namespace Docx2Txt
|
||||
|
||||
if (run->m_arrItems[j]->getType() == OOX::et_w_footnoteReference || run->m_arrItems[j]->getType() == OOX::et_w_endnoteReference)
|
||||
{// todooo Ref ????
|
||||
|
||||
std::list<std::wstring> notes_content;
|
||||
|
||||
OOX::Logic::CFootnoteReference* footnote_ref = dynamic_cast<OOX::Logic::CFootnoteReference*>(run->m_arrItems[j]);
|
||||
OOX::Logic::CEndnoteReference* endnote_ref = dynamic_cast<OOX::Logic::CEndnoteReference*>(run->m_arrItems[j]);
|
||||
NoteCount++;
|
||||
std::wstring s = _T("[") + ToWString(NoteCount) + _T("]");
|
||||
Notes.push_back(s);
|
||||
if(run->m_arrItems[j]->getType() == OOX::et_w_footnoteReference)
|
||||
|
||||
if (footnote_ref)
|
||||
{
|
||||
smart_ptr<OOX::File> pFile = pDocument->Find(OOX::FileTypes::FootNote);
|
||||
if (pFile.IsInit())
|
||||
{
|
||||
OOX::CFootnotes *pFootnotes = (OOX::CFootnotes*)pFile.operator->();
|
||||
for (long r =0 ;r < pFootnotes->m_arrFootnote.size(); r++)
|
||||
convert(pFootnotes->m_arrFootnote[r]->m_arrItems, Notes, Event, false, pDocument, pNumbering, pStyles);
|
||||
for (size_t r = 0; r < pFootnotes->m_arrFootnote.size(); r++)
|
||||
{
|
||||
OOX::CFtnEdn* note = dynamic_cast<OOX::CFtnEdn*>(pFootnotes->m_arrFootnote[r]);
|
||||
|
||||
if (note && note->m_oId == footnote_ref->m_oId)
|
||||
{
|
||||
convert(pFootnotes->m_arrFootnote[r]->m_arrItems, notes_content, Event, false, pDocument, pNumbering, pStyles);
|
||||
}
|
||||
}
|
||||
}
|
||||
Notes.insert(std::make_pair(ToWString(NoteCount), notes_content));
|
||||
}
|
||||
else if(run->m_arrItems[j]->getType() == OOX::et_w_endnoteReference)
|
||||
if (endnote_ref)
|
||||
{
|
||||
smart_ptr<OOX::File> pFile = pDocument->Find(OOX::FileTypes::EndNote);
|
||||
if (pFile.IsInit())
|
||||
{
|
||||
OOX::CEndnotes *pEndnotes = (OOX::CEndnotes*)pFile.operator->();
|
||||
for (long r =0 ;r < pEndnotes->m_arrEndnote.size(); r++)
|
||||
convert(pEndnotes->m_arrEndnote[r]->m_arrItems, Notes, Event, false, pDocument, pNumbering, pStyles);
|
||||
|
||||
for (size_t r =0; r < pEndnotes->m_arrEndnote.size(); r++)
|
||||
{
|
||||
OOX::CFtnEdn* note = dynamic_cast<OOX::CFtnEdn*>(pEndnotes->m_arrEndnote[r]);
|
||||
|
||||
if (note && note->m_oId == endnote_ref->m_oId)
|
||||
{
|
||||
convert(pEndnotes->m_arrEndnote[r]->m_arrItems, notes_content, Event, false, pDocument, pNumbering, pStyles);
|
||||
}
|
||||
}
|
||||
}
|
||||
Notes.insert(std::make_pair(ToWString(NoteCount), notes_content));
|
||||
}
|
||||
|
||||
wstr.replace(wstr.find(_T("_")), 1 , ToWString(NoteCount));
|
||||
wstr += L"[" + ToWString(NoteCount) + L"]"; ;
|
||||
}
|
||||
line += wstr;
|
||||
}
|
||||
|
||||
@ -104,13 +104,6 @@ static int ParseTxtOptions(const std::wstring & sXmlOptions)
|
||||
|
||||
HRESULT CTxtXmlFile::txt_LoadFromFile(const std::wstring & sSrcFileName, const std::wstring & sDstPath, const std::wstring & sXMLOptions)
|
||||
{
|
||||
//проверка на структуру xml - если что не так выкинет быстро
|
||||
//HRESULT hr = xml_LoadFromFile(sSrcFileName, sDstPath, sXMLOptions);
|
||||
//if(hr == S_OK)
|
||||
// return S_OK;
|
||||
|
||||
//As Text
|
||||
|
||||
Writers::FileWriter *pDocxWriter = new Writers::FileWriter(sDstPath, L"", true, 1, false, NULL, L"");
|
||||
if (pDocxWriter == NULL) return S_FALSE;
|
||||
|
||||
|
||||
@ -51,7 +51,6 @@ public:
|
||||
|
||||
BaseObjectPtr clone();
|
||||
|
||||
|
||||
void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeBRAI;
|
||||
|
||||
@ -58,10 +58,17 @@ BaseObjectPtr DConn::clone()
|
||||
void DConn::readFields(CFRecord& record)
|
||||
{
|
||||
unsigned short flags1, reserved1;
|
||||
unsigned char flags2, reserved2;
|
||||
unsigned char flags2, reserved2, reserved3;
|
||||
|
||||
record >> frtHeaderOld >> dbt >> flags1 >> cParams >> reserved1 >> flags2 >> reserved2;
|
||||
|
||||
//DBT_ODBC 0x0001 ODBC-based source
|
||||
//DBT_DAO 0x0002 DAO-based source
|
||||
//DBT_WEB 0x0004 Web query
|
||||
//DBT_OLEDB 0x0005 OLE DB-based source
|
||||
//DBT_TXT 0x0006 Text-based source created via text query
|
||||
//DBT_ADO 0x0007 ADO record set
|
||||
|
||||
fSavePwd = GETBIT(flags1, 0);
|
||||
fTablesOnlyHtml = GETBIT(flags1, 1);
|
||||
fTableNames = GETBIT(flags1, 2);
|
||||
@ -84,17 +91,39 @@ void DConn::readFields(CFRecord& record)
|
||||
case 4: grbitDbt.reset(new ConnGrbitDbtWeb); break;
|
||||
case 5: grbitDbt.reset(new ConnGrbitDbtOledb); break;
|
||||
case 7: grbitDbt.reset(new ConnGrbitDbtAdo); break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (grbitDbt)
|
||||
{
|
||||
record >> *grbitDbt;
|
||||
}
|
||||
else
|
||||
{
|
||||
unsigned short unused;
|
||||
record >> unused;
|
||||
}
|
||||
|
||||
record >> bVerDbqueryEdit >> bVerDbqueryRefreshed >> bVerDbqueryRefreshableMin >> wRefreshInterval >> wHtmlFmt >> wHtmlFmt >> rcc >> credMethod;
|
||||
record >> bVerDbqueryEdit >> bVerDbqueryRefreshed >> bVerDbqueryRefreshableMin >> wRefreshInterval >> wHtmlFmt >> rcc >> credMethod >> reserved3;
|
||||
|
||||
record >> rgchSourceDataFile >> rgchSourceConnectionFile >> rgchConnectionName >> rgchConnectionDesc >> rgchSSOApplicationID >> tableNames;
|
||||
if (dbt == 5)
|
||||
{
|
||||
record >> rgchSourceDataFile;
|
||||
}
|
||||
|
||||
for ( unsigned short i = 0; i < cParams; i++)
|
||||
record >> rgchSourceConnectionFile >> rgchConnectionName >> rgchConnectionDesc;
|
||||
|
||||
if (dbt == 1 || dbt == 5)
|
||||
{
|
||||
record >> rgchSSOApplicationID;
|
||||
}
|
||||
|
||||
if (fTableNames)
|
||||
{
|
||||
record >> tableNames;
|
||||
}
|
||||
|
||||
for ( unsigned short i = 0; fStandAlone && i < cParams; i++)
|
||||
{
|
||||
DConnParameter val;
|
||||
params.push_back(val);
|
||||
@ -111,7 +140,22 @@ void DConn::readFields(CFRecord& record)
|
||||
if (connection)
|
||||
record >> *connection;
|
||||
|
||||
record >> rgbSQL >> rgbSQLSav >> rgbEditWebPage >> id;
|
||||
if (dbt == 1 || dbt == 5)
|
||||
{
|
||||
record >> rgbSQL;
|
||||
}
|
||||
|
||||
if (dbt == 1)
|
||||
{
|
||||
record >> rgbSQLSav;
|
||||
}
|
||||
|
||||
if (dbt == 4)
|
||||
{
|
||||
record >> rgbEditWebPage;
|
||||
}
|
||||
|
||||
record >> id;
|
||||
|
||||
int skip = record.getDataSize() - record.getRdPtr();
|
||||
|
||||
|
||||
@ -215,20 +215,30 @@ void XLUnicodeStringSegmented::load(CFRecord& record)
|
||||
record >> cchTotal;
|
||||
|
||||
if (cchTotal < 1) return;
|
||||
|
||||
if (cchTotal > record.getDataSize() - record.getRdPtr())
|
||||
{
|
||||
cchTotal = cchTotal >> 8;
|
||||
}
|
||||
|
||||
_UINT32 cchTotal_test = 0;
|
||||
while(true)
|
||||
{
|
||||
if (record.isEOF())
|
||||
break;
|
||||
|
||||
if (cchTotal_test >= cchTotal)
|
||||
break;
|
||||
|
||||
_UINT32 max_string_size = cchTotal - cchTotal_test;
|
||||
|
||||
XLUnicodeString string;
|
||||
record >> string;
|
||||
|
||||
cchTotal_test += string.value().length();
|
||||
|
||||
arStrings.push_back(string.value());
|
||||
|
||||
strTotal += string.value();
|
||||
cchTotal_test += arStrings.back().length();
|
||||
strTotal += arStrings.back();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -71,6 +71,10 @@ void PtgStr::loadFields(CFRecord& record)
|
||||
{
|
||||
string_ = string_.substr(1, string_.length() - 2);
|
||||
}
|
||||
else if (pos1 > 0)
|
||||
{
|
||||
boost::algorithm::replace_all(string_, L"\"", L"\"\"");
|
||||
}
|
||||
|
||||
string_ = L"\"" + string_ + L"\"";
|
||||
}
|
||||
|
||||
@ -67,6 +67,10 @@ void PtgSxName::assemble(AssemblerStack& ptg_stack, PtgQueue& extra_data, bool f
|
||||
if ((name) && (name->ifdb >= 0 && name->ifdb < global_info->arPivotCacheSxNames.size()))
|
||||
{
|
||||
_Name = global_info->arPivotCacheSxNames[name->ifdb];
|
||||
if (std::wstring::npos != _Name.find(L" "))
|
||||
{
|
||||
_Name = L"'" + _Name + L"'";
|
||||
}
|
||||
}
|
||||
else if (!global_info->arPivotSxNames[sxIndex].pair.empty())
|
||||
{
|
||||
|
||||
@ -81,8 +81,6 @@ const bool CHART::loadContent(BinProcessor& proc)
|
||||
elements_.pop_back();
|
||||
count--;
|
||||
}
|
||||
|
||||
// reader.SeekNextSubstream();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -97,7 +97,7 @@ int DBB::serialize(std::wostream & strm)
|
||||
|
||||
for (size_t i = 0; i < arPivotCacheFields.size(); i++)
|
||||
{
|
||||
if(arPivotCacheFields[i] == false)
|
||||
if(arPivotCacheFields[i] == false && indexOPER < m_arSXOPER.size())
|
||||
{
|
||||
m_arSXOPER[indexOPER++]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
|
||||
@ -206,8 +206,8 @@ int DBQUERY::serialize_connection(std::wostream & strm)
|
||||
{
|
||||
CP_XML_NODE(L"connection")
|
||||
{
|
||||
CP_XML_ATTR(L"id", 1); //connectionId in connections(root)
|
||||
CP_XML_ATTR(L"name", L"Connection");
|
||||
CP_XML_ATTR(L"id", connectionId);
|
||||
CP_XML_ATTR(L"name", L"Connection" + std::to_wstring(connectionId));
|
||||
|
||||
CP_XML_ATTR(L"type", queryOrParam->query.dbt);
|
||||
//switch(queryOrParam->query.dbt)
|
||||
@ -222,22 +222,24 @@ int DBQUERY::serialize_connection(std::wostream & strm)
|
||||
//}
|
||||
|
||||
if (queryOrParam->query.fSavePwd) CP_XML_ATTR(L"savePassword", 1);
|
||||
if (queryOrParam->query.fSavePwd) CP_XML_ATTR(L"refreshedVersion", 1);
|
||||
CP_XML_ATTR(L"refreshedVersion", 1);
|
||||
|
||||
int index = 0;
|
||||
CP_XML_NODE(L"dbPr")
|
||||
{
|
||||
if (index < m_arSXString.size())
|
||||
std::wstring command, connection;
|
||||
for (index = 0; index < queryOrParam->query.cstQuery; index++)
|
||||
{
|
||||
CP_XML_ATTR(L"command", m_arSXString[index]);
|
||||
command += m_arSXString[index];
|
||||
}
|
||||
index++;
|
||||
|
||||
if (index < m_arSXString.size())
|
||||
|
||||
for (; index < queryOrParam->query.cstQuery + queryOrParam->query.cstOdbcConn; index++)
|
||||
{
|
||||
CP_XML_ATTR(L"connection", m_arSXString[index]);
|
||||
connection += m_arSXString[index];
|
||||
}
|
||||
index++;
|
||||
|
||||
CP_XML_ATTR(L"connection", connection);
|
||||
CP_XML_ATTR(L"command", command);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -175,7 +175,7 @@ const bool FDB::loadContent(BinProcessor& proc)
|
||||
return true;
|
||||
}
|
||||
|
||||
int FDB::serialize(std::wostream & strm)
|
||||
int FDB::serialize(std::wostream & strm, bool bSql)
|
||||
{
|
||||
SXFDB* fdb = dynamic_cast<SXFDB*>(m_SXFDB.get());
|
||||
SXFDBType* fdb_type = dynamic_cast<SXFDBType*>(m_SXFDBType.get());
|
||||
@ -189,14 +189,21 @@ int FDB::serialize(std::wostream & strm)
|
||||
CP_XML_NODE(L"cacheField")
|
||||
{
|
||||
CP_XML_ATTR(L"name", fdb->stFieldName.value());
|
||||
|
||||
CP_XML_ATTR(L"numFmtId", fdb_type->wTypeSql);
|
||||
//CP_XML_ATTR(L"sqlType", fdb_type->wTypeSql); //in db
|
||||
|
||||
if (bSql)
|
||||
{
|
||||
CP_XML_ATTR(L"numFmtId", 0);
|
||||
if (fdb_type->wTypeSql > 0)
|
||||
CP_XML_ATTR(L"sqlType", fdb_type->wTypeSql);
|
||||
}
|
||||
else
|
||||
{
|
||||
CP_XML_ATTR(L"numFmtId", fdb_type->wTypeSql);
|
||||
}
|
||||
if (m_arSRCSXOPER.empty() && m_arGRPSXOPER.empty() == false)
|
||||
{
|
||||
CP_XML_ATTR(L"databaseField", 0);
|
||||
}
|
||||
|
||||
switch(fdb_type->wTypeSql)//format code
|
||||
{
|
||||
case 0x0000:
|
||||
|
||||
@ -47,7 +47,7 @@ public:
|
||||
|
||||
virtual const bool loadContent(BinProcessor& proc);
|
||||
|
||||
int serialize(std::wostream & strm);
|
||||
int serialize(std::wostream & strm, bool bSql);
|
||||
|
||||
static const ElementType type = typeFDB;
|
||||
|
||||
|
||||
@ -34,6 +34,7 @@
|
||||
#include "PIVOTCACHE.h"
|
||||
#include "SXSRC.h"
|
||||
#include "SXADDLCACHE.h"
|
||||
#include "FDB.h"
|
||||
|
||||
#include "../Biff_records/SXStreamID.h"
|
||||
#include "../Biff_records/SXVS.h"
|
||||
@ -110,6 +111,8 @@ int PIVOTCACHEDEFINITION::serialize_definitions(std::wostream & strm)
|
||||
|
||||
if (!db || !db_ex)return 0;
|
||||
|
||||
bool bSql = false;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
{
|
||||
CP_XML_NODE(L"pivotCacheDefinition")
|
||||
@ -124,13 +127,16 @@ int PIVOTCACHEDEFINITION::serialize_definitions(std::wostream & strm)
|
||||
CP_XML_ATTR(L"enableRefresh", 1);
|
||||
CP_XML_ATTR(L"refreshedBy", db->rgb.value());
|
||||
CP_XML_ATTR(L"refreshedDate", db_ex->numDate.data.value);
|
||||
CP_XML_ATTR(L"recordCount", db->crdbUsed);
|
||||
CP_XML_ATTR(L"recordCount", db->crdbdb);
|
||||
//createdVersion="1"
|
||||
//refreshedVersion="2"
|
||||
//upgradeOnRefresh="1">
|
||||
SXSRC* src = dynamic_cast<SXSRC*>(m_SXSRC.get());
|
||||
if (src)
|
||||
{
|
||||
bSql = src->bSql;
|
||||
src->serialize(CP_XML_STREAM());
|
||||
}
|
||||
|
||||
if (pivot_cache->m_arFDB.empty() == false)
|
||||
{
|
||||
@ -140,7 +146,10 @@ int PIVOTCACHEDEFINITION::serialize_definitions(std::wostream & strm)
|
||||
|
||||
for (size_t i = 0; i < pivot_cache->m_arFDB.size(); i++)
|
||||
{
|
||||
pivot_cache->m_arFDB[i]->serialize(CP_XML_STREAM());
|
||||
FDB *field = dynamic_cast<FDB *>(pivot_cache->m_arFDB[i].get());
|
||||
if (!field) continue;
|
||||
|
||||
field->serialize(CP_XML_STREAM(), bSql);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -68,6 +68,14 @@ const bool PIVOTVIEW::loadContent(BinProcessor& proc)
|
||||
}
|
||||
m_PIVOTCORE = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
PIVOTCORE *core = dynamic_cast<PIVOTCORE*>(m_PIVOTCORE.get());
|
||||
|
||||
SxView* view = dynamic_cast<SxView*>(core->m_SxView.get());
|
||||
if (view)
|
||||
{
|
||||
name = view->stTable.value();
|
||||
}
|
||||
|
||||
if (proc.optional<PIVOTFRT>())
|
||||
{
|
||||
@ -185,12 +193,15 @@ int PIVOTVIEW::serialize(std::wostream & strm)
|
||||
core->m_PIVOTPI->serialize(CP_XML_STREAM());
|
||||
}
|
||||
}
|
||||
CP_XML_NODE(L"dataFields")
|
||||
if (core->m_arSXDI.empty() == false)
|
||||
{
|
||||
CP_XML_ATTR(L"count", view->cDimData);
|
||||
for (size_t i = 0; i < core->m_arSXDI.size(); i++)
|
||||
CP_XML_NODE(L"dataFields")
|
||||
{
|
||||
core->m_arSXDI[i]->serialize(CP_XML_STREAM());
|
||||
CP_XML_ATTR(L"count", view->cDimData);
|
||||
for (size_t i = 0; i < core->m_arSXDI.size(); i++)
|
||||
{
|
||||
core->m_arSXDI[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
}
|
||||
}
|
||||
//CP_XML_NODE(L"pivotTableStyleInfo")
|
||||
|
||||
@ -54,7 +54,8 @@ public:
|
||||
BaseObjectPtr m_PIVOTCORE;
|
||||
BaseObjectPtr m_PIVOTFRT;
|
||||
//----------------------------------
|
||||
int indexCache;
|
||||
int indexCache;
|
||||
std::wstring name;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,38 +31,36 @@
|
||||
*/
|
||||
|
||||
#include "SERIESFORMAT.h"
|
||||
#include <Logic/Biff_records/Series.h>
|
||||
#include <Logic/Biff_records/Begin.h>
|
||||
#include <Logic/Biff_records/SerToCrt.h>
|
||||
#include <Logic/Biff_records/SerParent.h>
|
||||
#include <Logic/Biff_records/SerAuxTrend.h>
|
||||
#include <Logic/Biff_records/SerAuxErrBar.h>
|
||||
#include <Logic/Biff_records/LegendException.h>
|
||||
#include <Logic/Biff_records/End.h>
|
||||
#include <Logic/Biff_records/SerAuxTrend.h>
|
||||
#include <Logic/Biff_records/SerAuxErrBar.h>
|
||||
#include <Logic/Biff_records/AttachedLabel.h>
|
||||
#include "AI.h"
|
||||
#include "SS.h"
|
||||
#include "ATTACHEDLABEL.h"
|
||||
#include "TEXTPROPS.h"
|
||||
#include "CHARTFOMATS.h"
|
||||
|
||||
#include <Logic/Biff_unions/AI.h>
|
||||
#include <Logic/Biff_unions/SS.h>
|
||||
#include <Logic/Biff_unions/ATTACHEDLABEL.h>
|
||||
#include <Logic/Biff_unions/TEXTPROPS.h>
|
||||
#include <Logic/Biff_unions/CHARTFOMATS.h>
|
||||
#include "../Biff_records/Series.h"
|
||||
#include "../Biff_records/Begin.h"
|
||||
#include "../Biff_records/SerToCrt.h"
|
||||
#include "../Biff_records/SerParent.h"
|
||||
#include "../Biff_records/SerAuxTrend.h"
|
||||
#include "../Biff_records/SerAuxErrBar.h"
|
||||
#include "../Biff_records/LegendException.h"
|
||||
#include "../Biff_records/End.h"
|
||||
#include "../Biff_records/SerAuxTrend.h"
|
||||
#include "../Biff_records/SerAuxErrBar.h"
|
||||
#include "../Biff_records/AttachedLabel.h"
|
||||
#include "../Biff_records/BRAI.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
SERIESFORMAT::SERIESFORMAT()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
SERIESFORMAT::~SERIESFORMAT()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// (SerToCrt / (SerParent (SerAuxTrend / SerAuxErrBar)))
|
||||
class Parenthesis_SERIESFORMAT_1: public ABNFParenthesis
|
||||
{
|
||||
@ -353,5 +351,6 @@ int SERIESFORMAT::serialize_parent(std::wostream & _stream, CHARTFORMATS* chart_
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
|
||||
@ -75,7 +75,6 @@ public:
|
||||
//-----------------------------------------------------------------------
|
||||
|
||||
BaseObjectPtr m_SERIESFORMAT_ext;
|
||||
|
||||
};
|
||||
} // namespace XLS
|
||||
|
||||
|
||||
@ -38,6 +38,8 @@
|
||||
#include "../Biff_records/SXString.h"
|
||||
#include "../Biff_records/SXDtr.h"
|
||||
|
||||
#include <boost/lexical_cast.hpp>
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
@ -82,7 +84,10 @@ const bool SXOPER::loadContent(BinProcessor& proc)
|
||||
}
|
||||
bNumber = !bInteger;
|
||||
node = L"n";
|
||||
value = std::to_wstring(num->num.data.value);
|
||||
if (bInteger)
|
||||
value = std::to_wstring((int)num->num.data.value);
|
||||
else
|
||||
value = boost::lexical_cast<std::wstring>(num->num.data.value);
|
||||
}
|
||||
else if(proc.optional<SxBool>())
|
||||
{
|
||||
|
||||
@ -38,9 +38,9 @@
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
|
||||
SXSRC::SXSRC()
|
||||
{
|
||||
bSql = false;
|
||||
}
|
||||
|
||||
|
||||
@ -57,6 +57,7 @@ BaseObjectPtr SXSRC::clone()
|
||||
// SXSRC = DREF / SXTBL / DBQUERY
|
||||
const bool SXSRC::loadContent(BinProcessor& proc)
|
||||
{
|
||||
bSql = false;
|
||||
if(!proc.optional<DREF>())
|
||||
{
|
||||
if(!proc.optional<SXTBL>())
|
||||
@ -65,6 +66,7 @@ const bool SXSRC::loadContent(BinProcessor& proc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
bSql = true;
|
||||
}
|
||||
}
|
||||
m_source = elements_.back();
|
||||
|
||||
@ -52,6 +52,7 @@ public:
|
||||
static const ElementType type = typeSXSRC;
|
||||
|
||||
BaseObjectPtr m_source;
|
||||
bool bSql;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -32,64 +32,65 @@
|
||||
|
||||
#include "ChartSheetSubstream.h"
|
||||
|
||||
#include <Logic/Biff_records/WriteProtect.h>
|
||||
#include <Logic/Biff_records/SheetExt.h>
|
||||
#include <Logic/Biff_records/WebPub.h>
|
||||
#include <Logic/Biff_records/HFPicture.h>
|
||||
#include <Logic/Biff_records/PrintSize.h>
|
||||
#include <Logic/Biff_records/HeaderFooter.h>
|
||||
#include <Logic/Biff_records/Fbi.h>
|
||||
#include <Logic/Biff_records/Fbi2.h>
|
||||
#include <Logic/Biff_records/ClrtClient.h>
|
||||
#include <Logic/Biff_records/Palette.h>
|
||||
#include <Logic/Biff_records/SXViewLink.h>
|
||||
#include <Logic/Biff_records/PivotChartBits.h>
|
||||
#include <Logic/Biff_records/SBaseRef.h>
|
||||
#include <Logic/Biff_records/MsoDrawingGroup.h>
|
||||
#include <Logic/Biff_records/Units.h>
|
||||
#include <Logic/Biff_records/CodeName.h>
|
||||
#include <Logic/Biff_records/EOF.h>
|
||||
#include <Logic/Biff_records/BOF.h>
|
||||
#include <Logic/Biff_records/AreaFormat.h>
|
||||
#include <Logic/Biff_records/SerToCrt.h>
|
||||
#include <Logic/Biff_records/AxisParent.h>
|
||||
#include <Logic/Biff_records/Series.h>
|
||||
#include <Logic/Biff_records/BRAI.h>
|
||||
#include <Logic/Biff_records/SIIndex.h>
|
||||
#include <Logic/Biff_records/DataFormat.h>
|
||||
#include <Logic/Biff_records/Text.h>
|
||||
#include <Logic/Biff_records/Pos.h>
|
||||
#include <Logic/Biff_records/Pie.h>
|
||||
#include <Logic/Biff_records/ShtProps.h>
|
||||
#include <Logic/Biff_records/Chart3d.h>
|
||||
#include <Logic/Biff_records/ChartFormat.h>
|
||||
#include <Logic/Biff_records/Legend.h>
|
||||
#include <Logic/Biff_records/AttachedLabel.h>
|
||||
#include <Logic/Biff_records/DataLabExtContents.h>
|
||||
#include <Logic/Biff_records/CrtLine.h>
|
||||
#include <Logic/Biff_records/Dat.h>
|
||||
#include <Logic/Biff_records/Chart.h>
|
||||
#include <Logic/Biff_records/ExternSheet.h>
|
||||
#include "Biff_records/WriteProtect.h"
|
||||
#include "Biff_records/SheetExt.h"
|
||||
#include "Biff_records/WebPub.h"
|
||||
#include "Biff_records/HFPicture.h"
|
||||
#include "Biff_records/PrintSize.h"
|
||||
#include "Biff_records/HeaderFooter.h"
|
||||
#include "Biff_records/Fbi.h"
|
||||
#include "Biff_records/Fbi2.h"
|
||||
#include "Biff_records/ClrtClient.h"
|
||||
#include "Biff_records/Palette.h"
|
||||
#include "Biff_records/SXViewLink.h"
|
||||
#include "Biff_records/PivotChartBits.h"
|
||||
#include "Biff_records/SBaseRef.h"
|
||||
#include "Biff_records/MsoDrawingGroup.h"
|
||||
#include "Biff_records/Units.h"
|
||||
#include "Biff_records/CodeName.h"
|
||||
#include "Biff_records/EOF.h"
|
||||
#include "Biff_records/BOF.h"
|
||||
#include "Biff_records/AreaFormat.h"
|
||||
#include "Biff_records/SerToCrt.h"
|
||||
#include "Biff_records/AxisParent.h"
|
||||
#include "Biff_records/Series.h"
|
||||
#include "Biff_records/BRAI.h"
|
||||
#include "Biff_records/SIIndex.h"
|
||||
#include "Biff_records/DataFormat.h"
|
||||
#include "Biff_records/Text.h"
|
||||
#include "Biff_records/Pos.h"
|
||||
#include "Biff_records/Pie.h"
|
||||
#include "Biff_records/ShtProps.h"
|
||||
#include "Biff_records/Chart3d.h"
|
||||
#include "Biff_records/ChartFormat.h"
|
||||
#include "Biff_records/Legend.h"
|
||||
#include "Biff_records/AttachedLabel.h"
|
||||
#include "Biff_records/DataLabExtContents.h"
|
||||
#include "Biff_records/CrtLine.h"
|
||||
#include "Biff_records/Dat.h"
|
||||
#include "Biff_records/Chart.h"
|
||||
#include "Biff_records/ExternSheet.h"
|
||||
|
||||
#include <Logic/Biff_unions/PAGESETUP.h>
|
||||
#include <Logic/Biff_unions/BACKGROUND.h>
|
||||
#include <Logic/Biff_unions/PROTECTION_COMMON.h>
|
||||
#include <Logic/Biff_unions/OBJECTS.h>
|
||||
#include <Logic/Biff_unions/CHARTFOMATS.h>
|
||||
#include <Logic/Biff_unions/SERIESDATA.h>
|
||||
#include <Logic/Biff_unions/WINDOW.h>
|
||||
#include <Logic/Biff_unions/CUSTOMVIEW.h>
|
||||
#include <Logic/Biff_unions/CRTMLFRT.h>
|
||||
#include <Logic/Biff_unions/FRAME.h>
|
||||
#include <Logic/Biff_unions/ATTACHEDLABEL.h>
|
||||
#include <Logic/Biff_unions/SERIESFORMAT.h>
|
||||
#include <Logic/Biff_unions/CRT.h>
|
||||
#include <Logic/Biff_unions/AXISPARENT.h>
|
||||
#include <Logic/Biff_unions/AXES.h>
|
||||
#include <Logic/Biff_unions/SS.h>
|
||||
#include <Logic/Biff_unions/AI.h>
|
||||
#include <Logic/Biff_unions/LD.h>
|
||||
#include <Logic/Biff_unions/DAT.h>
|
||||
#include "Biff_unions/PAGESETUP.h"
|
||||
#include "Biff_unions/BACKGROUND.h"
|
||||
#include "Biff_unions/PROTECTION_COMMON.h"
|
||||
#include "Biff_unions/OBJECTS.h"
|
||||
#include "Biff_unions/CHARTFOMATS.h"
|
||||
#include "Biff_unions/SERIESDATA.h"
|
||||
#include "Biff_unions/WINDOW.h"
|
||||
#include "Biff_unions/CUSTOMVIEW.h"
|
||||
#include "Biff_unions/CRTMLFRT.h"
|
||||
#include "Biff_unions/FRAME.h"
|
||||
#include "Biff_unions/ATTACHEDLABEL.h"
|
||||
#include "Biff_unions/SERIESFORMAT.h"
|
||||
#include "Biff_unions/CRT.h"
|
||||
#include "Biff_unions/AXISPARENT.h"
|
||||
#include "Biff_unions/AXES.h"
|
||||
#include "Biff_unions/SS.h"
|
||||
#include "Biff_unions/AI.h"
|
||||
#include "Biff_unions/LD.h"
|
||||
#include "Biff_unions/DAT.h"
|
||||
#include "Biff_unions/PIVOTVIEW.h"
|
||||
|
||||
#include "../../XlsXlsxConverter/XlsConverter.h"
|
||||
#include "../../XlsXlsxConverter/xlsx_conversion_context.h"
|
||||
@ -377,15 +378,14 @@ void ChartSheetSubstream::recalc(SERIESDATA* data)
|
||||
{
|
||||
}
|
||||
|
||||
int ChartSheetSubstream::serialize (std::wostream & _stream)
|
||||
int ChartSheetSubstream::serialize(std::wostream & _stream)
|
||||
{
|
||||
AreaFormat *chart_area_format = NULL;
|
||||
CHARTFORMATS *chart_formats = dynamic_cast<CHARTFORMATS*>(m_CHARTFORMATS.get());
|
||||
if (!chart_formats) return 0;
|
||||
|
||||
AreaFormat *chart_area_format = NULL;
|
||||
FRAME *chart_frame = dynamic_cast<FRAME*>(chart_formats->m_FRAME.get());
|
||||
if (chart_frame)
|
||||
chart_area_format = dynamic_cast<AreaFormat*>(chart_frame->m_AreaFormat.get());
|
||||
if (chart_frame) chart_area_format = dynamic_cast<AreaFormat*>(chart_frame->m_AreaFormat.get());
|
||||
|
||||
ShtProps *sht_props = dynamic_cast<ShtProps*>(chart_formats->m_ShtProps.get());
|
||||
Chart *chart_rect = dynamic_cast<Chart*>(chart_formats->m_ChartRect.get());
|
||||
@ -453,6 +453,40 @@ int ChartSheetSubstream::serialize (std::wostream & _stream)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (m_SXViewLink)
|
||||
{
|
||||
CP_XML_NODE(L"c:extLst")
|
||||
{
|
||||
CP_XML_NODE(L"c:ext")
|
||||
{
|
||||
CP_XML_ATTR(L"uri", L"{781A3756-C4B2-4CAC-9D66-4F8BD8637D16}");
|
||||
CP_XML_ATTR(L"xmlns:c14", L"http://schemas.microsoft.com/office/drawing/2007/8/2/chart");
|
||||
CP_XML_NODE(L"c14:pivotOptions")
|
||||
{
|
||||
CP_XML_NODE(L"c14:dropZoneFilter")
|
||||
{
|
||||
CP_XML_ATTR(L"val", 1);
|
||||
}
|
||||
CP_XML_NODE(L"c14:dropZoneCategories")
|
||||
{
|
||||
CP_XML_ATTR(L"val", 1);
|
||||
}
|
||||
CP_XML_NODE(L"c14:dropZoneData")
|
||||
{
|
||||
CP_XML_ATTR(L"val", 1);
|
||||
}
|
||||
CP_XML_NODE(L"c14:dropZoneSeries")
|
||||
{
|
||||
CP_XML_ATTR(L"val", 1);
|
||||
}
|
||||
CP_XML_NODE(L"c14:dropZonesVisible")
|
||||
{
|
||||
CP_XML_ATTR(L"val", 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (chart_rect)
|
||||
@ -733,7 +767,7 @@ int ChartSheetSubstream::serialize_plot_area (std::wostream & _stream)
|
||||
}
|
||||
|
||||
format->serialize(CP_XML_STREAM());
|
||||
for (int i = 0 ; i < it->second.size(); i++)
|
||||
for (size_t i = 0 ; i < it->second.size(); i++)
|
||||
{
|
||||
SERIESFORMAT * series = dynamic_cast<SERIESFORMAT *>(chart_formats->m_arSERIESFORMAT[it->second[i]].get());
|
||||
if (series == NULL) continue;
|
||||
@ -766,6 +800,11 @@ int ChartSheetSubstream::serialize_plot_area (std::wostream & _stream)
|
||||
|
||||
serialize_dPt(CP_XML_STREAM(), it->second[i], crt, (std::max)(ser->cValx, ser->cValy));//+bubbles
|
||||
|
||||
/* if (arPivotData.empty() == false)
|
||||
{
|
||||
series->set_ref(arPivotData, i * 2);
|
||||
}*/
|
||||
|
||||
if (crt->m_iChartType == CHART_TYPE_Scatter ||
|
||||
crt->m_iChartType == CHART_TYPE_Bubble)
|
||||
{
|
||||
@ -777,6 +816,7 @@ int ChartSheetSubstream::serialize_plot_area (std::wostream & _stream)
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
serialize_ser(L"c:cat", CP_XML_STREAM(), series_id, series->m_arAI[2], ser->sdtX, ser->cValx);
|
||||
serialize_ser(L"c:val", CP_XML_STREAM(), series_id, series->m_arAI[1], ser->sdtY, ser->cValy);
|
||||
}
|
||||
|
||||
@ -77,10 +77,10 @@ public:
|
||||
std::vector<BaseObjectPtr> m_arCUSTOMVIEW;
|
||||
BaseObjectPtr m_Units;
|
||||
BaseObjectPtr m_ExternSheet;
|
||||
|
||||
BaseObjectPtr m_SXViewLink;
|
||||
BaseObjectPtr m_PivotChartBits;
|
||||
BaseObjectPtr m_SBaseRef;
|
||||
|
||||
private:
|
||||
|
||||
void recalc(CHARTFORMATS* charts);
|
||||
@ -88,10 +88,7 @@ private:
|
||||
|
||||
std::map<int, std::vector<int>> m_mapTypeChart;//тут нужен несортированый .. пока оставим этот
|
||||
|
||||
|
||||
GlobalWorkbookInfoPtr pGlobalWorkbookInfo;
|
||||
|
||||
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -31,48 +31,49 @@
|
||||
*/
|
||||
|
||||
#include "WorksheetSubstream.h"
|
||||
#include <Logic/Biff_records/Uncalced.h>
|
||||
#include <Logic/Biff_records/Index.h>
|
||||
#include <Logic/Biff_unions/GLOBALS.h>
|
||||
#include <Logic/Biff_unions/PAGESETUP.h>
|
||||
#include <Logic/Biff_records/Dimensions.h>
|
||||
#include <Logic/Biff_records/HFPicture.h>
|
||||
#include <Logic/Biff_records/Note.h>
|
||||
#include <Logic/Biff_records/DxGCol.h>
|
||||
#include <Logic/Biff_records/MergeCells.h>
|
||||
#include <Logic/Biff_records/LRng.h>
|
||||
#include <Logic/Biff_records/CodeName.h>
|
||||
#include <Logic/Biff_records/WebPub.h>
|
||||
#include <Logic/Biff_records/Window1.h>
|
||||
#include <Logic/Biff_records/CellWatch.h>
|
||||
#include <Logic/Biff_records/SheetExt.h>
|
||||
#include <Logic/Biff_records/EOF.h>
|
||||
#include <Logic/Biff_records/BOF.h>
|
||||
#include <Logic/Biff_records/DefaultRowHeight.h>
|
||||
#include <Logic/Biff_records/Label.h>
|
||||
|
||||
#include <Logic/Biff_unions/BACKGROUND.h>
|
||||
#include <Logic/Biff_unions/BIGNAME.h>
|
||||
#include <Logic/Biff_unions/PROTECTION_COMMON.h>
|
||||
#include <Logic/Biff_unions/COLUMNS.h>
|
||||
#include <Logic/Biff_unions/SCENARIOS.h>
|
||||
#include <Logic/Biff_unions/SORTANDFILTER.h>
|
||||
#include <Logic/Biff_unions/CELLTABLE.h>
|
||||
#include <Logic/Biff_unions/OBJECTS.h>
|
||||
#include <Logic/Biff_unions/PIVOTVIEW.h>
|
||||
#include <Logic/Biff_unions/DCON.h>
|
||||
#include <Logic/Biff_unions/WINDOW.h>
|
||||
#include <Logic/Biff_unions/CUSTOMVIEW.h>
|
||||
#include <Logic/Biff_unions/SORT.h>
|
||||
#include <Logic/Biff_unions/QUERYTABLE.h>
|
||||
#include <Logic/Biff_unions/PHONETICINFO.h>
|
||||
#include <Logic/Biff_unions/CONDFMTS.h>
|
||||
#include <Logic/Biff_unions/HLINK.h>
|
||||
#include <Logic/Biff_unions/DVAL.h>
|
||||
#include <Logic/Biff_unions/FEAT.h>
|
||||
#include <Logic/Biff_unions/FEAT11.h>
|
||||
#include <Logic/Biff_unions/RECORD12.h>
|
||||
#include <Logic/Biff_unions/SHFMLA_SET.h>
|
||||
#include "Biff_records/Uncalced.h"
|
||||
#include "Biff_records/Index.h"
|
||||
#include "Biff_unions/GLOBALS.h"
|
||||
#include "Biff_unions/PAGESETUP.h"
|
||||
#include "Biff_records/Dimensions.h"
|
||||
#include "Biff_records/HFPicture.h"
|
||||
#include "Biff_records/Note.h"
|
||||
#include "Biff_records/DxGCol.h"
|
||||
#include "Biff_records/MergeCells.h"
|
||||
#include "Biff_records/LRng.h"
|
||||
#include "Biff_records/CodeName.h"
|
||||
#include "Biff_records/WebPub.h"
|
||||
#include "Biff_records/Window1.h"
|
||||
#include "Biff_records/CellWatch.h"
|
||||
#include "Biff_records/SheetExt.h"
|
||||
#include "Biff_records/EOF.h"
|
||||
#include "Biff_records/BOF.h"
|
||||
#include "Biff_records/DefaultRowHeight.h"
|
||||
#include "Biff_records/Label.h"
|
||||
|
||||
#include "Biff_unions/BACKGROUND.h"
|
||||
#include "Biff_unions/BIGNAME.h"
|
||||
#include "Biff_unions/PROTECTION_COMMON.h"
|
||||
#include "Biff_unions/COLUMNS.h"
|
||||
#include "Biff_unions/SCENARIOS.h"
|
||||
#include "Biff_unions/SORTANDFILTER.h"
|
||||
#include "Biff_unions/CELLTABLE.h"
|
||||
#include "Biff_unions/OBJECTS.h"
|
||||
#include "Biff_unions/PIVOTVIEW.h"
|
||||
#include "Biff_unions/DCON.h"
|
||||
#include "Biff_unions/WINDOW.h"
|
||||
#include "Biff_unions/CUSTOMVIEW.h"
|
||||
#include "Biff_unions/SORT.h"
|
||||
#include "Biff_unions/QUERYTABLE.h"
|
||||
#include "Biff_unions/PHONETICINFO.h"
|
||||
#include "Biff_unions/CONDFMTS.h"
|
||||
#include "Biff_unions/HLINK.h"
|
||||
#include "Biff_unions/DVAL.h"
|
||||
#include "Biff_unions/FEAT.h"
|
||||
#include "Biff_unions/FEAT11.h"
|
||||
#include "Biff_unions/RECORD12.h"
|
||||
#include "Biff_unions/SHFMLA_SET.h"
|
||||
|
||||
#include "Biff_structures/ODRAW/OfficeArtDgContainer.h"
|
||||
|
||||
@ -292,6 +293,9 @@ const bool WorksheetSubstream::loadContent(BinProcessor& proc)
|
||||
m_arPIVOTVIEW.insert(m_arPIVOTVIEW.begin(), elements_.back());
|
||||
elements_.pop_back();
|
||||
count--;
|
||||
|
||||
PIVOTVIEW *view = dynamic_cast<PIVOTVIEW*>(m_arPIVOTVIEW.back().get());
|
||||
mapPivotViews.insert(std::make_pair(view->name, m_arPIVOTVIEW.back()));
|
||||
}
|
||||
}break;
|
||||
case rt_DCon:
|
||||
|
||||
@ -90,6 +90,9 @@ public:
|
||||
|
||||
std::vector<BiffStructurePtr> m_arHFPictureDrawing;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
std::map<std::wstring, BaseObjectPtr> mapPivotViews;
|
||||
|
||||
private:
|
||||
|
||||
void LoadHFPicture(); //todoooo - обобщить
|
||||
|
||||
@ -357,7 +357,11 @@ void XlsConverter::convert(XLS::WorkbookStreamObject* woorkbook)
|
||||
xls_global_info->current_sheet = -1;
|
||||
xlsx_context->start_table(xls_global_info->sheets_names.size() > i ? xls_global_info->sheets_names[i] : L"ChartSheet_" + std::to_wstring(count_chart_sheets));
|
||||
|
||||
convert_chart_sheet(dynamic_cast<XLS::ChartSheetSubstream*>(woorkbook->m_arWorksheetSubstream[i].get()));
|
||||
xlsx_context->set_chart_view();
|
||||
|
||||
XLS::ChartSheetSubstream* chart = dynamic_cast<XLS::ChartSheetSubstream*>(woorkbook->m_arWorksheetSubstream[i].get());
|
||||
|
||||
convert_chart_sheet(chart);
|
||||
}
|
||||
|
||||
xlsx_context->end_table();
|
||||
@ -369,7 +373,7 @@ void XlsConverter::convert(XLS::WorkbookStreamObject* woorkbook)
|
||||
}
|
||||
}
|
||||
|
||||
void XlsConverter::convert(XLS::WorksheetSubstream* sheet)
|
||||
void XlsConverter::convert (XLS::WorksheetSubstream* sheet)
|
||||
{
|
||||
if (sheet == NULL) return;
|
||||
|
||||
|
||||
@ -104,6 +104,13 @@ bool xlsx_conversion_context::start_table(const std::wstring & name)
|
||||
return true;
|
||||
}
|
||||
|
||||
void xlsx_conversion_context::set_chart_view()
|
||||
{
|
||||
if (sheets_.empty()) return;
|
||||
|
||||
get_table_context().set_chart_view();
|
||||
}
|
||||
|
||||
void xlsx_conversion_context::set_state(const std::wstring & state)
|
||||
{
|
||||
if (state.empty()) return;
|
||||
|
||||
@ -66,6 +66,7 @@ public:
|
||||
|
||||
bool start_table(const std::wstring & name);
|
||||
void set_state(const std::wstring & state);
|
||||
void set_chart_view();
|
||||
void end_table();
|
||||
|
||||
void start_chart();
|
||||
|
||||
@ -61,6 +61,21 @@ void xlsx_table_context::start_table(const std::wstring & name)
|
||||
tables_state_.push_back( table_state_ptr(new table_state(context_)));
|
||||
}
|
||||
|
||||
void xlsx_table_context::set_chart_view()
|
||||
{
|
||||
CP_XML_WRITER(context_.current_sheet().sheetViews())
|
||||
{
|
||||
CP_XML_NODE(L"sheetViews")
|
||||
{
|
||||
CP_XML_NODE(L"sheetView")
|
||||
{
|
||||
CP_XML_ATTR(L"showGridLines", 0);
|
||||
CP_XML_ATTR(L"workbookViewId", 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void xlsx_table_context::end_table()
|
||||
{
|
||||
if (!get_drawing_context().empty())
|
||||
|
||||
@ -60,6 +60,7 @@ public:
|
||||
|
||||
public:
|
||||
void start_table(const std::wstring & name);
|
||||
void set_chart_view();
|
||||
void end_table();
|
||||
|
||||
xlsx_drawing_context & get_drawing_context();
|
||||
|
||||
0
Common/3dParty/openssl/build.sh
Normal file → Executable file
0
Common/3dParty/openssl/build.sh
Normal file → Executable file
0
Common/3dParty/openssl/fetch.sh
Normal file → Executable file
0
Common/3dParty/openssl/fetch.sh
Normal file → Executable file
@ -213,6 +213,7 @@
|
||||
690FE07F1E9BBA15004B26D0 /* DrawingExt.h in Headers */ = {isa = PBXBuildFile; fileRef = 690FE07B1E9BBA15004B26D0 /* DrawingExt.h */; };
|
||||
690FE0821E9BBA23004B26D0 /* DiagramData.h in Headers */ = {isa = PBXBuildFile; fileRef = 690FE0801E9BBA23004B26D0 /* DiagramData.h */; };
|
||||
690FE0831E9BBA23004B26D0 /* DiagramDrawing.h in Headers */ = {isa = PBXBuildFile; fileRef = 690FE0811E9BBA23004B26D0 /* DiagramDrawing.h */; };
|
||||
691C3E131F20C3D500F1775E /* File.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 691C3E121F20C3D500F1775E /* File.cpp */; };
|
||||
69F181EC1C7734A700B2952B /* strings_hack_printf.h in Headers */ = {isa = PBXBuildFile; fileRef = 69F181EA1C7734A700B2952B /* strings_hack_printf.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
@ -431,6 +432,7 @@
|
||||
690FE07B1E9BBA15004B26D0 /* DrawingExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingExt.h; sourceTree = "<group>"; };
|
||||
690FE0801E9BBA23004B26D0 /* DiagramData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiagramData.h; sourceTree = "<group>"; };
|
||||
690FE0811E9BBA23004B26D0 /* DiagramDrawing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiagramDrawing.h; sourceTree = "<group>"; };
|
||||
691C3E121F20C3D500F1775E /* File.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp.preprocessed; fileEncoding = 4; path = File.cpp; sourceTree = "<group>"; };
|
||||
69F181EA1C7734A700B2952B /* strings_hack_printf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = strings_hack_printf.h; path = ../../Common/DocxFormat/Source/Base/strings_hack_printf.h; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
@ -901,6 +903,7 @@
|
||||
17E6B3BD1AC4298500F28F8B /* Base64.h */,
|
||||
17E6B3BE1AC4298500F28F8B /* Directory.h */,
|
||||
17E6B3BF1AC4298500F28F8B /* File.h */,
|
||||
691C3E121F20C3D500F1775E /* File.cpp */,
|
||||
17E6B3C01AC4298500F28F8B /* Path.h */,
|
||||
17E6B3C11AC4298500F28F8B /* Types.h */,
|
||||
69F181EA1C7734A700B2952B /* strings_hack_printf.h */,
|
||||
@ -1163,6 +1166,7 @@
|
||||
17C1FBAE1ACC4250006B99B3 /* oMath.cpp in Sources */,
|
||||
17C1FBAF1ACC4250006B99B3 /* ChartSerialize.cpp in Sources */,
|
||||
17C1FBB11ACC4250006B99B3 /* Position.cpp in Sources */,
|
||||
691C3E131F20C3D500F1775E /* File.cpp in Sources */,
|
||||
17C1FBB21ACC4250006B99B3 /* Vml.cpp in Sources */,
|
||||
17C1FBB31ACC4250006B99B3 /* unicode_util.cpp in Sources */,
|
||||
17C1FBB41ACC4250006B99B3 /* FldSimple.cpp in Sources */,
|
||||
@ -1202,6 +1206,7 @@
|
||||
unix,
|
||||
_IOS,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
_XCODE,
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
@ -1242,6 +1247,7 @@
|
||||
unix,
|
||||
_IOS,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
_XCODE,
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
|
||||
#include "unicode_util.h"
|
||||
|
||||
#include "../../../DesktopEditor/common/File.h"
|
||||
#include "../../../../DesktopEditor/common/File.h"
|
||||
|
||||
#define _T(x) __T(x)
|
||||
#define __T(x) L##x
|
||||
|
||||
@ -44,9 +44,11 @@ namespace OOX
|
||||
public:
|
||||
RId() : m_id(0)
|
||||
{
|
||||
bNumber = false;
|
||||
}
|
||||
RId(const size_t id) : m_id(id)
|
||||
{
|
||||
bNumber = true;
|
||||
}
|
||||
RId(const std::wstring& rid)
|
||||
{
|
||||
@ -68,11 +70,13 @@ namespace OOX
|
||||
{
|
||||
std::wstring strParam = rid.substr(nFindStringLength);
|
||||
m_id = XmlUtils::GetUInteger(strParam);
|
||||
bNumber = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_id = 0;
|
||||
m_sId = rid;
|
||||
bNumber = false;
|
||||
}
|
||||
|
||||
return *this;
|
||||
@ -80,8 +84,9 @@ namespace OOX
|
||||
|
||||
const RId& operator= (const RId& oSrc)
|
||||
{
|
||||
m_id = oSrc.m_id;
|
||||
m_sId = oSrc.m_sId;
|
||||
m_id = oSrc.m_id;
|
||||
m_sId = oSrc.m_sId;
|
||||
bNumber = oSrc.bNumber;
|
||||
return *this;
|
||||
}
|
||||
|
||||
@ -118,6 +123,7 @@ namespace OOX
|
||||
|
||||
const RId next() const
|
||||
{
|
||||
bNumber = true;
|
||||
return RId(m_id + 1);
|
||||
}
|
||||
|
||||
@ -125,8 +131,10 @@ namespace OOX
|
||||
{
|
||||
if(!m_sId.empty())
|
||||
return m_sId;
|
||||
else
|
||||
else if (bNumber)
|
||||
return _T("rId") + std::to_wstring((unsigned int)m_id);
|
||||
else
|
||||
return L"";
|
||||
}
|
||||
template<typename T>
|
||||
void toPPTY(BYTE type, T pWriter) const
|
||||
@ -137,6 +145,7 @@ namespace OOX
|
||||
private:
|
||||
size_t m_id;
|
||||
std::wstring m_sId;
|
||||
mutable bool bNumber;
|
||||
};
|
||||
} // namespace OOX
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../../../DesktopEditor/xml/include/xmlutils.h"
|
||||
#include "../../../../DesktopEditor/xml/include/xmlutils.h"
|
||||
|
||||
|
||||
namespace OOX
|
||||
|
||||
92
DesktopEditor/common/File.cpp
Normal file
92
DesktopEditor/common/File.cpp
Normal file
@ -0,0 +1,92 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2017
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "File.h"
|
||||
|
||||
#ifdef _IOS
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
static const char* fileSystemRepresentation(const std::wstring& sFileName)
|
||||
{
|
||||
NSString *path = [[NSString alloc] initWithBytes:(char*)sFileName.data()
|
||||
length:sFileName.size()* sizeof(wchar_t)
|
||||
encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF32LE)];
|
||||
|
||||
return (const char*)[path fileSystemRepresentation];
|
||||
}
|
||||
|
||||
namespace NSFile
|
||||
{
|
||||
bool CFileBinary::OpenFile(const std::wstring& sFileName, bool bRewrite)
|
||||
{
|
||||
m_pFile = fopen(fileSystemRepresentation(sFileName), bRewrite ? "rb+" : "rb");
|
||||
|
||||
if (NULL == m_pFile)
|
||||
return false;
|
||||
|
||||
fseek(m_pFile, 0, SEEK_END);
|
||||
m_lFileSize = ftell(m_pFile);
|
||||
fseek(m_pFile, 0, SEEK_SET);
|
||||
|
||||
m_lFilePosition = 0;
|
||||
|
||||
if (0 < sFileName.length())
|
||||
{
|
||||
if (((wchar_t)'/') == sFileName.c_str()[sFileName.length() - 1])
|
||||
m_lFileSize = 0x7FFFFFFF;
|
||||
}
|
||||
|
||||
unsigned int err = 0x7FFFFFFF;
|
||||
unsigned int cur = (unsigned int)m_lFileSize;
|
||||
if (err == cur)
|
||||
{
|
||||
CloseFile();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CFileBinary::CreateFileW(const std::wstring& sFileName)
|
||||
{
|
||||
m_pFile = fopen(fileSystemRepresentation(sFileName), "wb");
|
||||
|
||||
if (NULL == m_pFile)
|
||||
return false;
|
||||
|
||||
m_lFilePosition = 0;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
@ -618,6 +618,14 @@ namespace NSFile
|
||||
{
|
||||
return m_lFilePosition;
|
||||
}
|
||||
|
||||
#ifdef _IOS
|
||||
|
||||
bool OpenFile(const std::wstring& sFileName, bool bRewrite = false);
|
||||
bool CreateFileW(const std::wstring& sFileName);
|
||||
|
||||
#else
|
||||
|
||||
bool OpenFile(const std::wstring& sFileName, bool bRewrite = false)
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(_WIN64)
|
||||
@ -675,6 +683,9 @@ namespace NSFile
|
||||
m_lFilePosition = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
bool CreateTempFile()
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(_WIN64)
|
||||
|
||||
@ -437,6 +437,7 @@
|
||||
_IOS,
|
||||
FILTER_FLATE_DECODE_ENABLED,
|
||||
_ARM_ALIGN_,
|
||||
_XCODE,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@ -476,6 +477,7 @@
|
||||
_IOS,
|
||||
FILTER_FLATE_DECODE_ENABLED,
|
||||
_ARM_ALIGN_,
|
||||
_XCODE,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
||||
@ -566,6 +566,18 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
DEVELOPMENT_TEAM = 2WH24U26GJ;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
UNICODE,
|
||||
_UNICODE,
|
||||
USE_LITE_READER,
|
||||
_USE_LIBXML2_READER_,
|
||||
_USE_XMLLITE_READER_,
|
||||
LINUX,
|
||||
MAC,
|
||||
_IOS,
|
||||
LIBXML_READER_ENABLED,
|
||||
_XCODE,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
@ -582,6 +594,18 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
DEVELOPMENT_TEAM = 2WH24U26GJ;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
UNICODE,
|
||||
_UNICODE,
|
||||
USE_LITE_READER,
|
||||
_USE_LIBXML2_READER_,
|
||||
_USE_XMLLITE_READER_,
|
||||
LINUX,
|
||||
MAC,
|
||||
_IOS,
|
||||
LIBXML_READER_ENABLED,
|
||||
_XCODE,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
|
||||
@ -241,6 +241,7 @@
|
||||
_IOS,
|
||||
NOMINMAX,
|
||||
LINUX,
|
||||
_XCODE,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@ -271,6 +272,7 @@
|
||||
_IOS,
|
||||
NOMINMAX,
|
||||
LINUX,
|
||||
_XCODE,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
69676CB81CA58BBD00D7A1D1 /* OfficeUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OfficeUtils.cpp; sourceTree = "<group>"; };
|
||||
69676CB91CA58BBD00D7A1D1 /* OfficeUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfficeUtils.h; sourceTree = "<group>"; };
|
||||
69676CBA1CA58BBD00D7A1D1 /* OfficeUtilsCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfficeUtilsCommon.h; sourceTree = "<group>"; };
|
||||
69676CBB1CA58BBD00D7A1D1 /* ZipUtilsCP.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ZipUtilsCP.cpp; sourceTree = "<group>"; };
|
||||
69676CBB1CA58BBD00D7A1D1 /* ZipUtilsCP.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp.preprocessed; fileEncoding = 4; path = ZipUtilsCP.cpp; sourceTree = "<group>"; };
|
||||
69676CBC1CA58BBD00D7A1D1 /* ZipUtilsCP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZipUtilsCP.h; sourceTree = "<group>"; };
|
||||
69676D291CA58BBD00D7A1D1 /* crypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypt.h; sourceTree = "<group>"; };
|
||||
69676D2A1CA58BBD00D7A1D1 /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ioapi.c; sourceTree = "<group>"; };
|
||||
@ -292,6 +292,7 @@
|
||||
MAC,
|
||||
unix,
|
||||
_IOS,
|
||||
_XCODE,
|
||||
);
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
OTHER_LDFLAGS = "-ObjC";
|
||||
@ -309,6 +310,7 @@
|
||||
MAC,
|
||||
unix,
|
||||
_IOS,
|
||||
_XCODE,
|
||||
);
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
|
||||
OTHER_LDFLAGS = "-ObjC";
|
||||
|
||||
@ -36,6 +36,10 @@
|
||||
#include "../../DesktopEditor/common/Directory.h"
|
||||
#include "../../DesktopEditor/common/Path.h"
|
||||
|
||||
#if _IOS
|
||||
#import <Foundation/Foundation.h>
|
||||
#endif
|
||||
|
||||
#define WRITEBUFFERSIZE 8192
|
||||
#define READBUFFERSIZE 8192
|
||||
|
||||
@ -43,6 +47,13 @@ namespace ZLibZipUtils
|
||||
{
|
||||
static zipFile zipOpenHelp(const wchar_t* filename)
|
||||
{
|
||||
#ifdef _IOS
|
||||
NSString *path =[[NSString alloc] initWithBytes:filename
|
||||
length:wcslen(filename)*sizeof(*filename)
|
||||
encoding:NSUTF32LittleEndianStringEncoding];
|
||||
return zipOpen( (const char*)[path fileSystemRepresentation], APPEND_STATUS_CREATE );
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) || defined (_WIN64)
|
||||
zipFile zf = zipOpen( filename, APPEND_STATUS_CREATE );
|
||||
#else
|
||||
@ -56,6 +67,13 @@ namespace ZLibZipUtils
|
||||
}
|
||||
static unzFile unzOpenHelp(const wchar_t* filename)
|
||||
{
|
||||
#ifdef _IOS
|
||||
NSString *path =[[NSString alloc] initWithBytes:filename
|
||||
length:wcslen(filename)*sizeof(*filename)
|
||||
encoding:NSUTF32LittleEndianStringEncoding];
|
||||
return unzOpen ((const char*)[path fileSystemRepresentation]);
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) || defined (_WIN64)
|
||||
unzFile uf = unzOpen (filename);
|
||||
#else
|
||||
|
||||
@ -232,6 +232,7 @@
|
||||
MAC,
|
||||
unix,
|
||||
_IOS,
|
||||
_XCODE,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@ -260,6 +261,7 @@
|
||||
MAC,
|
||||
unix,
|
||||
_IOS,
|
||||
_XCODE,
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
||||
@ -0,0 +1,459 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
7CC743FF1F20E97F006A9889 /* ASCConverters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CC743F91F20E97F006A9889 /* ASCConverters.cpp */; };
|
||||
7CC744001F20E97F006A9889 /* cextracttools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CC743FB1F20E97F006A9889 /* cextracttools.cpp */; };
|
||||
7CC744011F20E97F006A9889 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CC743FD1F20E97F006A9889 /* main.cpp */; };
|
||||
7CC744191F20E9BF006A9889 /* libASCOfficeDocxFile2Lib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744031F20E9BF006A9889 /* libASCOfficeDocxFile2Lib.a */; };
|
||||
7CC7441A1F20E9BF006A9889 /* libCryptoPPLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744041F20E9BF006A9889 /* libCryptoPPLib.a */; };
|
||||
7CC7441B1F20E9BF006A9889 /* libDjVuFile.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744051F20E9BF006A9889 /* libDjVuFile.dylib */; };
|
||||
7CC7441C1F20E9BF006A9889 /* libDocFormatLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744061F20E9BF006A9889 /* libDocFormatLib.a */; };
|
||||
7CC7441D1F20E9BF006A9889 /* libdoctrenderer.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744071F20E9BF006A9889 /* libdoctrenderer.dylib */; };
|
||||
7CC7441E1F20E9BF006A9889 /* libDocxFormatLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744081F20E9BF006A9889 /* libDocxFormatLib.a */; };
|
||||
7CC7441F1F20E9BF006A9889 /* libgraphics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744091F20E9BF006A9889 /* libgraphics.a */; };
|
||||
7CC744201F20E9BF006A9889 /* libHtmlFile.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC7440A1F20E9BF006A9889 /* libHtmlFile.dylib */; };
|
||||
7CC744211F20E9BF006A9889 /* libHtmlRenderer.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC7440B1F20E9BF006A9889 /* libHtmlRenderer.dylib */; };
|
||||
7CC744221F20E9BF006A9889 /* liblibxml.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC7440C1F20E9BF006A9889 /* liblibxml.a */; };
|
||||
7CC744231F20E9BF006A9889 /* libOdfFileReaderLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC7440D1F20E9BF006A9889 /* libOdfFileReaderLib.a */; };
|
||||
7CC744241F20E9BF006A9889 /* libOdfFileWriterLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC7440E1F20E9BF006A9889 /* libOdfFileWriterLib.a */; };
|
||||
7CC744251F20E9BF006A9889 /* libOfficeUtils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC7440F1F20E9BF006A9889 /* libOfficeUtils.a */; };
|
||||
7CC744261F20E9BF006A9889 /* libPdfReader.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744101F20E9BF006A9889 /* libPdfReader.dylib */; };
|
||||
7CC744271F20E9BF006A9889 /* libPdfWriter.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744111F20E9BF006A9889 /* libPdfWriter.dylib */; };
|
||||
7CC744281F20E9BF006A9889 /* libPptFormatLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744121F20E9BF006A9889 /* libPptFormatLib.a */; };
|
||||
7CC744291F20E9BF006A9889 /* libPPTXFormatLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744131F20E9BF006A9889 /* libPPTXFormatLib.a */; };
|
||||
7CC7442A1F20E9BF006A9889 /* libRtfFormatLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744141F20E9BF006A9889 /* libRtfFormatLib.a */; };
|
||||
7CC7442B1F20E9BF006A9889 /* libTxtXmlFormatLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744151F20E9BF006A9889 /* libTxtXmlFormatLib.a */; };
|
||||
7CC7442C1F20E9BF006A9889 /* libUnicodeConverter.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744161F20E9BF006A9889 /* libUnicodeConverter.dylib */; };
|
||||
7CC7442D1F20E9BF006A9889 /* libXlsFormatLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744171F20E9BF006A9889 /* libXlsFormatLib.a */; };
|
||||
7CC7442E1F20E9BF006A9889 /* libXpsFile.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744181F20E9BF006A9889 /* libXpsFile.dylib */; };
|
||||
7CC744311F20E9D5006A9889 /* libicudata.55.1.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC7442F1F20E9D5006A9889 /* libicudata.55.1.dylib */; };
|
||||
7CC744321F20E9D5006A9889 /* libicuuc.55.1.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744301F20E9D5006A9889 /* libicuuc.55.1.dylib */; };
|
||||
7CC744371F20EAE6006A9889 /* libboost_date_time.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744331F20EAE6006A9889 /* libboost_date_time.a */; };
|
||||
7CC744381F20EAE6006A9889 /* libboost_filesystem.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744341F20EAE6006A9889 /* libboost_filesystem.a */; };
|
||||
7CC744391F20EAE6006A9889 /* libboost_regex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744351F20EAE6006A9889 /* libboost_regex.a */; };
|
||||
7CC7443A1F20EAE6006A9889 /* libboost_system.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC744361F20EAE6006A9889 /* libboost_system.a */; };
|
||||
7CC7443C1F20F0A9006A9889 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7CC7443B1F20F0A9006A9889 /* AppKit.framework */; };
|
||||
7CC7443F1F20F114006A9889 /* xmldom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CC7443D1F20F114006A9889 /* xmldom.cpp */; };
|
||||
7CC744401F20F114006A9889 /* xmllight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CC7443E1F20F114006A9889 /* xmllight.cpp */; };
|
||||
7CC744421F20F128006A9889 /* OfficeFileFormatChecker2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CC744411F20F128006A9889 /* OfficeFileFormatChecker2.cpp */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
7CC743EC1F20E952006A9889 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = /usr/share/man/man1/;
|
||||
dstSubfolderSpec = 0;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
7CC743EE1F20E952006A9889 /* x2t_macos */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = x2t_macos; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
7CC743F91F20E97F006A9889 /* ASCConverters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ASCConverters.cpp; path = ../../../../src/ASCConverters.cpp; sourceTree = "<group>"; };
|
||||
7CC743FA1F20E97F006A9889 /* ASCConverters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASCConverters.h; path = ../../../../src/ASCConverters.h; sourceTree = "<group>"; };
|
||||
7CC743FB1F20E97F006A9889 /* cextracttools.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cextracttools.cpp; path = ../../../../src/cextracttools.cpp; sourceTree = "<group>"; };
|
||||
7CC743FC1F20E97F006A9889 /* cextracttools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cextracttools.h; path = ../../../../src/cextracttools.h; sourceTree = "<group>"; };
|
||||
7CC743FD1F20E97F006A9889 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = ../../../../src/main.cpp; sourceTree = "<group>"; };
|
||||
7CC744031F20E9BF006A9889 /* libASCOfficeDocxFile2Lib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libASCOfficeDocxFile2Lib.a; path = ../../../../../build/lib/mac_64/libASCOfficeDocxFile2Lib.a; sourceTree = "<group>"; };
|
||||
7CC744041F20E9BF006A9889 /* libCryptoPPLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libCryptoPPLib.a; path = ../../../../../build/lib/mac_64/libCryptoPPLib.a; sourceTree = "<group>"; };
|
||||
7CC744051F20E9BF006A9889 /* libDjVuFile.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libDjVuFile.dylib; path = ../../../../../build/lib/mac_64/libDjVuFile.dylib; sourceTree = "<group>"; };
|
||||
7CC744061F20E9BF006A9889 /* libDocFormatLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libDocFormatLib.a; path = ../../../../../build/lib/mac_64/libDocFormatLib.a; sourceTree = "<group>"; };
|
||||
7CC744071F20E9BF006A9889 /* libdoctrenderer.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libdoctrenderer.dylib; path = ../../../../../build/lib/mac_64/libdoctrenderer.dylib; sourceTree = "<group>"; };
|
||||
7CC744081F20E9BF006A9889 /* libDocxFormatLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libDocxFormatLib.a; path = ../../../../../build/lib/mac_64/libDocxFormatLib.a; sourceTree = "<group>"; };
|
||||
7CC744091F20E9BF006A9889 /* libgraphics.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgraphics.a; path = ../../../../../build/lib/mac_64/libgraphics.a; sourceTree = "<group>"; };
|
||||
7CC7440A1F20E9BF006A9889 /* libHtmlFile.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libHtmlFile.dylib; path = ../../../../../build/lib/mac_64/libHtmlFile.dylib; sourceTree = "<group>"; };
|
||||
7CC7440B1F20E9BF006A9889 /* libHtmlRenderer.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libHtmlRenderer.dylib; path = ../../../../../build/lib/mac_64/libHtmlRenderer.dylib; sourceTree = "<group>"; };
|
||||
7CC7440C1F20E9BF006A9889 /* liblibxml.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = liblibxml.a; path = ../../../../../build/lib/mac_64/liblibxml.a; sourceTree = "<group>"; };
|
||||
7CC7440D1F20E9BF006A9889 /* libOdfFileReaderLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOdfFileReaderLib.a; path = ../../../../../build/lib/mac_64/libOdfFileReaderLib.a; sourceTree = "<group>"; };
|
||||
7CC7440E1F20E9BF006A9889 /* libOdfFileWriterLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOdfFileWriterLib.a; path = ../../../../../build/lib/mac_64/libOdfFileWriterLib.a; sourceTree = "<group>"; };
|
||||
7CC7440F1F20E9BF006A9889 /* libOfficeUtils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libOfficeUtils.a; path = ../../../../../build/lib/mac_64/libOfficeUtils.a; sourceTree = "<group>"; };
|
||||
7CC744101F20E9BF006A9889 /* libPdfReader.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libPdfReader.dylib; path = ../../../../../build/lib/mac_64/libPdfReader.dylib; sourceTree = "<group>"; };
|
||||
7CC744111F20E9BF006A9889 /* libPdfWriter.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libPdfWriter.dylib; path = ../../../../../build/lib/mac_64/libPdfWriter.dylib; sourceTree = "<group>"; };
|
||||
7CC744121F20E9BF006A9889 /* libPptFormatLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libPptFormatLib.a; path = ../../../../../build/lib/mac_64/libPptFormatLib.a; sourceTree = "<group>"; };
|
||||
7CC744131F20E9BF006A9889 /* libPPTXFormatLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libPPTXFormatLib.a; path = ../../../../../build/lib/mac_64/libPPTXFormatLib.a; sourceTree = "<group>"; };
|
||||
7CC744141F20E9BF006A9889 /* libRtfFormatLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libRtfFormatLib.a; path = ../../../../../build/lib/mac_64/libRtfFormatLib.a; sourceTree = "<group>"; };
|
||||
7CC744151F20E9BF006A9889 /* libTxtXmlFormatLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTxtXmlFormatLib.a; path = ../../../../../build/lib/mac_64/libTxtXmlFormatLib.a; sourceTree = "<group>"; };
|
||||
7CC744161F20E9BF006A9889 /* libUnicodeConverter.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libUnicodeConverter.dylib; path = ../../../../../build/lib/mac_64/libUnicodeConverter.dylib; sourceTree = "<group>"; };
|
||||
7CC744171F20E9BF006A9889 /* libXlsFormatLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libXlsFormatLib.a; path = ../../../../../build/lib/mac_64/libXlsFormatLib.a; sourceTree = "<group>"; };
|
||||
7CC744181F20E9BF006A9889 /* libXpsFile.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libXpsFile.dylib; path = ../../../../../build/lib/mac_64/libXpsFile.dylib; sourceTree = "<group>"; };
|
||||
7CC7442F1F20E9D5006A9889 /* libicudata.55.1.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicudata.55.1.dylib; path = ../../../../../build/bin/icu/mac_64/libicudata.55.1.dylib; sourceTree = "<group>"; };
|
||||
7CC744301F20E9D5006A9889 /* libicuuc.55.1.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicuuc.55.1.dylib; path = ../../../../../build/bin/icu/mac_64/libicuuc.55.1.dylib; sourceTree = "<group>"; };
|
||||
7CC744331F20EAE6006A9889 /* libboost_date_time.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_date_time.a; path = ../../../../../Common/3dParty/boost/boost_1_58_0/build/mac_64/static/libboost_date_time.a; sourceTree = "<group>"; };
|
||||
7CC744341F20EAE6006A9889 /* libboost_filesystem.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_filesystem.a; path = ../../../../../Common/3dParty/boost/boost_1_58_0/build/mac_64/static/libboost_filesystem.a; sourceTree = "<group>"; };
|
||||
7CC744351F20EAE6006A9889 /* libboost_regex.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_regex.a; path = ../../../../../Common/3dParty/boost/boost_1_58_0/build/mac_64/static/libboost_regex.a; sourceTree = "<group>"; };
|
||||
7CC744361F20EAE6006A9889 /* libboost_system.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_system.a; path = ../../../../../Common/3dParty/boost/boost_1_58_0/build/mac_64/static/libboost_system.a; sourceTree = "<group>"; };
|
||||
7CC7443B1F20F0A9006A9889 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
|
||||
7CC7443D1F20F114006A9889 /* xmldom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = xmldom.cpp; path = ../../../../../DesktopEditor/xml/src/xmldom.cpp; sourceTree = "<group>"; };
|
||||
7CC7443E1F20F114006A9889 /* xmllight.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = xmllight.cpp; path = ../../../../../DesktopEditor/xml/src/xmllight.cpp; sourceTree = "<group>"; };
|
||||
7CC744411F20F128006A9889 /* OfficeFileFormatChecker2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OfficeFileFormatChecker2.cpp; path = ../../../../../Common/OfficeFileFormatChecker2.cpp; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
7CC743EB1F20E952006A9889 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
7CC7443C1F20F0A9006A9889 /* AppKit.framework in Frameworks */,
|
||||
7CC744371F20EAE6006A9889 /* libboost_date_time.a in Frameworks */,
|
||||
7CC744381F20EAE6006A9889 /* libboost_filesystem.a in Frameworks */,
|
||||
7CC744391F20EAE6006A9889 /* libboost_regex.a in Frameworks */,
|
||||
7CC7443A1F20EAE6006A9889 /* libboost_system.a in Frameworks */,
|
||||
7CC744311F20E9D5006A9889 /* libicudata.55.1.dylib in Frameworks */,
|
||||
7CC744321F20E9D5006A9889 /* libicuuc.55.1.dylib in Frameworks */,
|
||||
7CC744191F20E9BF006A9889 /* libASCOfficeDocxFile2Lib.a in Frameworks */,
|
||||
7CC7441A1F20E9BF006A9889 /* libCryptoPPLib.a in Frameworks */,
|
||||
7CC7441B1F20E9BF006A9889 /* libDjVuFile.dylib in Frameworks */,
|
||||
7CC7441C1F20E9BF006A9889 /* libDocFormatLib.a in Frameworks */,
|
||||
7CC7441D1F20E9BF006A9889 /* libdoctrenderer.dylib in Frameworks */,
|
||||
7CC7441E1F20E9BF006A9889 /* libDocxFormatLib.a in Frameworks */,
|
||||
7CC7441F1F20E9BF006A9889 /* libgraphics.a in Frameworks */,
|
||||
7CC744201F20E9BF006A9889 /* libHtmlFile.dylib in Frameworks */,
|
||||
7CC744211F20E9BF006A9889 /* libHtmlRenderer.dylib in Frameworks */,
|
||||
7CC744221F20E9BF006A9889 /* liblibxml.a in Frameworks */,
|
||||
7CC744231F20E9BF006A9889 /* libOdfFileReaderLib.a in Frameworks */,
|
||||
7CC744241F20E9BF006A9889 /* libOdfFileWriterLib.a in Frameworks */,
|
||||
7CC744251F20E9BF006A9889 /* libOfficeUtils.a in Frameworks */,
|
||||
7CC744261F20E9BF006A9889 /* libPdfReader.dylib in Frameworks */,
|
||||
7CC744271F20E9BF006A9889 /* libPdfWriter.dylib in Frameworks */,
|
||||
7CC744281F20E9BF006A9889 /* libPptFormatLib.a in Frameworks */,
|
||||
7CC744291F20E9BF006A9889 /* libPPTXFormatLib.a in Frameworks */,
|
||||
7CC7442A1F20E9BF006A9889 /* libRtfFormatLib.a in Frameworks */,
|
||||
7CC7442B1F20E9BF006A9889 /* libTxtXmlFormatLib.a in Frameworks */,
|
||||
7CC7442C1F20E9BF006A9889 /* libUnicodeConverter.dylib in Frameworks */,
|
||||
7CC7442D1F20E9BF006A9889 /* libXlsFormatLib.a in Frameworks */,
|
||||
7CC7442E1F20E9BF006A9889 /* libXpsFile.dylib in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
7CC743E51F20E952006A9889 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7CC744411F20F128006A9889 /* OfficeFileFormatChecker2.cpp */,
|
||||
7CC7443D1F20F114006A9889 /* xmldom.cpp */,
|
||||
7CC7443E1F20F114006A9889 /* xmllight.cpp */,
|
||||
7CC743F91F20E97F006A9889 /* ASCConverters.cpp */,
|
||||
7CC743FA1F20E97F006A9889 /* ASCConverters.h */,
|
||||
7CC743FB1F20E97F006A9889 /* cextracttools.cpp */,
|
||||
7CC743FC1F20E97F006A9889 /* cextracttools.h */,
|
||||
7CC743FD1F20E97F006A9889 /* main.cpp */,
|
||||
7CC743F01F20E952006A9889 /* x2t_macos */,
|
||||
7CC743EF1F20E952006A9889 /* Products */,
|
||||
7CC744021F20E9BF006A9889 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7CC743EF1F20E952006A9889 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7CC743EE1F20E952006A9889 /* x2t_macos */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7CC743F01F20E952006A9889 /* x2t_macos */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
);
|
||||
path = x2t_macos;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7CC744021F20E9BF006A9889 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7CC7443B1F20F0A9006A9889 /* AppKit.framework */,
|
||||
7CC744331F20EAE6006A9889 /* libboost_date_time.a */,
|
||||
7CC744341F20EAE6006A9889 /* libboost_filesystem.a */,
|
||||
7CC744351F20EAE6006A9889 /* libboost_regex.a */,
|
||||
7CC744361F20EAE6006A9889 /* libboost_system.a */,
|
||||
7CC7442F1F20E9D5006A9889 /* libicudata.55.1.dylib */,
|
||||
7CC744301F20E9D5006A9889 /* libicuuc.55.1.dylib */,
|
||||
7CC744031F20E9BF006A9889 /* libASCOfficeDocxFile2Lib.a */,
|
||||
7CC744041F20E9BF006A9889 /* libCryptoPPLib.a */,
|
||||
7CC744051F20E9BF006A9889 /* libDjVuFile.dylib */,
|
||||
7CC744061F20E9BF006A9889 /* libDocFormatLib.a */,
|
||||
7CC744071F20E9BF006A9889 /* libdoctrenderer.dylib */,
|
||||
7CC744081F20E9BF006A9889 /* libDocxFormatLib.a */,
|
||||
7CC744091F20E9BF006A9889 /* libgraphics.a */,
|
||||
7CC7440A1F20E9BF006A9889 /* libHtmlFile.dylib */,
|
||||
7CC7440B1F20E9BF006A9889 /* libHtmlRenderer.dylib */,
|
||||
7CC7440C1F20E9BF006A9889 /* liblibxml.a */,
|
||||
7CC7440D1F20E9BF006A9889 /* libOdfFileReaderLib.a */,
|
||||
7CC7440E1F20E9BF006A9889 /* libOdfFileWriterLib.a */,
|
||||
7CC7440F1F20E9BF006A9889 /* libOfficeUtils.a */,
|
||||
7CC744101F20E9BF006A9889 /* libPdfReader.dylib */,
|
||||
7CC744111F20E9BF006A9889 /* libPdfWriter.dylib */,
|
||||
7CC744121F20E9BF006A9889 /* libPptFormatLib.a */,
|
||||
7CC744131F20E9BF006A9889 /* libPPTXFormatLib.a */,
|
||||
7CC744141F20E9BF006A9889 /* libRtfFormatLib.a */,
|
||||
7CC744151F20E9BF006A9889 /* libTxtXmlFormatLib.a */,
|
||||
7CC744161F20E9BF006A9889 /* libUnicodeConverter.dylib */,
|
||||
7CC744171F20E9BF006A9889 /* libXlsFormatLib.a */,
|
||||
7CC744181F20E9BF006A9889 /* libXpsFile.dylib */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
7CC743ED1F20E952006A9889 /* x2t_macos */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 7CC743F51F20E952006A9889 /* Build configuration list for PBXNativeTarget "x2t_macos" */;
|
||||
buildPhases = (
|
||||
7CC743EA1F20E952006A9889 /* Sources */,
|
||||
7CC743EB1F20E952006A9889 /* Frameworks */,
|
||||
7CC743EC1F20E952006A9889 /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = x2t_macos;
|
||||
productName = x2t_macos;
|
||||
productReference = 7CC743EE1F20E952006A9889 /* x2t_macos */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
7CC743E61F20E952006A9889 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0800;
|
||||
ORGANIZATIONNAME = "Oleg Korshul";
|
||||
TargetAttributes = {
|
||||
7CC743ED1F20E952006A9889 = {
|
||||
CreatedOnToolsVersion = 8.0;
|
||||
ProvisioningStyle = Automatic;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 7CC743E91F20E952006A9889 /* Build configuration list for PBXProject "x2t_macos" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 7CC743E51F20E952006A9889;
|
||||
productRefGroup = 7CC743EF1F20E952006A9889 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
7CC743ED1F20E952006A9889 /* x2t_macos */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
7CC743EA1F20E952006A9889 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
7CC744001F20E97F006A9889 /* cextracttools.cpp in Sources */,
|
||||
7CC743FF1F20E97F006A9889 /* ASCConverters.cpp in Sources */,
|
||||
7CC7443F1F20F114006A9889 /* xmldom.cpp in Sources */,
|
||||
7CC744011F20E97F006A9889 /* main.cpp in Sources */,
|
||||
7CC744401F20F114006A9889 /* xmllight.cpp in Sources */,
|
||||
7CC744421F20F128006A9889 /* OfficeFileFormatChecker2.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
7CC743F31F20E952006A9889 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_SUSPICIOUS_MOVES = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = "@executable_path";
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
_MAC,
|
||||
MAC,
|
||||
_LINUX,
|
||||
LINUX,
|
||||
UNICODE,
|
||||
_USE_LIBXML2_READER_,
|
||||
_USE_XMLLITE_READER_,
|
||||
USE_LITE_READER,
|
||||
PPTX_DEF,
|
||||
PPT_DEF,
|
||||
ENABLE_PPT_TO_PPTX_CONVERT,
|
||||
FILTER_FLATE_DECODE_ENABLED,
|
||||
CXIMAGE_DONT_DECLARE_TCHAR,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
AVS_USE_CONVERT_PPTX_TOCUSTOM_VML,
|
||||
LIBXML_READER_ENABLED,
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
/Users/Oleg/Desktop/GIT/core/build/lib/mac_64,
|
||||
/Users/Oleg/Desktop/GIT/core/Common/boost_1_58_0/stage/lib,
|
||||
/Users/Oleg/Desktop/GIT/core/build/bin/icu/mac_64,
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
OTHER_CFLAGS = (
|
||||
"-I./../../../../../Common/boost_1_58_0",
|
||||
"-I./../../../../../DesktopEditor/xml/libxml2/include",
|
||||
"-I./../../../../../DesktopEditor/freetype-2.5.2/include",
|
||||
"-I./../../../../../DesktopEditor/agg-2.4/include",
|
||||
"-I./../../../../../DesktopEditor/xml/build/qt",
|
||||
);
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
7CC743F41F20E952006A9889 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_SUSPICIOUS_MOVES = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = "@executable_path";
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
_MAC,
|
||||
MAC,
|
||||
_LINUX,
|
||||
LINUX,
|
||||
UNICODE,
|
||||
_USE_LIBXML2_READER_,
|
||||
_USE_XMLLITE_READER_,
|
||||
USE_LITE_READER,
|
||||
PPTX_DEF,
|
||||
PPT_DEF,
|
||||
ENABLE_PPT_TO_PPTX_CONVERT,
|
||||
FILTER_FLATE_DECODE_ENABLED,
|
||||
CXIMAGE_DONT_DECLARE_TCHAR,
|
||||
DONT_WRITE_EMBEDDED_FONTS,
|
||||
AVS_USE_CONVERT_PPTX_TOCUSTOM_VML,
|
||||
LIBXML_READER_ENABLED,
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
/Users/Oleg/Desktop/GIT/core/build/lib/mac_64,
|
||||
/Users/Oleg/Desktop/GIT/core/Common/boost_1_58_0/stage/lib,
|
||||
/Users/Oleg/Desktop/GIT/core/build/bin/icu/mac_64,
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_CFLAGS = (
|
||||
"-I./../../../../../Common/boost_1_58_0",
|
||||
"-I./../../../../../DesktopEditor/xml/libxml2/include",
|
||||
"-I./../../../../../DesktopEditor/freetype-2.5.2/include",
|
||||
"-I./../../../../../DesktopEditor/agg-2.4/include",
|
||||
"-I./../../../../../DesktopEditor/xml/build/qt",
|
||||
);
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
7CC743F61F20E952006A9889 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
7CC743F71F20E952006A9889 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
7CC743E91F20E952006A9889 /* Build configuration list for PBXProject "x2t_macos" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
7CC743F31F20E952006A9889 /* Debug */,
|
||||
7CC743F41F20E952006A9889 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
7CC743F51F20E952006A9889 /* Build configuration list for PBXNativeTarget "x2t_macos" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
7CC743F61F20E952006A9889 /* Debug */,
|
||||
7CC743F71F20E952006A9889 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 7CC743E61F20E952006A9889 /* Project object */;
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>x2t_macos.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>7CC743ED1F20E952006A9889</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@ -7,7 +7,7 @@
|
||||
QT -= core
|
||||
QT -= gui
|
||||
|
||||
VERSION = 2.4.470.0
|
||||
VERSION = 2.4.471.0
|
||||
DEFINES += INTVER=$$VERSION
|
||||
|
||||
TARGET = x2t
|
||||
|
||||
Reference in New Issue
Block a user