sc/inc/tabprotection.hxx | 6 ++--- sc/qa/unit/data/ods/sheet-protection.ods |binary sc/qa/unit/subsequent_export-test.cxx | 33 +++++++++++++++++++++++++++++++ sc/source/filter/xml/xmlexprt.cxx | 6 ++--- sc/source/filter/xml/xmlimprt.cxx | 3 ++ sc/source/filter/xml/xmltabi.cxx | 2 - 6 files changed, 43 insertions(+), 7 deletions(-)
New commits: commit 08d4ea4b48f9d6419e76fe31d5b53c1ea0b427df Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Sat Aug 16 00:14:00 2014 +0200 use scoped_ptr instead of shared_ptr Change-Id: Ic814a2301aaf6e57aa8ca04b837acafb6e4f4566 diff --git a/sc/inc/tabprotection.hxx b/sc/inc/tabprotection.hxx index 9acfefd..0843a1f 100644 --- a/sc/inc/tabprotection.hxx +++ b/sc/inc/tabprotection.hxx @@ -25,7 +25,7 @@ #include "global.hxx" #include "rangelst.hxx" -#include <boost/shared_ptr.hpp> +#include <boost/scoped_ptr.hpp> class ScDocument; class ScTableProtectionImpl; @@ -108,7 +108,7 @@ public: void setOption(Option eOption, bool bEnabled); private: - ::boost::shared_ptr<ScTableProtectionImpl> mpImpl; + ::boost::scoped_ptr<ScTableProtectionImpl> mpImpl; }; /** Container for the Excel EnhancedProtection feature. @@ -200,7 +200,7 @@ public: bool isSelectionEditable( const ScRangeList& rRangeList ) const; private: - ::boost::shared_ptr<ScTableProtectionImpl> mpImpl; + ::boost::scoped_ptr<ScTableProtectionImpl> mpImpl; }; #endif commit 0e633c51d8ed0c0d4050a3d0781c5bc036607616 Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Sat Aug 16 00:11:56 2014 +0200 add test for fdo#82128 Change-Id: I3dd0005f00c4a861103ffd1a0422b9fc9397f6fb diff --git a/sc/qa/unit/data/ods/sheet-protection.ods b/sc/qa/unit/data/ods/sheet-protection.ods new file mode 100644 index 0000000..8cfbbd2 Binary files /dev/null and b/sc/qa/unit/data/ods/sheet-protection.ods differ diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx index 0be4d5e..466ca67 100644 --- a/sc/qa/unit/subsequent_export-test.cxx +++ b/sc/qa/unit/subsequent_export-test.cxx @@ -116,6 +116,7 @@ public: #endif void testRelativePaths(); + void testSheetProtection(); CPPUNIT_TEST_SUITE(ScExportTest); CPPUNIT_TEST(test); @@ -152,6 +153,7 @@ public: #if !defined(WNT) CPPUNIT_TEST(testRelativePaths); #endif + CPPUNIT_TEST(testSheetProtection); /* TODO: export to ODS currently (2014-04-28) makes the validator stumble, * probably due to a loext:fill-character attribute in a @@ -1932,6 +1934,37 @@ void ScExportTest::testRelativePaths() CPPUNIT_ASSERT(aURL.startsWith("..")); } +namespace { + +void testSheetProtection_Impl(ScDocument& rDoc) +{ + CPPUNIT_ASSERT(rDoc.IsTabProtected(0)); + + ScTableProtection* pTabProtection = rDoc.GetTabProtection(0); + CPPUNIT_ASSERT(pTabProtection->isOptionEnabled(ScTableProtection::SELECT_UNLOCKED_CELLS)); + CPPUNIT_ASSERT(!pTabProtection->isOptionEnabled(ScTableProtection::SELECT_LOCKED_CELLS)); +} + +} +void ScExportTest::testSheetProtection() +{ + ScDocShellRef xDocSh = loadDoc("sheet-protection.", ODS); + CPPUNIT_ASSERT(xDocSh.Is()); + + { + ScDocument& rDoc = xDocSh->GetDocument(); + testSheetProtection_Impl(rDoc); + } + + ScDocShellRef xDocSh2 = saveAndReload(xDocSh, ODS); + { + ScDocument& rDoc = xDocSh2->GetDocument(); + testSheetProtection_Impl(rDoc); + } + + xDocSh2->DoClose(); +} + #if 0 void ScExportTest::testFunctionsExcel2010ODS() { commit 2cc0109c0a1a8ff9a6bdb1cd5fc38f0c3520585a Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Thu Aug 14 11:07:16 2014 +0200 use correct namespace for table protection elements, fdo#82128 Change-Id: I5b9cb4a76739a0c91597c0470c737439d2b07e4f diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx index 9c44f8d..6e7b52d 100644 --- a/sc/source/filter/xml/xmlexprt.cxx +++ b/sc/source/filter/xml/xmlexprt.cxx @@ -2939,12 +2939,12 @@ void ScXMLExport::WriteTable(sal_Int32 nTable, const Reference<sheet::XSpreadshe if (pProtect && pProtect->isProtected() && getDefaultVersion() > SvtSaveOptions::ODFVER_012) { if (pProtect->isOptionEnabled(ScTableProtection::SELECT_LOCKED_CELLS)) - AddAttribute(XML_NAMESPACE_OFFICE_EXT, XML_SELECT_PROTECTED_CELLS, XML_TRUE); + AddAttribute(XML_NAMESPACE_LO_EXT, XML_SELECT_PROTECTED_CELLS, XML_TRUE); if (pProtect->isOptionEnabled(ScTableProtection::SELECT_UNLOCKED_CELLS)) - AddAttribute(XML_NAMESPACE_OFFICE_EXT, XML_SELECT_UNPROTECTED_CELLS, XML_TRUE); + AddAttribute(XML_NAMESPACE_LO_EXT, XML_SELECT_UNPROTECTED_CELLS, XML_TRUE); OUString aElemName = GetNamespaceMap().GetQNameByKey( - XML_NAMESPACE_OFFICE_EXT, GetXMLToken(XML_TABLE_PROTECTION)); + XML_NAMESPACE_LO_EXT, GetXMLToken(XML_TABLE_PROTECTION)); SvXMLElementExport aElemProtected(*this, aElemName, true, true); } diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx index 5c817fa..1b9d10a 100644 --- a/sc/source/filter/xml/xmlimprt.cxx +++ b/sc/source/filter/xml/xmlimprt.cxx @@ -805,6 +805,7 @@ const SvXMLTokenMap& ScXMLImport::GetTableElemTokenMap() { XML_NAMESPACE_TABLE, XML_TABLE_COLUMNS, XML_TOK_TABLE_COLS }, { XML_NAMESPACE_TABLE, XML_TABLE_COLUMN, XML_TOK_TABLE_COL }, { XML_NAMESPACE_TABLE, XML_TABLE_PROTECTION, XML_TOK_TABLE_PROTECTION }, + { XML_NAMESPACE_LO_EXT, XML_TABLE_PROTECTION, XML_TOK_TABLE_PROTECTION_EXT }, { XML_NAMESPACE_OFFICE_EXT, XML_TABLE_PROTECTION, XML_TOK_TABLE_PROTECTION_EXT }, { XML_NAMESPACE_TABLE, XML_TABLE_ROW_GROUP, XML_TOK_TABLE_ROW_GROUP }, { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_ROWS, XML_TOK_TABLE_HEADER_ROWS }, @@ -835,7 +836,9 @@ const SvXMLTokenMap& ScXMLImport::GetTableProtectionAttrTokenMap() { XML_NAMESPACE_TABLE, XML_SELECT_PROTECTED_CELLS, XML_TOK_TABLE_SELECT_PROTECTED_CELLS }, { XML_NAMESPACE_TABLE, XML_SELECT_UNPROTECTED_CELLS, XML_TOK_TABLE_SELECT_UNPROTECTED_CELLS }, { XML_NAMESPACE_OFFICE_EXT, XML_SELECT_PROTECTED_CELLS, XML_TOK_TABLE_SELECT_PROTECTED_CELLS_EXT }, + { XML_NAMESPACE_LO_EXT, XML_SELECT_PROTECTED_CELLS, XML_TOK_TABLE_SELECT_PROTECTED_CELLS_EXT }, { XML_NAMESPACE_OFFICE_EXT, XML_SELECT_UNPROTECTED_CELLS, XML_TOK_TABLE_SELECT_UNPROTECTED_CELLS_EXT }, + { XML_NAMESPACE_LO_EXT, XML_SELECT_UNPROTECTED_CELLS, XML_TOK_TABLE_SELECT_UNPROTECTED_CELLS_EXT }, XML_TOKEN_MAP_END }; pTableProtectionElemTokenMap = new SvXMLTokenMap(aTableProtectionTokenMap); diff --git a/sc/source/filter/xml/xmltabi.cxx b/sc/source/filter/xml/xmltabi.cxx index b0f836d..548763e 100644 --- a/sc/source/filter/xml/xmltabi.cxx +++ b/sc/source/filter/xml/xmltabi.cxx @@ -459,7 +459,7 @@ ScXMLTableProtectionContext::ScXMLTableProtectionContext( bSelectUnprotectedCells = IsXMLToken(aValue, XML_TRUE); break; default: - ; + SAL_WARN("sc", "unknown attribute: " << aAttrName); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits