writerperfect/Library_wpftqahelper.mk | 1 writerperfect/qa/unit/WpftFilterTestBase.cxx | 12 ++++ writerperfect/source/calc/MSWorksCalcImportFilter.cxx | 54 +++++++++--------- 3 files changed, 40 insertions(+), 27 deletions(-)
New commits: commit d9d14d0a4c4470de19b81d0df64e8635bb720560 Author: David Tardon <[email protected]> Date: Wed Jan 11 17:27:42 2017 +0100 astyle Change-Id: Iee24a1b7bc4ada389dfa5f0f39c9d06938ed1481 diff --git a/writerperfect/source/calc/MSWorksCalcImportFilter.cxx b/writerperfect/source/calc/MSWorksCalcImportFilter.cxx index cff8a02..1c80fa7 100644 --- a/writerperfect/source/calc/MSWorksCalcImportFilter.cxx +++ b/writerperfect/source/calc/MSWorksCalcImportFilter.cxx @@ -133,39 +133,39 @@ public: } /** return a new stream for a ole zone */ librevenge::RVNGInputStream *getSubStreamByName(const char *name) override -{ - if (m_nameToPathMap.find(name)== m_nameToPathMap.end() || !m_xContent.is()) return nullptr; - - try { - const uno::Reference<sdbc::XResultSet> xResultSet=getResultSet(m_xContent); - if (xResultSet.is() && xResultSet->first()) + if (m_nameToPathMap.find(name)== m_nameToPathMap.end() || !m_xContent.is()) return nullptr; + + try { - const uno::Reference<ucb::XContentAccess> xContentAccess(xResultSet, uno::UNO_QUERY_THROW); - const uno::Reference<sdbc::XRow> xRow(xResultSet, uno::UNO_QUERY_THROW); - OUString lPath=m_nameToPathMap.find(name)->second; - do + const uno::Reference<sdbc::XResultSet> xResultSet=getResultSet(m_xContent); + if (xResultSet.is() && xResultSet->first()) { - const rtl::OUString aTitle(xRow->getString(1)); - if (aTitle != lPath) continue; - - const uno::Reference<ucb::XContent> xSubContent(xContentAccess->queryContent()); - ucbhelper::Content aSubContent(xSubContent, uno::Reference<ucb::XCommandEnvironment>(), comphelper::getProcessComponentContext()); - uno::Reference<io::XInputStream> xInputStream = aSubContent.openStream(); - if (xInputStream.is()) - return new writerperfect::WPXSvInputStream(xInputStream); - break; + const uno::Reference<ucb::XContentAccess> xContentAccess(xResultSet, uno::UNO_QUERY_THROW); + const uno::Reference<sdbc::XRow> xRow(xResultSet, uno::UNO_QUERY_THROW); + OUString lPath=m_nameToPathMap.find(name)->second; + do + { + const rtl::OUString aTitle(xRow->getString(1)); + if (aTitle != lPath) continue; + + const uno::Reference<ucb::XContent> xSubContent(xContentAccess->queryContent()); + ucbhelper::Content aSubContent(xSubContent, uno::Reference<ucb::XCommandEnvironment>(), comphelper::getProcessComponentContext()); + uno::Reference<io::XInputStream> xInputStream = aSubContent.openStream(); + if (xInputStream.is()) + return new writerperfect::WPXSvInputStream(xInputStream); + break; + } + while (xResultSet->next()); } - while (xResultSet->next()); } - } - catch (...) - { - SAL_WARN("writerperfect", "ignoring Exception in MSWorksCalcImportFilterInternal::FolderStream::getSubStreamByName"); - } + catch (...) + { + SAL_WARN("writerperfect", "ignoring Exception in MSWorksCalcImportFilterInternal::FolderStream::getSubStreamByName"); + } - return nullptr; -} + return nullptr; + } /** return a new stream for a ole zone */ librevenge::RVNGInputStream *getSubStreamById(unsigned id) override { commit c2447d0b6aeffe0c76a549467036df573642a303 Author: David Tardon <[email protected]> Date: Wed Jan 11 17:24:59 2017 +0100 honor lib version in import tests again Change-Id: Idf99aab4bc136ac4a8a07945001e4f34a34a0e17 diff --git a/writerperfect/Library_wpftqahelper.mk b/writerperfect/Library_wpftqahelper.mk index 86aa03a..59f4d05 100644 --- a/writerperfect/Library_wpftqahelper.mk +++ b/writerperfect/Library_wpftqahelper.mk @@ -28,6 +28,7 @@ $(eval $(call gb_Library_use_libraries,wpftqahelper,\ cppu \ sal \ test \ + tl \ ucbhelper \ unotest \ )) diff --git a/writerperfect/qa/unit/WpftFilterTestBase.cxx b/writerperfect/qa/unit/WpftFilterTestBase.cxx index a024334..dbb1ba2 100644 --- a/writerperfect/qa/unit/WpftFilterTestBase.cxx +++ b/writerperfect/qa/unit/WpftFilterTestBase.cxx @@ -11,6 +11,8 @@ #include <com/sun/star/document/XFilter.hpp> +#include <tools/urlobj.hxx> + #include "WpftLoader.hxx" namespace uno = com::sun::star::uno; @@ -31,6 +33,16 @@ WpftFilterTestBase::WpftFilterTestBase(const rtl::OUString &rFactoryURL) bool WpftFilterTestBase::load(const OUString &, const OUString &rURL, const OUString &, SfxFilterFlags, SotClipboardFormatId, unsigned int) { + + if (m_pOptionalMap) + { + // first check if this test file is supported by the used version of the library + const INetURLObject aUrl(rURL); + const WpftOptionalMap_t::const_iterator it(m_pOptionalMap->find(aUrl.getName())); + if ((it != m_pOptionalMap->end()) && !it->second) + return true; // skip the file + } + const WpftLoader aLoader(rURL, m_xFilter, m_aFactoryURL, m_xDesktop, m_xTypeMap, m_xContext); return aLoader.getDocument().is(); } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
