summaryrefslogtreecommitdiff
path: root/sc/source/filter/qpro/qpro.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/filter/qpro/qpro.cxx')
-rw-r--r--sc/source/filter/qpro/qpro.cxx27
1 files changed, 25 insertions, 2 deletions
diff --git a/sc/source/filter/qpro/qpro.cxx b/sc/source/filter/qpro/qpro.cxx
index 676c297900d6..5ac793a0efec 100644
--- a/sc/source/filter/qpro/qpro.cxx
+++ b/sc/source/filter/qpro/qpro.cxx
@@ -32,6 +32,8 @@
#include <document.hxx>
#include <formulacell.hxx>
#include <tools/stream.hxx>
+#include <docoptio.hxx>
+#include <scdll.hxx>
#include <memory>
ErrCode ScQProReader::readSheet( SCTAB nTab, ScDocument* pDoc, ScQProStyle *pStyle )
@@ -154,8 +156,7 @@ ScQProReader::~ScQProReader()
mpStream->SetBufferSize( 0 );
}
-
-ErrCode ScQProReader::import( ScDocument *pDoc )
+ErrCode ScQProReader::parse( ScDocument *pDoc )
{
ErrCode eRet = ERRCODE_NONE;
sal_uInt16 nVersion;
@@ -223,10 +224,32 @@ ErrCode ScQProReader::import( ScDocument *pDoc )
break;
}
}
+ return eRet;
+}
+
+ErrCode ScQProReader::import( ScDocument *pDoc )
+{
+ ErrCode eRet = parse(pDoc);
pDoc->CalcAfterLoad();
return eRet;
}
+extern "C" SAL_DLLPUBLIC_EXPORT bool TestImportQPW(SvStream &rStream)
+{
+ ScDLL::Init();
+ ScDocument aDocument;
+ ScDocOptions aDocOpt = aDocument.GetDocOptions();
+ aDocOpt.SetLookUpColRowNames(false);
+ aDocument.SetDocOptions(aDocOpt);
+ aDocument.MakeTable(0);
+ aDocument.EnableExecuteLink(false);
+ aDocument.SetInsertingFromOtherDoc(true);
+
+ ScQProReader aReader(&rStream);
+ ErrCode eRet = aReader.parse(&aDocument);
+ return eRet == ERRCODE_NONE;
+}
+
bool ScQProReader::recordsLeft()
{
return mpStream && mpStream->good();