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
7a522da4
Kaydet (Commit)
7a522da4
authored
Haz 21, 2013
tarafından
Kohei Yoshida
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Add more calls to CellStorageModified() when it's called for.
Change-Id: Ib7a7abd82060b19f7911f1fef5ccccff5d850055
üst
33a417fc
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
70 additions
and
17 deletions
+70
-17
column.hxx
sc/inc/column.hxx
+2
-2
column.cxx
sc/source/core/data/column.cxx
+48
-9
column2.cxx
sc/source/core/data/column2.cxx
+15
-3
column3.cxx
sc/source/core/data/column3.cxx
+5
-3
No files found.
sc/inc/column.hxx
Dosyayı görüntüle @
7a522da4
...
@@ -464,7 +464,7 @@ private:
...
@@ -464,7 +464,7 @@ private:
sc
::
CellStoreType
::
iterator
GetPositionToInsert
(
const
sc
::
CellStoreType
::
iterator
&
it
,
SCROW
nRow
);
sc
::
CellStoreType
::
iterator
GetPositionToInsert
(
const
sc
::
CellStoreType
::
iterator
&
it
,
SCROW
nRow
);
void
ActivateNewFormulaCell
(
ScFormulaCell
*
pCell
);
void
ActivateNewFormulaCell
(
ScFormulaCell
*
pCell
);
void
BroadcastNewCell
(
SCROW
nRow
);
void
BroadcastNewCell
(
SCROW
nRow
);
void
UpdateScriptType
(
sc
::
CellTextAttr
&
rAttr
,
SCROW
nRow
);
bool
UpdateScriptType
(
sc
::
CellTextAttr
&
rAttr
,
SCROW
nRow
);
const
ScFormulaCell
*
FetchFormulaCell
(
SCROW
nRow
)
const
;
const
ScFormulaCell
*
FetchFormulaCell
(
SCROW
nRow
)
const
;
...
@@ -476,7 +476,7 @@ private:
...
@@ -476,7 +476,7 @@ private:
* Called whenever the state of cell array gets modified i.e. new cell
* Called whenever the state of cell array gets modified i.e. new cell
* insertion, cell removal or relocation, cell value update and so on.
* insertion, cell removal or relocation, cell value update and so on.
*
*
* Call this only from those methods where ma
Item
s is modified directly.
* Call this only from those methods where ma
Cell
s is modified directly.
*/
*/
void
CellStorageModified
();
void
CellStorageModified
();
...
...
sc/source/core/data/column.cxx
Dosyayı görüntüle @
7a522da4
...
@@ -1369,6 +1369,8 @@ void ScColumn::CopyStaticToDocument(SCROW nRow1, SCROW nRow2, ScColumn& rDestCol
...
@@ -1369,6 +1369,8 @@ void ScColumn::CopyStaticToDocument(SCROW nRow1, SCROW nRow2, ScColumn& rDestCol
if
(
bLastBlock
)
if
(
bLastBlock
)
break
;
break
;
}
}
rDestCol
.
CellStorageModified
();
}
}
void
ScColumn
::
CopyCellToDocument
(
SCROW
nSrcRow
,
SCROW
nDestRow
,
ScColumn
&
rDestCol
)
void
ScColumn
::
CopyCellToDocument
(
SCROW
nSrcRow
,
SCROW
nDestRow
,
ScColumn
&
rDestCol
)
...
@@ -1416,6 +1418,8 @@ void ScColumn::CopyCellToDocument( SCROW nSrcRow, SCROW nDestRow, ScColumn& rDes
...
@@ -1416,6 +1418,8 @@ void ScColumn::CopyCellToDocument( SCROW nSrcRow, SCROW nDestRow, ScColumn& rDes
rDestCol
.
maCellTextAttrs
.
set
(
nDestRow
,
maCellTextAttrs
.
get
<
sc
::
CellTextAttr
>
(
nSrcRow
));
rDestCol
.
maCellTextAttrs
.
set
(
nDestRow
,
maCellTextAttrs
.
get
<
sc
::
CellTextAttr
>
(
nSrcRow
));
else
else
rDestCol
.
maCellTextAttrs
.
set_empty
(
nDestRow
,
nDestRow
);
rDestCol
.
maCellTextAttrs
.
set_empty
(
nDestRow
,
nDestRow
);
rDestCol
.
CellStorageModified
();
}
}
namespace
{
namespace
{
...
@@ -1918,9 +1922,6 @@ void ScColumn::SwapCol(ScColumn& rCol)
...
@@ -1918,9 +1922,6 @@ void ScColumn::SwapCol(ScColumn& rCol)
maCells
.
swap
(
rCol
.
maCells
);
maCells
.
swap
(
rCol
.
maCells
);
maCellTextAttrs
.
swap
(
rCol
.
maCellTextAttrs
);
maCellTextAttrs
.
swap
(
rCol
.
maCellTextAttrs
);
CellStorageModified
();
rCol
.
CellStorageModified
();
ScAttrArray
*
pTempAttr
=
rCol
.
pAttrArray
;
ScAttrArray
*
pTempAttr
=
rCol
.
pAttrArray
;
rCol
.
pAttrArray
=
pAttrArray
;
rCol
.
pAttrArray
=
pAttrArray
;
pAttrArray
=
pTempAttr
;
pAttrArray
=
pTempAttr
;
...
@@ -1934,6 +1935,10 @@ void ScColumn::SwapCol(ScColumn& rCol)
...
@@ -1934,6 +1935,10 @@ void ScColumn::SwapCol(ScColumn& rCol)
// Reset column positions in formula cells.
// Reset column positions in formula cells.
resetColumnPosition
(
maCells
,
nCol
);
resetColumnPosition
(
maCells
,
nCol
);
resetColumnPosition
(
rCol
.
maCells
,
rCol
.
nCol
);
resetColumnPosition
(
rCol
.
maCells
,
rCol
.
nCol
);
CellStorageModified
();
rCol
.
CellStorageModified
();
}
}
void
ScColumn
::
MoveTo
(
SCROW
nStartRow
,
SCROW
nEndRow
,
ScColumn
&
rCol
)
void
ScColumn
::
MoveTo
(
SCROW
nStartRow
,
SCROW
nEndRow
,
ScColumn
&
rCol
)
...
@@ -2107,17 +2112,21 @@ class InsertTabUpdater
...
@@ -2107,17 +2112,21 @@ class InsertTabUpdater
SCTAB
mnTab
;
SCTAB
mnTab
;
SCTAB
mnInsPos
;
SCTAB
mnInsPos
;
SCTAB
mnNewSheets
;
SCTAB
mnNewSheets
;
bool
mbModified
;
public
:
public
:
InsertTabUpdater
(
sc
::
CellTextAttrStoreType
&
rTextAttrs
,
SCTAB
nTab
,
SCTAB
nInsPos
,
SCTAB
nNewSheets
)
:
InsertTabUpdater
(
sc
::
CellTextAttrStoreType
&
rTextAttrs
,
SCTAB
nTab
,
SCTAB
nInsPos
,
SCTAB
nNewSheets
)
:
mrTextAttrs
(
rTextAttrs
),
mrTextAttrs
(
rTextAttrs
),
miAttrPos
(
rTextAttrs
.
begin
()),
miAttrPos
(
rTextAttrs
.
begin
()),
mnTab
(
nTab
),
mnTab
(
nTab
),
mnInsPos
(
nInsPos
),
mnInsPos
(
nInsPos
),
mnNewSheets
(
nNewSheets
)
{}
mnNewSheets
(
nNewSheets
),
mbModified
(
false
)
{}
void
operator
()
(
size_t
/*nRow*/
,
ScFormulaCell
*
pCell
)
void
operator
()
(
size_t
/*nRow*/
,
ScFormulaCell
*
pCell
)
{
{
pCell
->
UpdateInsertTab
(
mnInsPos
,
mnNewSheets
);
pCell
->
UpdateInsertTab
(
mnInsPos
,
mnNewSheets
);
mbModified
=
true
;
}
}
void
operator
()
(
size_t
nRow
,
EditTextObject
*
pCell
)
void
operator
()
(
size_t
nRow
,
EditTextObject
*
pCell
)
...
@@ -2125,7 +2134,10 @@ public:
...
@@ -2125,7 +2134,10 @@ public:
editeng
::
FieldUpdater
aUpdater
=
pCell
->
GetFieldUpdater
();
editeng
::
FieldUpdater
aUpdater
=
pCell
->
GetFieldUpdater
();
aUpdater
.
updateTableFields
(
mnTab
);
aUpdater
.
updateTableFields
(
mnTab
);
miAttrPos
=
mrTextAttrs
.
set
(
miAttrPos
,
nRow
,
sc
::
CellTextAttr
());
miAttrPos
=
mrTextAttrs
.
set
(
miAttrPos
,
nRow
,
sc
::
CellTextAttr
());
mbModified
=
true
;
}
}
bool
isModified
()
const
{
return
mbModified
;
}
};
};
class
DeleteTabUpdater
class
DeleteTabUpdater
...
@@ -2136,6 +2148,7 @@ class DeleteTabUpdater
...
@@ -2136,6 +2148,7 @@ class DeleteTabUpdater
SCTAB
mnSheets
;
SCTAB
mnSheets
;
SCTAB
mnTab
;
SCTAB
mnTab
;
bool
mbIsMove
;
bool
mbIsMove
;
bool
mbModified
;
public
:
public
:
DeleteTabUpdater
(
sc
::
CellTextAttrStoreType
&
rTextAttrs
,
SCTAB
nDelPos
,
SCTAB
nSheets
,
SCTAB
nTab
,
bool
bIsMove
)
:
DeleteTabUpdater
(
sc
::
CellTextAttrStoreType
&
rTextAttrs
,
SCTAB
nDelPos
,
SCTAB
nSheets
,
SCTAB
nTab
,
bool
bIsMove
)
:
mrTextAttrs
(
rTextAttrs
),
mrTextAttrs
(
rTextAttrs
),
...
@@ -2143,11 +2156,13 @@ public:
...
@@ -2143,11 +2156,13 @@ public:
mnDelPos
(
nDelPos
),
mnDelPos
(
nDelPos
),
mnSheets
(
nSheets
),
mnSheets
(
nSheets
),
mnTab
(
nTab
),
mnTab
(
nTab
),
mbIsMove
(
bIsMove
)
{}
mbIsMove
(
bIsMove
),
mbModified
(
false
)
{}
void
operator
()
(
size_t
,
ScFormulaCell
*
pCell
)
void
operator
()
(
size_t
,
ScFormulaCell
*
pCell
)
{
{
pCell
->
UpdateDeleteTab
(
mnDelPos
,
mbIsMove
,
mnSheets
);
pCell
->
UpdateDeleteTab
(
mnDelPos
,
mbIsMove
,
mnSheets
);
mbModified
=
true
;
}
}
void
operator
()
(
size_t
nRow
,
EditTextObject
*
pCell
)
void
operator
()
(
size_t
nRow
,
EditTextObject
*
pCell
)
...
@@ -2155,7 +2170,10 @@ public:
...
@@ -2155,7 +2170,10 @@ public:
editeng
::
FieldUpdater
aUpdater
=
pCell
->
GetFieldUpdater
();
editeng
::
FieldUpdater
aUpdater
=
pCell
->
GetFieldUpdater
();
aUpdater
.
updateTableFields
(
mnTab
);
aUpdater
.
updateTableFields
(
mnTab
);
miAttrPos
=
mrTextAttrs
.
set
(
miAttrPos
,
nRow
,
sc
::
CellTextAttr
());
miAttrPos
=
mrTextAttrs
.
set
(
miAttrPos
,
nRow
,
sc
::
CellTextAttr
());
mbModified
=
true
;
}
}
bool
isModified
()
const
{
return
mbModified
;
}
};
};
class
InsertAbsTabUpdater
class
InsertAbsTabUpdater
...
@@ -2164,16 +2182,19 @@ class InsertAbsTabUpdater
...
@@ -2164,16 +2182,19 @@ class InsertAbsTabUpdater
sc
::
CellTextAttrStoreType
::
iterator
miAttrPos
;
sc
::
CellTextAttrStoreType
::
iterator
miAttrPos
;
SCTAB
mnTab
;
SCTAB
mnTab
;
SCTAB
mnNewPos
;
SCTAB
mnNewPos
;
bool
mbModified
;
public
:
public
:
InsertAbsTabUpdater
(
sc
::
CellTextAttrStoreType
&
rTextAttrs
,
SCTAB
nTab
,
SCTAB
nNewPos
)
:
InsertAbsTabUpdater
(
sc
::
CellTextAttrStoreType
&
rTextAttrs
,
SCTAB
nTab
,
SCTAB
nNewPos
)
:
mrTextAttrs
(
rTextAttrs
),
mrTextAttrs
(
rTextAttrs
),
miAttrPos
(
rTextAttrs
.
begin
()),
miAttrPos
(
rTextAttrs
.
begin
()),
mnTab
(
nTab
),
mnTab
(
nTab
),
mnNewPos
(
nNewPos
)
{}
mnNewPos
(
nNewPos
),
mbModified
(
false
)
{}
void
operator
()
(
size_t
/*nRow*/
,
ScFormulaCell
*
pCell
)
void
operator
()
(
size_t
/*nRow*/
,
ScFormulaCell
*
pCell
)
{
{
pCell
->
UpdateInsertTabAbs
(
mnNewPos
);
pCell
->
UpdateInsertTabAbs
(
mnNewPos
);
mbModified
=
true
;
}
}
void
operator
()
(
size_t
nRow
,
EditTextObject
*
pCell
)
void
operator
()
(
size_t
nRow
,
EditTextObject
*
pCell
)
...
@@ -2181,7 +2202,10 @@ public:
...
@@ -2181,7 +2202,10 @@ public:
editeng
::
FieldUpdater
aUpdater
=
pCell
->
GetFieldUpdater
();
editeng
::
FieldUpdater
aUpdater
=
pCell
->
GetFieldUpdater
();
aUpdater
.
updateTableFields
(
mnTab
);
aUpdater
.
updateTableFields
(
mnTab
);
miAttrPos
=
mrTextAttrs
.
set
(
miAttrPos
,
nRow
,
sc
::
CellTextAttr
());
miAttrPos
=
mrTextAttrs
.
set
(
miAttrPos
,
nRow
,
sc
::
CellTextAttr
());
mbModified
=
true
;
}
}
bool
isModified
()
const
{
return
mbModified
;
}
};
};
class
MoveTabUpdater
class
MoveTabUpdater
...
@@ -2191,17 +2215,20 @@ class MoveTabUpdater
...
@@ -2191,17 +2215,20 @@ class MoveTabUpdater
SCTAB
mnTab
;
SCTAB
mnTab
;
SCTAB
mnOldPos
;
SCTAB
mnOldPos
;
SCTAB
mnNewPos
;
SCTAB
mnNewPos
;
bool
mbModified
;
public
:
public
:
MoveTabUpdater
(
sc
::
CellTextAttrStoreType
&
rTextAttrs
,
SCTAB
nTab
,
SCTAB
nOldPos
,
SCTAB
nNewPos
)
:
MoveTabUpdater
(
sc
::
CellTextAttrStoreType
&
rTextAttrs
,
SCTAB
nTab
,
SCTAB
nOldPos
,
SCTAB
nNewPos
)
:
mrTextAttrs
(
rTextAttrs
),
mrTextAttrs
(
rTextAttrs
),
miAttrPos
(
rTextAttrs
.
begin
()),
miAttrPos
(
rTextAttrs
.
begin
()),
mnTab
(
nTab
),
mnTab
(
nTab
),
mnOldPos
(
nOldPos
),
mnOldPos
(
nOldPos
),
mnNewPos
(
nNewPos
)
{}
mnNewPos
(
nNewPos
),
mbModified
(
false
)
{}
void
operator
()
(
size_t
/*nRow*/
,
ScFormulaCell
*
pCell
)
void
operator
()
(
size_t
/*nRow*/
,
ScFormulaCell
*
pCell
)
{
{
pCell
->
UpdateMoveTab
(
mnOldPos
,
mnNewPos
,
mnTab
);
pCell
->
UpdateMoveTab
(
mnOldPos
,
mnNewPos
,
mnTab
);
mbModified
=
true
;
}
}
void
operator
()
(
size_t
nRow
,
EditTextObject
*
pCell
)
void
operator
()
(
size_t
nRow
,
EditTextObject
*
pCell
)
...
@@ -2209,14 +2236,18 @@ public:
...
@@ -2209,14 +2236,18 @@ public:
editeng
::
FieldUpdater
aUpdater
=
pCell
->
GetFieldUpdater
();
editeng
::
FieldUpdater
aUpdater
=
pCell
->
GetFieldUpdater
();
aUpdater
.
updateTableFields
(
mnTab
);
aUpdater
.
updateTableFields
(
mnTab
);
miAttrPos
=
mrTextAttrs
.
set
(
miAttrPos
,
nRow
,
sc
::
CellTextAttr
());
miAttrPos
=
mrTextAttrs
.
set
(
miAttrPos
,
nRow
,
sc
::
CellTextAttr
());
mbModified
=
true
;
}
}
bool
isModified
()
const
{
return
mbModified
;
}
};
};
class
UpdateCompileHandler
class
UpdateCompileHandler
{
{
bool
mbForceIfNameInUse
;
bool
mbForceIfNameInUse
:
1
;
public
:
public
:
UpdateCompileHandler
(
bool
bForceIfNameInUse
)
:
mbForceIfNameInUse
(
bForceIfNameInUse
)
{}
UpdateCompileHandler
(
bool
bForceIfNameInUse
)
:
mbForceIfNameInUse
(
bForceIfNameInUse
)
{}
void
operator
()
(
size_t
/*nRow*/
,
ScFormulaCell
*
pCell
)
void
operator
()
(
size_t
/*nRow*/
,
ScFormulaCell
*
pCell
)
{
{
...
@@ -2541,6 +2572,8 @@ void ScColumn::UpdateInsertTabOnlyCells(SCTAB nInsPos, SCTAB nNewSheets)
...
@@ -2541,6 +2572,8 @@ void ScColumn::UpdateInsertTabOnlyCells(SCTAB nInsPos, SCTAB nNewSheets)
{
{
InsertTabUpdater
aFunc
(
maCellTextAttrs
,
nTab
,
nInsPos
,
nNewSheets
);
InsertTabUpdater
aFunc
(
maCellTextAttrs
,
nTab
,
nInsPos
,
nNewSheets
);
sc
::
ProcessFormulaEditText
(
maCells
,
aFunc
);
sc
::
ProcessFormulaEditText
(
maCells
,
aFunc
);
if
(
aFunc
.
isModified
())
CellStorageModified
();
}
}
void
ScColumn
::
UpdateDeleteTab
(
SCTAB
nDelPos
,
bool
bIsMove
,
ScColumn
*
/*pRefUndo*/
,
SCTAB
nSheets
)
void
ScColumn
::
UpdateDeleteTab
(
SCTAB
nDelPos
,
bool
bIsMove
,
ScColumn
*
/*pRefUndo*/
,
SCTAB
nSheets
)
...
@@ -2553,12 +2586,16 @@ void ScColumn::UpdateDeleteTab(SCTAB nDelPos, bool bIsMove, ScColumn* /*pRefUndo
...
@@ -2553,12 +2586,16 @@ void ScColumn::UpdateDeleteTab(SCTAB nDelPos, bool bIsMove, ScColumn* /*pRefUndo
DeleteTabUpdater
aFunc
(
maCellTextAttrs
,
nDelPos
,
nSheets
,
nTab
,
bIsMove
);
DeleteTabUpdater
aFunc
(
maCellTextAttrs
,
nDelPos
,
nSheets
,
nTab
,
bIsMove
);
sc
::
ProcessFormulaEditText
(
maCells
,
aFunc
);
sc
::
ProcessFormulaEditText
(
maCells
,
aFunc
);
if
(
aFunc
.
isModified
())
CellStorageModified
();
}
}
void
ScColumn
::
UpdateInsertTabAbs
(
SCTAB
nNewPos
)
void
ScColumn
::
UpdateInsertTabAbs
(
SCTAB
nNewPos
)
{
{
InsertAbsTabUpdater
aFunc
(
maCellTextAttrs
,
nTab
,
nNewPos
);
InsertAbsTabUpdater
aFunc
(
maCellTextAttrs
,
nTab
,
nNewPos
);
sc
::
ProcessFormulaEditText
(
maCells
,
aFunc
);
sc
::
ProcessFormulaEditText
(
maCells
,
aFunc
);
if
(
aFunc
.
isModified
())
CellStorageModified
();
}
}
void
ScColumn
::
UpdateMoveTab
(
SCTAB
nOldPos
,
SCTAB
nNewPos
,
SCTAB
nTabNo
)
void
ScColumn
::
UpdateMoveTab
(
SCTAB
nOldPos
,
SCTAB
nNewPos
,
SCTAB
nTabNo
)
...
@@ -2568,6 +2605,8 @@ void ScColumn::UpdateMoveTab( SCTAB nOldPos, SCTAB nNewPos, SCTAB nTabNo )
...
@@ -2568,6 +2605,8 @@ void ScColumn::UpdateMoveTab( SCTAB nOldPos, SCTAB nNewPos, SCTAB nTabNo )
MoveTabUpdater
aFunc
(
maCellTextAttrs
,
nTab
,
nOldPos
,
nNewPos
);
MoveTabUpdater
aFunc
(
maCellTextAttrs
,
nTab
,
nOldPos
,
nNewPos
);
sc
::
ProcessFormulaEditText
(
maCells
,
aFunc
);
sc
::
ProcessFormulaEditText
(
maCells
,
aFunc
);
if
(
aFunc
.
isModified
())
CellStorageModified
();
}
}
...
...
sc/source/core/data/column2.cxx
Dosyayı görüntüle @
7a522da4
...
@@ -1621,6 +1621,7 @@ void ScColumn::ResetCellTextAttrs()
...
@@ -1621,6 +1621,7 @@ void ScColumn::ResetCellTextAttrs()
CellTextAttrInitializer
aFunc
;
CellTextAttrInitializer
aFunc
;
std
::
for_each
(
maCells
.
begin
(),
maCells
.
end
(),
aFunc
);
std
::
for_each
(
maCells
.
begin
(),
maCells
.
end
(),
aFunc
);
aFunc
.
swap
(
maCellTextAttrs
);
aFunc
.
swap
(
maCellTextAttrs
);
CellStorageModified
();
}
}
void
ScColumn
::
SwapCellTextAttrs
(
SCROW
nRow1
,
SCROW
nRow2
)
void
ScColumn
::
SwapCellTextAttrs
(
SCROW
nRow1
,
SCROW
nRow2
)
...
@@ -1670,6 +1671,8 @@ void ScColumn::SwapCellTextAttrs( SCROW nRow1, SCROW nRow2 )
...
@@ -1670,6 +1671,8 @@ void ScColumn::SwapCellTextAttrs( SCROW nRow1, SCROW nRow2 )
sc
::
CellTextAttr
aVal1
=
sc
::
celltextattr_block
::
at
(
*
it1
->
data
,
aPos1
.
second
);
// make a copy.
sc
::
CellTextAttr
aVal1
=
sc
::
celltextattr_block
::
at
(
*
it1
->
data
,
aPos1
.
second
);
// make a copy.
it1
=
maCellTextAttrs
.
set_empty
(
it1
,
nRow1
,
nRow1
);
it1
=
maCellTextAttrs
.
set_empty
(
it1
,
nRow1
,
nRow1
);
maCellTextAttrs
.
set
(
it1
,
nRow2
,
aVal1
);
maCellTextAttrs
.
set
(
it1
,
nRow2
,
aVal1
);
CellStorageModified
();
}
}
SvtBroadcaster
*
ScColumn
::
GetBroadcaster
(
SCROW
nRow
)
SvtBroadcaster
*
ScColumn
::
GetBroadcaster
(
SCROW
nRow
)
...
@@ -1710,6 +1713,7 @@ void ScColumn::SetTextWidth(SCROW nRow, sal_uInt16 nWidth)
...
@@ -1710,6 +1713,7 @@ void ScColumn::SetTextWidth(SCROW nRow, sal_uInt16 nWidth)
sc
::
CellTextAttr
aVal
=
maCellTextAttrs
.
get
<
sc
::
CellTextAttr
>
(
nRow
);
sc
::
CellTextAttr
aVal
=
maCellTextAttrs
.
get
<
sc
::
CellTextAttr
>
(
nRow
);
aVal
.
mnTextWidth
=
nWidth
;
aVal
.
mnTextWidth
=
nWidth
;
maCellTextAttrs
.
set
(
nRow
,
aVal
);
maCellTextAttrs
.
set
(
nRow
,
aVal
);
CellStorageModified
();
}
}
sal_uInt8
ScColumn
::
GetScriptType
(
SCROW
nRow
)
const
sal_uInt8
ScColumn
::
GetScriptType
(
SCROW
nRow
)
const
...
@@ -1733,7 +1737,7 @@ sal_uInt8 ScColumn::GetRangeScriptType(
...
@@ -1733,7 +1737,7 @@ sal_uInt8 ScColumn::GetRangeScriptType(
itPos
=
aRet
.
first
;
// Track the position of cell text attribute array.
itPos
=
aRet
.
first
;
// Track the position of cell text attribute array.
sal_uInt8
nScriptType
=
0
;
sal_uInt8
nScriptType
=
0
;
bool
bUpdated
=
false
;
if
(
itPos
->
type
==
sc
::
element_type_celltextattr
)
if
(
itPos
->
type
==
sc
::
element_type_celltextattr
)
{
{
sc
::
celltextattr_block
::
iterator
it
=
sc
::
celltextattr_block
::
begin
(
*
itPos
->
data
);
sc
::
celltextattr_block
::
iterator
it
=
sc
::
celltextattr_block
::
begin
(
*
itPos
->
data
);
...
@@ -1745,7 +1749,8 @@ sal_uInt8 ScColumn::GetRangeScriptType(
...
@@ -1745,7 +1749,8 @@ sal_uInt8 ScColumn::GetRangeScriptType(
return
nScriptType
;
return
nScriptType
;
sc
::
CellTextAttr
&
rVal
=
*
it
;
sc
::
CellTextAttr
&
rVal
=
*
it
;
UpdateScriptType
(
rVal
,
nRow
);
if
(
UpdateScriptType
(
rVal
,
nRow
))
bUpdated
=
true
;
nScriptType
|=
rVal
.
mnScriptType
;
nScriptType
|=
rVal
.
mnScriptType
;
}
}
}
}
...
@@ -1776,11 +1781,16 @@ sal_uInt8 ScColumn::GetRangeScriptType(
...
@@ -1776,11 +1781,16 @@ sal_uInt8 ScColumn::GetRangeScriptType(
return
nScriptType
;
return
nScriptType
;
sc
::
CellTextAttr
&
rVal
=
*
it
;
sc
::
CellTextAttr
&
rVal
=
*
it
;
UpdateScriptType
(
rVal
,
nRow
);
if
(
UpdateScriptType
(
rVal
,
nRow
))
bUpdated
=
true
;
nScriptType
|=
rVal
.
mnScriptType
;
nScriptType
|=
rVal
.
mnScriptType
;
}
}
}
}
if
(
bUpdated
)
CellStorageModified
();
return
nScriptType
;
return
nScriptType
;
}
}
...
@@ -1797,12 +1807,14 @@ void ScColumn::SetScriptType( SCROW nRow, sal_uInt8 nType )
...
@@ -1797,12 +1807,14 @@ void ScColumn::SetScriptType( SCROW nRow, sal_uInt8 nType )
sc
::
CellTextAttr
aVal
=
maCellTextAttrs
.
get
<
sc
::
CellTextAttr
>
(
nRow
);
sc
::
CellTextAttr
aVal
=
maCellTextAttrs
.
get
<
sc
::
CellTextAttr
>
(
nRow
);
aVal
.
mnScriptType
=
nType
;
aVal
.
mnScriptType
=
nType
;
maCellTextAttrs
.
set
(
nRow
,
aVal
);
maCellTextAttrs
.
set
(
nRow
,
aVal
);
CellStorageModified
();
}
}
else
else
{
{
sc
::
CellTextAttr
aVal
=
maCellTextAttrs
.
get
<
sc
::
CellTextAttr
>
(
nRow
);
sc
::
CellTextAttr
aVal
=
maCellTextAttrs
.
get
<
sc
::
CellTextAttr
>
(
nRow
);
aVal
.
mnScriptType
=
nType
;
aVal
.
mnScriptType
=
nType
;
maCellTextAttrs
.
set
(
nRow
,
aVal
);
maCellTextAttrs
.
set
(
nRow
,
aVal
);
CellStorageModified
();
}
}
}
}
...
...
sc/source/core/data/column3.cxx
Dosyayı görüntüle @
7a522da4
...
@@ -455,17 +455,17 @@ void ScColumn::BroadcastNewCell( SCROW nRow )
...
@@ -455,17 +455,17 @@ void ScColumn::BroadcastNewCell( SCROW nRow )
pDocument
->
Broadcast
(
aHint
);
pDocument
->
Broadcast
(
aHint
);
}
}
void
ScColumn
::
UpdateScriptType
(
sc
::
CellTextAttr
&
rAttr
,
SCROW
nRow
)
bool
ScColumn
::
UpdateScriptType
(
sc
::
CellTextAttr
&
rAttr
,
SCROW
nRow
)
{
{
if
(
rAttr
.
mnScriptType
!=
SC_SCRIPTTYPE_UNKNOWN
)
if
(
rAttr
.
mnScriptType
!=
SC_SCRIPTTYPE_UNKNOWN
)
// Already updated. Nothing to do.
// Already updated. Nothing to do.
return
;
return
false
;
// Script type not yet determined. Determine the real script
// Script type not yet determined. Determine the real script
// type, and store it.
// type, and store it.
const
ScPatternAttr
*
pPattern
=
GetPattern
(
nRow
);
const
ScPatternAttr
*
pPattern
=
GetPattern
(
nRow
);
if
(
!
pPattern
)
if
(
!
pPattern
)
return
;
return
false
;
ScRefCellValue
aCell
;
ScRefCellValue
aCell
;
ScAddress
aPos
(
nCol
,
nRow
,
nTab
);
ScAddress
aPos
(
nCol
,
nRow
,
nTab
);
...
@@ -490,6 +490,7 @@ void ScColumn::UpdateScriptType( sc::CellTextAttr& rAttr, SCROW nRow )
...
@@ -490,6 +490,7 @@ void ScColumn::UpdateScriptType( sc::CellTextAttr& rAttr, SCROW nRow )
// Store the real script type to the array.
// Store the real script type to the array.
rAttr
.
mnScriptType
=
pDocument
->
GetStringScriptType
(
aStr
);
rAttr
.
mnScriptType
=
pDocument
->
GetStringScriptType
(
aStr
);
return
true
;
}
}
namespace
{
namespace
{
...
@@ -1346,6 +1347,7 @@ void ScColumn::MixData(
...
@@ -1346,6 +1347,7 @@ void ScColumn::MixData(
sc
::
ParseAll
(
rSrcCol
.
maCells
.
begin
(),
rSrcCol
.
maCells
,
nRow1
,
nRow2
,
aFunc
,
aFunc
);
sc
::
ParseAll
(
rSrcCol
.
maCells
.
begin
(),
rSrcCol
.
maCells
,
nRow1
,
nRow2
,
aFunc
,
aFunc
);
aFunc
.
commit
(
p
);
aFunc
.
commit
(
p
);
CellStorageModified
();
}
}
...
...
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