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
be1b3dae
Kaydet (Commit)
be1b3dae
authored
Mar 28, 2015
tarafından
Markus Mohrhard
Kaydeden (comit)
Markus Mohrhard
Mar 28, 2015
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
3D refs with more than one sheet should not set sheets deleted, tdf#90001
Change-Id: I501ad421c283ec6a1f2629aa424f4d4c32228516
üst
1efe5fe3
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
4 deletions
+36
-4
token.cxx
sc/source/core/tool/token.cxx
+36
-4
No files found.
sc/source/core/tool/token.cxx
Dosyayı görüntüle @
be1b3dae
...
...
@@ -3373,6 +3373,41 @@ bool adjustSingleRefOnInsertedTab( ScSingleRefData& rRef, SCTAB nInsPos, SCTAB n
return
false
;
}
bool
adjustDoubleRefOnDeleteTab
(
ScComplexRefData
&
rRef
,
SCTAB
nDelPos
,
SCTAB
nSheets
,
const
ScAddress
&
rOldPos
,
const
ScAddress
&
rNewPos
)
{
ScSingleRefData
&
rRef1
=
rRef
.
Ref1
;
ScSingleRefData
&
rRef2
=
rRef
.
Ref2
;
ScAddress
aStartPos
=
rRef1
.
toAbs
(
rOldPos
);
ScAddress
aEndPos
=
rRef2
.
toAbs
(
rOldPos
);
bool
bMoreThanOneTab
=
aStartPos
.
Tab
()
!=
aEndPos
.
Tab
();
bool
bModified
=
false
;
if
(
bMoreThanOneTab
&&
aStartPos
.
Tab
()
==
nDelPos
)
{
if
(
rRef1
.
IsTabRel
())
{
aStartPos
.
IncTab
(
nSheets
);
rRef1
.
SetAddress
(
aStartPos
,
rOldPos
);
}
bModified
=
true
;
}
else
{
bModified
=
adjustSingleRefOnDeletedTab
(
rRef1
,
nDelPos
,
nSheets
,
rOldPos
,
rNewPos
);
}
if
(
bMoreThanOneTab
&&
aEndPos
.
Tab
()
==
nDelPos
)
{
aEndPos
.
IncTab
(
-
nSheets
);
rRef2
.
SetAddress
(
aEndPos
,
rNewPos
);
bModified
=
true
;
}
else
{
bModified
|=
adjustSingleRefOnDeletedTab
(
rRef2
,
nDelPos
,
nSheets
,
rOldPos
,
rNewPos
);
}
return
bModified
;
}
}
sc
::
RefUpdateResult
ScTokenArray
::
AdjustReferenceOnDeletedTab
(
sc
::
RefUpdateDeleteTabContext
&
rCxt
,
const
ScAddress
&
rOldPos
)
...
...
@@ -3400,10 +3435,7 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceOnDeletedTab( sc::RefUpdateDele
{
formula
::
FormulaToken
*
pToken
=
*
p
;
ScComplexRefData
&
rRef
=
*
pToken
->
GetDoubleRef
();
if
(
adjustSingleRefOnDeletedTab
(
rRef
.
Ref1
,
rCxt
.
mnDeletePos
,
rCxt
.
mnSheets
,
rOldPos
,
aNewPos
))
aRes
.
mbReferenceModified
=
true
;
if
(
adjustSingleRefOnDeletedTab
(
rRef
.
Ref2
,
rCxt
.
mnDeletePos
,
rCxt
.
mnSheets
,
rOldPos
,
aNewPos
))
aRes
.
mbReferenceModified
=
true
;
aRes
.
mbReferenceModified
|=
adjustDoubleRefOnDeleteTab
(
rRef
,
rCxt
.
mnDeletePos
,
rCxt
.
mnSheets
,
rOldPos
,
aNewPos
);
}
break
;
case
svIndex
:
...
...
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