Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
17e68606
Kaydet (Commit)
17e68606
authored
Eki 13, 2014
tarafından
Caolán McNamara
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
fdo#84872 give each SheetDataContext a new FormulaParser
Change-Id: I120a9d0943db38571892defe1b5d3169158e3e42
üst
b1e9163b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
16 additions
and
7 deletions
+16
-7
sheetdatacontext.hxx
sc/source/filter/inc/sheetdatacontext.hxx
+1
-1
workbookhelper.hxx
sc/source/filter/inc/workbookhelper.hxx
+3
-1
sheetdatacontext.cxx
sc/source/filter/oox/sheetdatacontext.cxx
+3
-3
workbookhelper.cxx
sc/source/filter/oox/workbookhelper.cxx
+9
-2
No files found.
sc/source/filter/inc/sheetdatacontext.hxx
Dosyayı görüntüle @
17e68606
...
@@ -36,7 +36,7 @@ namespace xls {
...
@@ -36,7 +36,7 @@ namespace xls {
struct
SheetDataContextBase
struct
SheetDataContextBase
{
{
AddressConverter
&
mrAddressConv
;
/// The address converter.
AddressConverter
&
mrAddressConv
;
/// The address converter.
FormulaParser
&
mrFormulaParser
;
/// The formula parser.
std
::
unique_ptr
<
FormulaParser
>
mxFormulaParser
;
/// The formula parser, different one for each SheetDataContext
SheetDataBuffer
&
mrSheetData
;
/// The sheet data buffer for cell content and formatting.
SheetDataBuffer
&
mrSheetData
;
/// The sheet data buffer for cell content and formatting.
CellModel
maCellData
;
/// Position, contents, formatting of current imported cell.
CellModel
maCellData
;
/// Position, contents, formatting of current imported cell.
CellFormulaModel
maFmlaData
;
/// Settings for a cell formula.
CellFormulaModel
maFmlaData
;
/// Settings for a cell formula.
...
...
sc/source/filter/inc/workbookhelper.hxx
Dosyayı görüntüle @
17e68606
...
@@ -244,8 +244,10 @@ public:
...
@@ -244,8 +244,10 @@ public:
// converters -------------------------------------------------------------
// converters -------------------------------------------------------------
/** Returns
the
import formula parser (import filter only!). */
/** Returns
a shared
import formula parser (import filter only!). */
FormulaParser
&
getFormulaParser
()
const
;
FormulaParser
&
getFormulaParser
()
const
;
/** Returns an unshared import formula parser (import filter only!). */
FormulaParser
*
createFormulaParser
()
const
;
/** Returns the measurement unit converter. */
/** Returns the measurement unit converter. */
UnitConverter
&
getUnitConverter
()
const
;
UnitConverter
&
getUnitConverter
()
const
;
/** Returns the converter for string to cell address/range conversion. */
/** Returns the converter for string to cell address/range conversion. */
...
...
sc/source/filter/oox/sheetdatacontext.cxx
Dosyayı görüntüle @
17e68606
...
@@ -64,10 +64,10 @@ const sal_uInt8 BIFF12_ROW_SHOWPHONETIC = 0x01;
...
@@ -64,10 +64,10 @@ const sal_uInt8 BIFF12_ROW_SHOWPHONETIC = 0x01;
SheetDataContextBase
::
SheetDataContextBase
(
const
WorksheetHelper
&
rHelper
)
:
SheetDataContextBase
::
SheetDataContextBase
(
const
WorksheetHelper
&
rHelper
)
:
mrAddressConv
(
rHelper
.
getAddressConverter
()
),
mrAddressConv
(
rHelper
.
getAddressConverter
()
),
mrFormulaParser
(
rHelper
.
getFormulaParser
()
),
mrSheetData
(
rHelper
.
getSheetData
()
),
mrSheetData
(
rHelper
.
getSheetData
()
),
mnSheet
(
rHelper
.
getSheetIndex
()
)
mnSheet
(
rHelper
.
getSheetIndex
()
)
{
{
mxFormulaParser
.
reset
(
rHelper
.
createFormulaParser
());
}
}
SheetDataContextBase
::~
SheetDataContextBase
()
SheetDataContextBase
::~
SheetDataContextBase
()
...
@@ -426,7 +426,7 @@ bool SheetDataContext::readCellHeader( SequenceInputStream& rStrm, CellType eCel
...
@@ -426,7 +426,7 @@ bool SheetDataContext::readCellHeader( SequenceInputStream& rStrm, CellType eCel
ApiTokenSequence
SheetDataContext
::
readCellFormula
(
SequenceInputStream
&
rStrm
)
ApiTokenSequence
SheetDataContext
::
readCellFormula
(
SequenceInputStream
&
rStrm
)
{
{
rStrm
.
skip
(
2
);
rStrm
.
skip
(
2
);
return
m
rFormulaParser
.
importFormula
(
maCellData
.
maCellAddr
,
FORMULATYPE_CELL
,
rStrm
);
return
m
xFormulaParser
->
importFormula
(
maCellData
.
maCellAddr
,
FORMULATYPE_CELL
,
rStrm
);
}
}
bool
SheetDataContext
::
readFormulaRef
(
SequenceInputStream
&
rStrm
)
bool
SheetDataContext
::
readFormulaRef
(
SequenceInputStream
&
rStrm
)
...
@@ -536,7 +536,7 @@ void SheetDataContext::importArray( SequenceInputStream& rStrm )
...
@@ -536,7 +536,7 @@ void SheetDataContext::importArray( SequenceInputStream& rStrm )
if
(
readFormulaRef
(
rStrm
)
&&
maFmlaData
.
isValidArrayRef
(
maCellData
.
maCellAddr
)
)
if
(
readFormulaRef
(
rStrm
)
&&
maFmlaData
.
isValidArrayRef
(
maCellData
.
maCellAddr
)
)
{
{
rStrm
.
skip
(
1
);
rStrm
.
skip
(
1
);
ApiTokenSequence
aTokens
=
m
rFormulaParser
.
importFormula
(
maCellData
.
maCellAddr
,
FORMULATYPE_ARRAY
,
rStrm
);
ApiTokenSequence
aTokens
=
m
xFormulaParser
->
importFormula
(
maCellData
.
maCellAddr
,
FORMULATYPE_ARRAY
,
rStrm
);
mrSheetData
.
createArrayFormula
(
maFmlaData
.
maFormulaRef
,
aTokens
);
mrSheetData
.
createArrayFormula
(
maFmlaData
.
maFormulaRef
,
aTokens
);
}
}
}
}
...
...
sc/source/filter/oox/workbookhelper.cxx
Dosyayı görüntüle @
17e68606
...
@@ -202,8 +202,10 @@ public:
...
@@ -202,8 +202,10 @@ public:
// converters -------------------------------------------------------------
// converters -------------------------------------------------------------
/** Returns
the
import formula parser. */
/** Returns
a shared
import formula parser. */
inline
FormulaParser
&
getFormulaParser
()
const
{
return
*
mxFmlaParser
;
}
inline
FormulaParser
&
getFormulaParser
()
const
{
return
*
mxFmlaParser
;
}
/** Returns an unshared import formula parser. */
inline
FormulaParser
*
createFormulaParser
()
{
return
new
FormulaParser
(
*
this
);
}
/** Returns the measurement unit converter. */
/** Returns the measurement unit converter. */
inline
UnitConverter
&
getUnitConverter
()
const
{
return
*
mxUnitConverter
;
}
inline
UnitConverter
&
getUnitConverter
()
const
{
return
*
mxUnitConverter
;
}
/** Returns the converter for string to cell address/range conversion. */
/** Returns the converter for string to cell address/range conversion. */
...
@@ -590,7 +592,7 @@ void WorkbookGlobals::initialize( bool bWorkbookFile )
...
@@ -590,7 +592,7 @@ void WorkbookGlobals::initialize( bool bWorkbookFile )
mpDoc
->
EnableExecuteLink
(
false
);
mpDoc
->
EnableExecuteLink
(
false
);
mxProgressBar
.
reset
(
new
SegmentProgressBar
(
mrBaseFilter
.
getStatusIndicator
(),
ScGlobal
::
GetRscString
(
STR_LOAD_DOC
)
)
);
mxProgressBar
.
reset
(
new
SegmentProgressBar
(
mrBaseFilter
.
getStatusIndicator
(),
ScGlobal
::
GetRscString
(
STR_LOAD_DOC
)
)
);
mxFmlaParser
.
reset
(
new
FormulaParser
(
*
this
)
);
mxFmlaParser
.
reset
(
createFormulaParser
(
)
);
//prevent unnecessary broadcasts and "half way listeners" as
//prevent unnecessary broadcasts and "half way listeners" as
//is done in ScDocShell::BeforeXMLLoading() for ods
//is done in ScDocShell::BeforeXMLLoading() for ods
...
@@ -958,6 +960,11 @@ FormulaParser& WorkbookHelper::getFormulaParser() const
...
@@ -958,6 +960,11 @@ FormulaParser& WorkbookHelper::getFormulaParser() const
return
mrBookGlob
.
getFormulaParser
();
return
mrBookGlob
.
getFormulaParser
();
}
}
FormulaParser
*
WorkbookHelper
::
createFormulaParser
()
const
{
return
mrBookGlob
.
createFormulaParser
();
}
UnitConverter
&
WorkbookHelper
::
getUnitConverter
()
const
UnitConverter
&
WorkbookHelper
::
getUnitConverter
()
const
{
{
return
mrBookGlob
.
getUnitConverter
();
return
mrBookGlob
.
getUnitConverter
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment