summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/inc/tokenuno.hxx2
-rw-r--r--sc/source/filter/inc/workbookhelper.hxx6
-rw-r--r--sc/source/filter/inc/worksheethelper.hxx20
-rw-r--r--sc/source/filter/oox/defnamesbuffer.cxx2
-rw-r--r--sc/source/filter/oox/numberformatsbuffer.cxx2
-rw-r--r--sc/source/filter/oox/workbookhelper.cxx14
-rw-r--r--sc/source/filter/oox/worksheethelper.cxx27
-rw-r--r--sc/source/ui/unoobj/tokenuno.cxx2
8 files changed, 41 insertions, 34 deletions
diff --git a/sc/inc/tokenuno.hxx b/sc/inc/tokenuno.hxx
index a323b6297db5..4287405a6ad2 100644
--- a/sc/inc/tokenuno.hxx
+++ b/sc/inc/tokenuno.hxx
@@ -43,7 +43,7 @@ public:
ScTokenArray& rTokenArray,
const com::sun::star::uno::Sequence< com::sun::star::sheet::FormulaToken >& rSequence );
static SC_DLLPUBLIC bool ConvertToTokenSequence(
- ScDocument& rDoc,
+ const ScDocument& rDoc,
com::sun::star::uno::Sequence< com::sun::star::sheet::FormulaToken >& rSequence,
const ScTokenArray& rTokenArray );
};
diff --git a/sc/source/filter/inc/workbookhelper.hxx b/sc/source/filter/inc/workbookhelper.hxx
index 4db98ce9fe1f..a9056128dd8d 100644
--- a/sc/source/filter/inc/workbookhelper.hxx
+++ b/sc/source/filter/inc/workbookhelper.hxx
@@ -149,7 +149,11 @@ public:
void useInternalChartDataTable( bool bInternal );
// document model ---------------------------------------------------------
- ScDocument& getScDocument() const;
+ ScDocument& getScDocument();
+ const ScDocument& getScDocument() const;
+
+ ScDocumentImport& getDocImport();
+
ScEditEngineDefaulter& getEditEngine() const;
/** Returns a reference to the source/target spreadsheet document model. */
::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSpreadsheetDocument >
diff --git a/sc/source/filter/inc/worksheethelper.hxx b/sc/source/filter/inc/worksheethelper.hxx
index 270cafea9301..8cda8768c291 100644
--- a/sc/source/filter/inc/worksheethelper.hxx
+++ b/sc/source/filter/inc/worksheethelper.hxx
@@ -281,23 +281,17 @@ public:
void setManualRowHeight( sal_Int32 nRow );
/** Inserts a value cell directly into the Calc sheet. */
- void putValue(
- const ::com::sun::star::table::CellAddress& rAddress,
- double fValue ) const;
+ void putValue( const com::sun::star::table::CellAddress& rAddress, double fValue );
/** Inserts a string cell directly into the Calc sheet. */
- void putString(
- const ::com::sun::star::table::CellAddress& rAddress,
- const OUString& rText ) const;
+ void putString( const com::sun::star::table::CellAddress& rAddress, const OUString& rText );
/** Inserts a rich-string cell directly into the Calc sheet. */
- void putRichString(
- const ::com::sun::star::table::CellAddress& rAddress,
- const RichString& rString,
- const Font* pFirstPortionFont ) const;
+ void putRichString(
+ const com::sun::star::table::CellAddress& rAddress,
+ const RichString& rString, const Font* pFirstPortionFont );
/** Inserts a formula cell directly into the Calc sheet. */
- void putFormulaTokens(
- const ::com::sun::star::table::CellAddress& rAddress,
- const ApiTokenSequence& rTokens ) const;
+ void putFormulaTokens(
+ const com::sun::star::table::CellAddress& rAddress, const ApiTokenSequence& rTokens );
/** Initial conversion before importing the worksheet. */
void initializeWorksheetImport();
diff --git a/sc/source/filter/oox/defnamesbuffer.cxx b/sc/source/filter/oox/defnamesbuffer.cxx
index 3c3dd09773a0..94203a852c7f 100644
--- a/sc/source/filter/oox/defnamesbuffer.cxx
+++ b/sc/source/filter/oox/defnamesbuffer.cxx
@@ -458,7 +458,7 @@ bool DefinedName::getAbsoluteRange( CellRangeAddress& orRange ) const
{
ScTokenArray* pTokenArray = mpScRangeData->GetCode();
Sequence< FormulaToken > aFTokenSeq;
- ScTokenConversion::ConvertToTokenSequence( this->getScDocument(), aFTokenSeq, *pTokenArray );
+ ScTokenConversion::ConvertToTokenSequence(getScDocument(), aFTokenSeq, *pTokenArray);
return getFormulaParser().extractCellRange( orRange, aFTokenSeq, false );
}
diff --git a/sc/source/filter/oox/numberformatsbuffer.cxx b/sc/source/filter/oox/numberformatsbuffer.cxx
index d6992f5c2330..2b6f271c5dc3 100644
--- a/sc/source/filter/oox/numberformatsbuffer.cxx
+++ b/sc/source/filter/oox/numberformatsbuffer.cxx
@@ -1936,7 +1936,7 @@ sal_Int32 NumberFormat::finalizeImport( const Reference< XNumberFormats >& rxNum
void NumberFormat::fillToItemSet( SfxItemSet& rItemSet, bool bSkipPoolDefs ) const
{
- ScDocument& rDoc = getScDocument();
+ const ScDocument& rDoc = getScDocument();
static sal_uLong nDflt = rDoc.GetFormatTable()->GetStandardFormat( ScGlobal::eLnge );
sal_uLong nScNumFmt = nDflt;
if ( maApiData.mnIndex )
diff --git a/sc/source/filter/oox/workbookhelper.cxx b/sc/source/filter/oox/workbookhelper.cxx
index f7fc22559009..496be44ea974 100644
--- a/sc/source/filter/oox/workbookhelper.cxx
+++ b/sc/source/filter/oox/workbookhelper.cxx
@@ -662,7 +662,7 @@ void WorkbookGlobals::finalize()
//stop preventing establishment of listeners as is done in
//ScDocShell::AfterXMLLoading() for ods
getScDocument().SetInsertingFromOtherDoc(false);
- getScDocument().RebuildFormulaGroups();
+ getDocImport().finalize();
if (mxCLKernelThread.is())
mxCLKernelThread->join();
@@ -755,11 +755,21 @@ void WorkbookHelper::finalizeWorkbookImport()
// document model -------------------------------------------------------------
-ScDocument& WorkbookHelper::getScDocument() const
+ScDocument& WorkbookHelper::getScDocument()
{
return mrBookGlob.getScDocument();
}
+const ScDocument& WorkbookHelper::getScDocument() const
+{
+ return mrBookGlob.getScDocument();
+}
+
+ScDocumentImport& WorkbookHelper::getDocImport()
+{
+ return mrBookGlob.getDocImport();
+}
+
ScEditEngineDefaulter& WorkbookHelper::getEditEngine() const
{
return mrBookGlob.getEditEngine();
diff --git a/sc/source/filter/oox/worksheethelper.cxx b/sc/source/filter/oox/worksheethelper.cxx
index ee8201f56e65..fe02efacb729 100644
--- a/sc/source/filter/oox/worksheethelper.cxx
+++ b/sc/source/filter/oox/worksheethelper.cxx
@@ -69,6 +69,7 @@
#include "editutil.hxx"
#include "tokenarray.hxx"
#include "tablebuffer.hxx"
+#include "documentimport.hxx"
#include <svl/stritem.hxx>
#include <editeng/editobj.hxx>
@@ -355,11 +356,11 @@ private:
typedef ::std::list< ValidationModel > ValidationModelList;
/** Inserts all imported hyperlinks into their cell ranges. */
- void finalizeHyperlinkRanges() const;
+ void finalizeHyperlinkRanges();
/** Generates the final URL for the passed hyperlink. */
OUString getHyperlinkUrl( const HyperlinkModel& rHyperlink ) const;
/** Inserts a hyperlinks into the specified cell. */
- void insertHyperlink( const CellAddress& rAddress, const OUString& rUrl ) const;
+ void insertHyperlink( const CellAddress& rAddress, const OUString& rUrl );
/** Inserts all imported data validations into their cell ranges. */
void finalizeValidationRanges() const;
@@ -977,7 +978,7 @@ void WorksheetGlobals::finalizeDrawingImport()
// private --------------------------------------------------------------------
-void WorksheetGlobals::finalizeHyperlinkRanges() const
+void WorksheetGlobals::finalizeHyperlinkRanges()
{
for( HyperlinkModelList::const_iterator aIt = maHyperlinks.begin(), aEnd = maHyperlinks.end(); aIt != aEnd; ++aIt )
{
@@ -1018,7 +1019,7 @@ OUString WorksheetGlobals::getHyperlinkUrl( const HyperlinkModel& rHyperlink ) c
return aUrl;
}
-void WorksheetGlobals::insertHyperlink( const CellAddress& rAddress, const OUString& rUrl ) const
+void WorksheetGlobals::insertHyperlink( const CellAddress& rAddress, const OUString& rUrl )
{
Reference< XCell > xCell = getCell( rAddress );
if( xCell.is() ) switch( xCell->getType() )
@@ -1544,11 +1545,11 @@ void WorksheetHelper::setRowModel( const RowModel& rModel )
mrSheetGlob.setRowModel( rModel );
}
-void WorksheetHelper::putValue( const CellAddress& rAddress, double fValue ) const
+void WorksheetHelper::putValue( const CellAddress& rAddress, double fValue )
{
ScAddress aAddress;
ScUnoConversion::FillScAddress( aAddress, rAddress );
- getScDocument().SetValue( aAddress.Col(), aAddress.Row(), aAddress.Tab(), fValue );
+ getDocImport().setNumericCell(aAddress, fValue);
}
void WorksheetHelper::setCellFormulaValue( const ::com::sun::star::table::CellAddress& rAddress,
@@ -1557,34 +1558,32 @@ void WorksheetHelper::setCellFormulaValue( const ::com::sun::star::table::CellAd
getFormulaBuffer().setCellFormulaValue( rAddress, fValue );
}
-void WorksheetHelper::putString( const CellAddress& rAddress, const OUString& rText ) const
+void WorksheetHelper::putString( const CellAddress& rAddress, const OUString& rText )
{
ScAddress aAddress;
ScUnoConversion::FillScAddress( aAddress, rAddress );
- ScDocument& rDoc = getScDocument();
if ( !rText.isEmpty() )
- rDoc.SetTextCell(aAddress, rText);
+ getDocImport().setStringCell(aAddress, rText);
}
-void WorksheetHelper::putRichString( const CellAddress& rAddress, const RichString& rString, const Font* pFirstPortionFont ) const
+void WorksheetHelper::putRichString( const CellAddress& rAddress, const RichString& rString, const Font* pFirstPortionFont )
{
- ScDocument& rDoc = getScDocument();
ScEditEngineDefaulter& rEE = getEditEngine();
// The cell will own the text object instance returned from convert().
ScAddress aAddress;
ScUnoConversion::FillScAddress( aAddress, rAddress );
- rDoc.SetEditText(aAddress, rString.convert(rEE, pFirstPortionFont));
+ getDocImport().setEditCell(aAddress, rString.convert(rEE, pFirstPortionFont));
}
-void WorksheetHelper::putFormulaTokens( const CellAddress& rAddress, const ApiTokenSequence& rTokens ) const
+void WorksheetHelper::putFormulaTokens( const CellAddress& rAddress, const ApiTokenSequence& rTokens )
{
ScDocument& rDoc = getScDocument();
ScTokenArray aTokenArray;
ScAddress aCellPos;
ScUnoConversion::FillScAddress( aCellPos, rAddress );
ScTokenConversion::ConvertToTokenArray( rDoc, aTokenArray, rTokens );
- rDoc.SetFormula(aCellPos, aTokenArray);
+ getDocImport().setFormulaCell(aCellPos, aTokenArray);
}
void WorksheetHelper::initializeWorksheetImport()
diff --git a/sc/source/ui/unoobj/tokenuno.cxx b/sc/source/ui/unoobj/tokenuno.cxx
index 16949817d0f9..ff1b41731b12 100644
--- a/sc/source/ui/unoobj/tokenuno.cxx
+++ b/sc/source/ui/unoobj/tokenuno.cxx
@@ -372,7 +372,7 @@ bool ScTokenConversion::ConvertToTokenArray( ScDocument& rDoc,
return !rTokenArray.Fill(rSequence,rDoc.GetExternalRefManager());
}
-bool ScTokenConversion::ConvertToTokenSequence( ScDocument& rDoc,
+bool ScTokenConversion::ConvertToTokenSequence( const ScDocument& rDoc,
uno::Sequence<sheet::FormulaToken>& rSequence, const ScTokenArray& rTokenArray )
{
bool bError = false;