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
aa11e7ba
Kaydet (Commit)
aa11e7ba
authored
Agu 14, 2012
tarafından
Noel Grandin
Kaydeden (comit)
Michael Stahl
Agu 16, 2012
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Convert maList in SdrMarkList from Container to std::vector
Change-Id: I1e975805a82dcf273cde8a9deba4a7e31dbd72b2
üst
7758eaf7
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
56 deletions
+44
-56
svdmark.hxx
svx/inc/svx/svdmark.hxx
+5
-6
svdmark.cxx
svx/source/svdraw/svdmark.cxx
+39
-50
No files found.
svx/inc/svx/svdmark.hxx
Dosyayı görüntüle @
aa11e7ba
...
...
@@ -31,7 +31,6 @@
#include <vector>
#include <tools/contnr.hxx>
#include <tools/string.hxx>
#include "svx/svxdllapi.h"
#include <svx/sdrobjectuser.hxx>
...
...
@@ -177,7 +176,7 @@ public:
class
SVX_DLLPUBLIC
SdrMarkList
{
protected
:
Container
maList
;
std
::
vector
<
SdrMark
*>
maList
;
String
maMarkName
;
String
maPointName
;
...
...
@@ -197,7 +196,7 @@ private:
public
:
SdrMarkList
()
:
maList
(
1024
,
64
,
64
),
:
maList
(),
mbPointNameOk
(
sal_False
),
mbGluePointNameOk
(
sal_False
),
mbNameOk
(
sal_False
),
...
...
@@ -206,7 +205,7 @@ public:
}
SdrMarkList
(
const
SdrMarkList
&
rLst
)
:
maList
(
1024
,
64
,
64
)
:
maList
()
{
*
this
=
rLst
;
}
...
...
@@ -225,12 +224,12 @@ public:
sal_uLong
GetMarkCount
()
const
{
return
maList
.
Count
();
return
maList
.
size
();
}
SdrMark
*
GetMark
(
sal_uLong
nNum
)
const
{
return
(
SdrMark
*
)(
maList
.
GetObject
(
nNum
))
;
return
maList
[
nNum
]
;
}
sal_uLong
FindObject
(
const
SdrObject
*
pObj
)
const
;
...
...
svx/source/svdraw/svdmark.cxx
Dosyayı görüntüle @
aa11e7ba
...
...
@@ -229,22 +229,10 @@ sal_Bool SdrMark::operator==(const SdrMark& rMark) const
////////////////////////////////////////////////////////////////////////////////////////////////////
class
ImpSdrMarkListSorter
:
public
ContainerSorter
static
bool
ImpSdrMarkListSorter
(
SdrMark
*
const
&
lhs
,
SdrMark
*
const
&
rhs
)
{
public
:
ImpSdrMarkListSorter
(
Container
&
rNewCont
)
:
ContainerSorter
(
rNewCont
)
{}
virtual
~
ImpSdrMarkListSorter
()
{}
virtual
int
Compare
(
const
void
*
pElem1
,
const
void
*
pElem2
)
const
;
};
int
ImpSdrMarkListSorter
::
Compare
(
const
void
*
pElem1
,
const
void
*
pElem2
)
const
{
SdrObject
*
pObj1
=
((
SdrMark
*
)
pElem1
)
->
GetMarkedSdrObj
();
SdrObject
*
pObj2
=
((
SdrMark
*
)
pElem2
)
->
GetMarkedSdrObj
();
SdrObject
*
pObj1
=
lhs
->
GetMarkedSdrObj
();
SdrObject
*
pObj2
=
rhs
->
GetMarkedSdrObj
();
SdrObjList
*
pOL1
=
(
pObj1
)
?
pObj1
->
GetObjList
()
:
0L
;
SdrObjList
*
pOL2
=
(
pObj2
)
?
pObj2
->
GetObjList
()
:
0L
;
...
...
@@ -256,11 +244,11 @@ int ImpSdrMarkListSorter::Compare(const void* pElem1, const void* pElem2) const
sal_uInt32
nObjOrd1
((
pObj1
)
?
pObj1
->
GetNavigationPosition
()
:
0
);
sal_uInt32
nObjOrd2
((
pObj2
)
?
pObj2
->
GetNavigationPosition
()
:
0
);
return
(
nObjOrd1
<
nObjOrd2
?
-
1
:
1
)
;
return
nObjOrd1
<
nObjOrd2
;
}
else
{
return
(
(
long
)
pOL1
<
(
long
)
pOL2
)
?
-
1
:
1
;
return
(
long
)
pOL1
<
(
long
)
pOL2
;
}
}
...
...
@@ -279,37 +267,37 @@ void SdrMarkList::ImpForceSort()
if
(
!
mbSorted
)
{
mbSorted
=
sal_True
;
sal_uLong
nAnz
=
maList
.
Count
();
sal_uLong
nAnz
=
maList
.
size
();
// remove invalid
if
(
nAnz
>
0
)
{
SdrMark
*
pAkt
=
(
SdrMark
*
)
maList
.
First
();
while
(
pAkt
)
for
(
std
::
vector
<
SdrMark
*>::
iterator
it
=
maList
.
begin
();
it
!=
maList
.
end
();
)
{
SdrMark
*
pAkt
=
*
it
;
if
(
pAkt
->
GetMarkedSdrObj
()
==
0
)
{
maList
.
Remove
(
);
it
=
maList
.
erase
(
it
);
delete
pAkt
;
}
pAkt
=
(
SdrMark
*
)
maList
.
Next
();
else
++
it
;
}
nAnz
=
maList
.
Count
();
nAnz
=
maList
.
size
();
}
if
(
nAnz
>
1
)
{
ImpSdrMarkListSorter
aSort
(
maList
);
aSort
.
DoSort
();
std
::
sort
(
maList
.
begin
(),
maList
.
end
(),
ImpSdrMarkListSorter
);
// remove duplicates
if
(
maList
.
Count
()
>
1
)
if
(
maList
.
size
()
>
1
)
{
SdrMark
*
pAkt
=
(
SdrMark
*
)
maList
.
Last
();
SdrMark
*
pCmp
=
(
SdrMark
*
)
maList
.
Prev
();
while
(
pCmp
)
SdrMark
*
pAkt
=
maList
.
back
();
int
i
=
maList
.
size
()
-
2
;
while
(
i
)
{
SdrMark
*
pCmp
=
maList
[
i
];
if
(
pAkt
->
GetMarkedSdrObj
()
==
pCmp
->
GetMarkedSdrObj
()
&&
pAkt
->
GetMarkedSdrObj
())
{
// Con1/Con2 Merging
...
...
@@ -320,7 +308,7 @@ void SdrMarkList::ImpForceSort()
pAkt
->
SetCon2
(
sal_True
);
// delete pCmp
maList
.
Remove
(
);
maList
.
erase
(
maList
.
begin
()
+
i
);
delete
pCmp
;
}
...
...
@@ -329,7 +317,7 @@ void SdrMarkList::ImpForceSort()
pAkt
=
pCmp
;
}
pCmp
=
(
SdrMark
*
)
maList
.
Prev
()
;
--
i
;
}
}
}
...
...
@@ -344,7 +332,7 @@ void SdrMarkList::Clear()
delete
pMark
;
}
maList
.
C
lear
();
maList
.
c
lear
();
SetNameDirty
();
}
...
...
@@ -356,7 +344,7 @@ void SdrMarkList::operator=(const SdrMarkList& rLst)
{
SdrMark
*
pMark
=
rLst
.
GetMark
(
i
);
SdrMark
*
pNeuMark
=
new
SdrMark
(
*
pMark
);
maList
.
Insert
(
pNeuMark
,
CONTAINER_APPEND
);
maList
.
push_back
(
pNeuMark
);
}
maMarkName
=
rLst
.
maMarkName
;
...
...
@@ -379,11 +367,11 @@ sal_uLong SdrMarkList::FindObject(const SdrObject* pObj) const
// is not inserted in a object list.
// Since this may be by purpose and necessary somewhere else i decided that it is
// less dangerous to change this method then changing SdrObject::GetOrdNum().
if
(
pObj
&&
maList
.
Count
())
if
(
pObj
&&
!
maList
.
empty
())
{
for
(
sal_uLong
a
(
0L
);
a
<
maList
.
Count
();
a
++
)
for
(
sal_uLong
a
(
0L
);
a
<
maList
.
size
();
a
++
)
{
if
(
((
SdrMark
*
)(
maList
.
GetObject
(
a
)))
->
GetMarkedSdrObj
()
==
pObj
)
if
(
maList
[
a
]
->
GetMarkedSdrObj
()
==
pObj
)
{
return
a
;
}
...
...
@@ -396,14 +384,14 @@ sal_uLong SdrMarkList::FindObject(const SdrObject* pObj) const
void
SdrMarkList
::
InsertEntry
(
const
SdrMark
&
rMark
,
sal_Bool
bChkSort
)
{
SetNameDirty
();
sal_uLong
nAnz
(
maList
.
Count
());
sal_uLong
nAnz
(
maList
.
size
());
if
(
!
bChkSort
||
!
mbSorted
||
nAnz
==
0
)
{
if
(
!
bChkSort
)
mbSorted
=
sal_False
;
maList
.
Insert
(
new
SdrMark
(
rMark
),
CONTAINER_APPEND
);
maList
.
push_back
(
new
SdrMark
(
rMark
)
);
}
else
{
...
...
@@ -424,7 +412,7 @@ void SdrMarkList::InsertEntry(const SdrMark& rMark, sal_Bool bChkSort)
else
{
SdrMark
*
pKopie
=
new
SdrMark
(
rMark
);
maList
.
Insert
(
pKopie
,
CONTAINER_APPEND
);
maList
.
push_back
(
pKopie
);
// now check if the sort is ok
const
SdrObjList
*
pLastOL
=
pLastObj
!=
0L
?
pLastObj
->
GetObjList
()
:
0L
;
...
...
@@ -459,7 +447,7 @@ void SdrMarkList::DeleteMark(sal_uLong nNum)
if
(
pMark
)
{
maList
.
Remove
(
nNum
);
maList
.
erase
(
maList
.
begin
()
+
nNum
);
delete
pMark
;
SetNameDirty
();
}
...
...
@@ -475,14 +463,14 @@ void SdrMarkList::ReplaceMark(const SdrMark& rNewMark, sal_uLong nNum)
delete
pMark
;
SetNameDirty
();
SdrMark
*
pKopie
=
new
SdrMark
(
rNewMark
);
maList
.
Replace
(
pKopie
,
nNum
)
;
maList
[
nNum
]
=
pKopie
;
mbSorted
=
sal_False
;
}
}
void
SdrMarkList
::
Merge
(
const
SdrMarkList
&
rSrcList
,
sal_Bool
bReverse
)
{
sal_uLong
nAnz
(
rSrcList
.
maList
.
Count
());
sal_uLong
nAnz
(
rSrcList
.
maList
.
size
());
if
(
rSrcList
.
mbSorted
)
{
...
...
@@ -494,7 +482,7 @@ void SdrMarkList::Merge(const SdrMarkList& rSrcList, sal_Bool bReverse)
{
for
(
sal_uLong
i
(
0L
);
i
<
nAnz
;
i
++
)
{
SdrMark
*
pM
=
(
SdrMark
*
)(
rSrcList
.
maList
.
GetObject
(
i
))
;
SdrMark
*
pM
=
rSrcList
.
maList
[
i
]
;
InsertEntry
(
*
pM
);
}
}
...
...
@@ -503,7 +491,7 @@ void SdrMarkList::Merge(const SdrMarkList& rSrcList, sal_Bool bReverse)
for
(
sal_uLong
i
(
nAnz
);
i
>
0
;)
{
i
--
;
SdrMark
*
pM
=
(
SdrMark
*
)(
rSrcList
.
maList
.
GetObject
(
i
))
;
SdrMark
*
pM
=
rSrcList
.
maList
[
i
]
;
InsertEntry
(
*
pM
);
}
}
...
...
@@ -513,18 +501,19 @@ sal_Bool SdrMarkList::DeletePageView(const SdrPageView& rPV)
{
sal_Bool
bChgd
(
sal_False
);
for
(
s
al_uLong
i
(
GetMarkCount
());
i
>
0
;
)
for
(
s
td
::
vector
<
SdrMark
*>::
iterator
it
=
maList
.
begin
();
it
!=
maList
.
end
()
;
)
{
i
--
;
SdrMark
*
pMark
=
GetMark
(
i
);
SdrMark
*
pMark
=
*
it
;
if
(
pMark
->
GetPageView
()
==&
rPV
)
{
maList
.
Remove
(
i
);
it
=
maList
.
erase
(
it
);
delete
pMark
;
SetNameDirty
();
bChgd
=
sal_True
;
}
else
++
it
;
}
return
bChgd
;
...
...
@@ -546,7 +535,7 @@ sal_Bool SdrMarkList::InsertPageView(const SdrPageView& rPV)
if
(
bDoIt
)
{
SdrMark
*
pM
=
new
SdrMark
(
pObj
,
(
SdrPageView
*
)
&
rPV
);
maList
.
Insert
(
pM
,
CONTAINER_APPEND
);
maList
.
push_back
(
pM
);
SetNameDirty
();
bChgd
=
sal_True
;
}
...
...
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