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
b4d15361
Kaydet (Commit)
b4d15361
authored
Haz 01, 2011
tarafından
Kohei Yoshida
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
ScUserList and ScUserListData no longer dependent of ScCollection.
üst
3471d7ee
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
137 additions
and
96 deletions
+137
-96
userlist.hxx
sc/inc/userlist.hxx
+21
-11
table3.cxx
sc/source/core/data/table3.cxx
+2
-3
appoptio.cxx
sc/source/core/tool/appoptio.cxx
+4
-5
userlist.cxx
sc/source/core/tool/userlist.cxx
+77
-41
tpsort.cxx
sc/source/ui/dbgui/tpsort.cxx
+2
-2
tpsubt.cxx
sc/source/ui/dbgui/tpsubt.cxx
+3
-4
tpusrlst.hxx
sc/source/ui/inc/tpusrlst.hxx
+2
-2
tpusrlst.cxx
sc/source/ui/optdlg/tpusrlst.cxx
+16
-17
appluno.cxx
sc/source/ui/unoobj/appluno.cxx
+4
-5
dbfunc3.cxx
sc/source/ui/view/dbfunc3.cxx
+3
-3
gridwin2.cxx
sc/source/ui/view/gridwin2.cxx
+3
-3
No files found.
sc/inc/userlist.hxx
Dosyayı görüntüle @
b4d15361
...
...
@@ -31,14 +31,13 @@
#include <tools/stream.hxx>
#include "scdllapi.h"
#include "collect.hxx"
#include <boost/ptr_container/ptr_vector.hpp>
/**
* Stores individual user-defined sort list.
*/
class
SC_DLLPUBLIC
ScUserListData
:
public
ScDataObject
class
SC_DLLPUBLIC
ScUserListData
{
public
:
struct
SubStr
...
...
@@ -57,9 +56,7 @@ private:
public
:
ScUserListData
(
const
::
rtl
::
OUString
&
rStr
);
ScUserListData
(
const
ScUserListData
&
rData
);
virtual
~
ScUserListData
();
virtual
ScDataObject
*
Clone
()
const
{
return
new
ScUserListData
(
*
this
);
}
~
ScUserListData
();
const
::
rtl
::
OUString
&
GetString
()
const
{
return
aStr
;
}
void
SetString
(
const
::
rtl
::
OUString
&
rStr
);
...
...
@@ -73,22 +70,35 @@ public:
/**
* Collection of user-defined sort lists.
*/
class
SC_DLLPUBLIC
ScUserList
:
public
ScCollection
class
SC_DLLPUBLIC
ScUserList
{
typedef
::
boost
::
ptr_vector
<
ScUserListData
>
DataType
;
DataType
maData
;
public
:
ScUserList
(
sal_uInt16
nLim
=
4
,
sal_uInt16
nDel
=
4
)
;
ScUserList
(
const
ScUserList
&
rUserList
)
:
ScCollection
(
rUserList
)
{}
typedef
DataType
::
iterator
iterator
;
typedef
DataType
::
const_iterator
const_iterator
;
virtual
ScDataObject
*
Clone
()
const
;
ScUserList
();
ScUserList
(
const
ScUserList
&
r
);
ScUserListData
*
GetData
(
const
::
rtl
::
OUString
&
rSubStr
)
const
;
const
ScUserListData
*
GetData
(
const
::
rtl
::
OUString
&
rSubStr
)
const
;
/// If the list in rStr is already inserted
bool
HasEntry
(
const
::
rtl
::
OUString
&
rStr
)
const
;
ScUserListData
*
operator
[](
const
sal_uInt16
nIndex
)
const
;
const
ScUserListData
*
operator
[](
size_t
nIndex
)
const
;
ScUserListData
*
operator
[](
size_t
nIndex
);
ScUserList
&
operator
=
(
const
ScUserList
&
r
);
bool
operator
==
(
const
ScUserList
&
r
)
const
;
bool
operator
!=
(
const
ScUserList
&
r
)
const
;
iterator
begin
();
iterator
end
();
const_iterator
begin
()
const
;
const_iterator
end
()
const
;
void
clear
();
size_t
size
()
const
;
void
push_back
(
ScUserListData
*
p
);
void
erase
(
iterator
itr
);
};
#endif
...
...
sc/source/core/data/table3.cxx
Dosyayı görüntüle @
b4d15361
...
...
@@ -427,9 +427,8 @@ short ScTable::CompareCell( sal_uInt16 nSort,
if
(
bUserDef
)
{
ScUserListData
*
pData
=
static_cast
<
ScUserListData
*>
(
(
ScGlobal
::
GetUserList
()
->
At
(
aSortParam
.
nUserIndex
))
);
ScUserList
*
pList
=
ScGlobal
::
GetUserList
();
const
ScUserListData
*
pData
=
(
*
pList
)[
aSortParam
.
nUserIndex
];
if
(
pData
)
{
...
...
sc/source/core/tool/appoptio.cxx
Dosyayı görüntüle @
b4d15361
...
...
@@ -219,13 +219,12 @@ void lcl_SetSortList( const Any& rValue )
if
(
!
bDefault
)
{
aList
.
FreeAll
();
aList
.
clear
();
for
(
long
i
=
0
;
i
<
nCount
;
i
++
)
{
ScUserListData
*
pNew
=
new
ScUserListData
(
pArray
[
i
]
);
if
(
!
aList
.
Insert
(
pNew
)
)
delete
pNew
;
aList
.
push_back
(
pNew
);
}
}
...
...
@@ -238,10 +237,10 @@ void lcl_GetSortList( Any& rDest )
const
ScUserList
*
pUserList
=
ScGlobal
::
GetUserList
();
if
(
pUserList
)
{
long
nCount
=
pUserList
->
GetCount
();
size_t
nCount
=
pUserList
->
size
();
Sequence
<
OUString
>
aSeq
(
nCount
);
OUString
*
pArray
=
aSeq
.
getArray
();
for
(
long
i
=
0
;
i
<
nCount
;
i
++
)
for
(
size_t
i
=
0
;
i
<
nCount
;
++
i
)
pArray
[
i
]
=
(
*
pUserList
)[
sal
::
static_int_cast
<
sal_uInt16
>
(
i
)]
->
GetString
();
rDest
<<=
aSeq
;
}
...
...
sc/source/core/tool/userlist.cxx
Dosyayı görüntüle @
b4d15361
...
...
@@ -41,6 +41,8 @@
#include <unotools/calendarwrapper.hxx>
#include <unotools/transliterationwrapper.hxx>
#include <boost/bind.hpp>
using
::
rtl
::
OUString
;
namespace
{
...
...
@@ -108,7 +110,6 @@ ScUserListData::ScUserListData(const OUString& rStr) :
}
ScUserListData
::
ScUserListData
(
const
ScUserListData
&
rData
)
:
ScDataObject
(),
aStr
(
rData
.
aStr
)
{
InitTokens
();
...
...
@@ -212,8 +213,7 @@ StringCompare ScUserListData::ICompare(const OUString& rSubStr1, const OUString&
return
(
StringCompare
)
ScGlobal
::
GetpTransliteration
()
->
compareString
(
rSubStr1
,
rSubStr2
);
}
ScUserList
::
ScUserList
(
sal_uInt16
nLim
,
sal_uInt16
nDel
)
:
ScCollection
(
nLim
,
nDel
)
ScUserList
::
ScUserList
()
{
using
namespace
::
com
::
sun
::
star
;
...
...
@@ -250,9 +250,9 @@ ScUserList::ScUserList(sal_uInt16 nLim, sal_uInt16 nDel) :
sDayLong
+=
String
(
xCal
[
i
].
FullName
);
if
(
!
HasEntry
(
sDayShort
)
)
Insert
(
new
ScUserListData
(
sDayShort
));
maData
.
push_back
(
new
ScUserListData
(
sDayShort
));
if
(
!
HasEntry
(
sDayLong
)
)
Insert
(
new
ScUserListData
(
sDayLong
));
maData
.
push_back
(
new
ScUserListData
(
sDayLong
));
}
xCal
=
xCalendars
[
j
].
Months
;
...
...
@@ -272,58 +272,58 @@ ScUserList::ScUserList(sal_uInt16 nLim, sal_uInt16 nDel) :
sMonthLong
+=
String
(
xCal
[
i
].
FullName
);
if
(
!
HasEntry
(
sMonthShort
)
)
Insert
(
new
ScUserListData
(
sMonthShort
));
maData
.
push_back
(
new
ScUserListData
(
sMonthShort
));
if
(
!
HasEntry
(
sMonthLong
)
)
Insert
(
new
ScUserListData
(
sMonthLong
));
maData
.
push_back
(
new
ScUserListData
(
sMonthLong
));
}
}
}
ScDataObject
*
ScUserList
::
Clone
()
const
ScUserList
::
ScUserList
(
const
ScUserList
&
r
)
:
maData
(
r
.
maData
)
{}
const
ScUserListData
*
ScUserList
::
GetData
(
const
OUString
&
rSubStr
)
const
{
return
(
new
ScUserList
(
*
this
)
);
DataType
::
const_iterator
itr
=
maData
.
begin
(),
itrEnd
=
maData
.
end
();
for
(;
itr
!=
itrEnd
;
++
itr
)
{
sal_uInt16
nIndex
;
if
(
itr
->
GetSubIndex
(
rSubStr
,
nIndex
))
return
&
(
*
itr
);
}
return
NULL
;
}
ScUserListData
*
ScUserList
::
GetData
(
const
OUString
&
rSubStr
)
const
const
ScUserListData
*
ScUserList
::
operator
[](
size_t
nIndex
)
const
{
sal_uInt16
nIndex
;
sal_uInt16
i
=
0
;
for
(
i
=
0
;
i
<
nCount
;
i
++
)
if
(((
ScUserListData
*
)
pItems
[
i
])
->
GetSubIndex
(
rSubStr
,
nIndex
))
return
(
ScUserListData
*
)
pItems
[
i
];
return
NULL
;
return
&
maData
[
nIndex
];
}
ScUserListData
*
ScUserList
::
operator
[](
const
sal_uInt16
nIndex
)
const
ScUserListData
*
ScUserList
::
operator
[](
size_t
nIndex
)
{
return
(
ScUserListData
*
)
At
(
nIndex
)
;
return
&
maData
[
nIndex
]
;
}
ScUserList
&
ScUserList
::
operator
=
(
const
ScUserList
&
r
)
{
return
(
ScUserList
&
)
ScCollection
::
operator
=
(
r
);
maData
=
r
.
maData
;
return
*
this
;
}
bool
ScUserList
::
operator
==
(
const
ScUserList
&
r
)
const
{
bool
bEqual
=
(
nCount
==
r
.
nCount
);
if
(
size
()
!=
r
.
size
())
return
false
;
if
(
bEqual
)
DataType
::
const_iterator
itr1
=
maData
.
begin
(),
itr2
=
r
.
maData
.
begin
(),
itrEnd
=
maData
.
end
();
for
(;
itr1
!=
itrEnd
;
++
itr1
,
++
itr2
)
{
ScUserListData
*
pMyData
=
NULL
;
ScUserListData
*
pOtherData
=
NULL
;
for
(
sal_uInt16
i
=
0
;
i
<
nCount
&&
bEqual
;
i
++
)
{
pMyData
=
(
ScUserListData
*
)
At
(
i
);
pOtherData
=
(
ScUserListData
*
)
r
.
At
(
i
);
bEqual
=
((
pMyData
->
GetSubCount
()
==
pOtherData
->
GetSubCount
())
&&
(
pMyData
->
GetString
()
==
pOtherData
->
GetString
())
);
}
const
ScUserListData
&
v1
=
*
itr1
;
const
ScUserListData
&
v2
=
*
itr2
;
if
(
v1
.
GetString
()
!=
v2
.
GetString
()
||
v1
.
GetSubCount
()
!=
v2
.
GetSubCount
())
return
false
;
}
return
bEqual
;
return
true
;
}
bool
ScUserList
::
operator
!=
(
const
ScUserList
&
r
)
const
...
...
@@ -334,13 +334,49 @@ bool ScUserList::operator!=( const ScUserList& r ) const
bool
ScUserList
::
HasEntry
(
const
OUString
&
rStr
)
const
{
for
(
sal_uInt16
i
=
0
;
i
<
nCount
;
i
++
)
{
const
ScUserListData
*
pMyData
=
(
ScUserListData
*
)
At
(
i
);
if
(
pMyData
->
GetString
()
==
rStr
)
return
true
;
}
return
false
;
DataType
::
const_iterator
itr
=
::
std
::
find_if
(
maData
.
begin
(),
maData
.
end
(),
::
boost
::
bind
(
&
ScUserListData
::
GetString
,
_1
)
==
rStr
);
return
itr
!=
maData
.
end
();
}
ScUserList
::
iterator
ScUserList
::
begin
()
{
return
maData
.
begin
();
}
ScUserList
::
iterator
ScUserList
::
end
()
{
return
maData
.
end
();
}
ScUserList
::
const_iterator
ScUserList
::
begin
()
const
{
return
maData
.
begin
();
}
ScUserList
::
const_iterator
ScUserList
::
end
()
const
{
return
maData
.
end
();
}
void
ScUserList
::
clear
()
{
maData
.
clear
();
}
size_t
ScUserList
::
size
()
const
{
return
maData
.
size
();
}
void
ScUserList
::
push_back
(
ScUserListData
*
p
)
{
maData
.
push_back
(
p
);
}
void
ScUserList
::
erase
(
iterator
itr
)
{
maData
.
erase
(
itr
);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
sc/source/ui/dbgui/tpsort.cxx
Dosyayı görüntüle @
b4d15361
...
...
@@ -935,9 +935,9 @@ void ScTabPageSortOptions::FillUserSortListBox()
aLbSortUser
.
Clear
();
if
(
pUserLists
)
{
s
al_uInt16
nCount
=
pUserLists
->
GetCount
();
s
ize_t
nCount
=
pUserLists
->
size
();
if
(
nCount
>
0
)
for
(
s
al_uInt16
i
=
0
;
i
<
nCount
;
i
++
)
for
(
s
ize_t
i
=
0
;
i
<
nCount
;
++
i
)
aLbSortUser
.
InsertEntry
(
(
*
pUserLists
)[
i
]
->
GetString
()
);
}
}
...
...
sc/source/ui/dbgui/tpsubt.cxx
Dosyayı görüntüle @
b4d15361
...
...
@@ -617,10 +617,9 @@ void ScTpSubTotalOptions::FillUserSortListBox()
aLbUserDef
.
Clear
();
if
(
pUserLists
)
{
sal_uInt16
nCount
=
pUserLists
->
GetCount
();
if
(
nCount
>
0
)
for
(
sal_uInt16
i
=
0
;
i
<
nCount
;
i
++
)
aLbUserDef
.
InsertEntry
(
(
*
pUserLists
)[
i
]
->
GetString
()
);
size_t
nCount
=
pUserLists
->
size
();
for
(
size_t
i
=
0
;
i
<
nCount
;
++
i
)
aLbUserDef
.
InsertEntry
(
(
*
pUserLists
)[
i
]
->
GetString
()
);
}
}
...
...
sc/source/ui/inc/tpusrlst.hxx
Dosyayı görüntüle @
b4d15361
...
...
@@ -96,10 +96,10 @@ private:
private
:
void
Init
();
sal_uInt16
UpdateUserListBox
();
void
UpdateEntries
(
s
al_uInt16
nList
);
void
UpdateEntries
(
s
ize_t
nList
);
void
MakeListStr
(
String
&
rListStr
);
void
AddNewList
(
const
String
&
rEntriesStr
);
void
RemoveList
(
s
al_uInt16
nList
);
void
RemoveList
(
s
ize_t
nList
);
void
ModifyList
(
sal_uInt16
nSelList
,
const
String
&
rEntriesStr
);
void
CopyListFromArea
(
const
ScRefAddress
&
rStartPos
,
...
...
sc/source/ui/optdlg/tpusrlst.cxx
Dosyayı görüntüle @
b4d15361
...
...
@@ -289,17 +289,14 @@ sal_uInt16 ScTpUserLists::UpdateUserListBox()
//----------------------------------------------------------
s
al_uInt16
nCount
=
pUserLists
->
GetCount
();
s
ize_t
nCount
=
pUserLists
->
size
();
String
aEntry
;
if
(
nCount
>
0
)
for
(
size_t
i
=
0
;
i
<
nCount
;
++
i
)
{
for
(
sal_uInt16
i
=
0
;
i
<
nCount
;
i
++
)
{
aEntry
=
(
*
pUserLists
)[
i
]
->
GetString
();
OSL_ENSURE
(
aEntry
.
Len
()
>
0
,
"Empty UserList-entry :-/"
);
aLbLists
.
InsertEntry
(
aEntry
);
}
aEntry
=
(
*
pUserLists
)[
i
]
->
GetString
();
OSL_ENSURE
(
aEntry
.
Len
()
>
0
,
"Empty UserList-entry :-/"
);
aLbLists
.
InsertEntry
(
aEntry
);
}
return
nCount
;
...
...
@@ -307,15 +304,15 @@ sal_uInt16 ScTpUserLists::UpdateUserListBox()
// -----------------------------------------------------------------------
void
ScTpUserLists
::
UpdateEntries
(
s
al_uInt16
nList
)
void
ScTpUserLists
::
UpdateEntries
(
s
ize_t
nList
)
{
if
(
!
pUserLists
)
return
;
//----------------------------------------------------------
if
(
nList
<
pUserLists
->
GetCount
()
)
if
(
nList
<
pUserLists
->
size
()
)
{
ScUserListData
*
pList
=
(
*
pUserLists
)[
nList
];
const
ScUserListData
*
pList
=
(
*
pUserLists
)[
nList
];
sal_uInt16
nSubCount
=
pList
->
GetSubCount
();
String
aEntryListStr
;
...
...
@@ -393,10 +390,7 @@ void ScTpUserLists::AddNewList( const String& rEntriesStr )
MakeListStr
(
theEntriesStr
);
if
(
!
pUserLists
->
Insert
(
new
ScUserListData
(
theEntriesStr
)
)
)
{
OSL_FAIL
(
"Entry could not be inserted :-/"
);
}
pUserLists
->
push_back
(
new
ScUserListData
(
theEntriesStr
));
}
// -----------------------------------------------------------------------
...
...
@@ -509,9 +503,14 @@ void ScTpUserLists::ModifyList( sal_uInt16 nSelList,
// -----------------------------------------------------------------------
void
ScTpUserLists
::
RemoveList
(
s
al_uInt16
nList
)
void
ScTpUserLists
::
RemoveList
(
s
ize_t
nList
)
{
if
(
pUserLists
)
pUserLists
->
AtFree
(
nList
);
if
(
pUserLists
&&
nList
<
pUserLists
->
size
())
{
ScUserList
::
iterator
itr
=
pUserLists
->
begin
();
::
std
::
advance
(
itr
,
nList
);
pUserLists
->
erase
(
itr
);
}
}
//-----------------------------------------------------------------------
...
...
sc/source/ui/unoobj/appluno.cxx
Dosyayı görüntüle @
b4d15361
...
...
@@ -522,15 +522,14 @@ void SAL_CALL ScSpreadsheetSettings::setPropertyValue(
// es wird direkt die "lebende" Liste veraendert,
// mehr tut ScGlobal::SetUserList auch nicht
pUserList
->
FreeAll
();
// alle Eintraege raus
pUserList
->
clear
();
// alle Eintraege raus
sal_uInt16
nCount
=
(
sal_uInt16
)
aSeq
.
getLength
();
const
rtl
::
OUString
*
pAry
=
aSeq
.
getConstArray
();
for
(
sal_uInt16
i
=
0
;
i
<
nCount
;
i
++
)
{
String
aEntry
=
pAry
[
i
];
ScUserListData
*
pData
=
new
ScUserListData
(
aEntry
);
if
(
!
pUserList
->
Insert
(
pData
))
// hinten anhaengen
delete
pData
;
// sollte nicht vorkommen
pUserList
->
push_back
(
pData
);
}
bSaveApp
=
sal_True
;
// Liste wird mit den App-Optionen gespeichert
}
...
...
@@ -603,10 +602,10 @@ uno::Any SAL_CALL ScSpreadsheetSettings::getPropertyValue( const rtl::OUString&
ScUserList
*
pUserList
=
ScGlobal
::
GetUserList
();
if
(
pUserList
)
{
s
al_uInt16
nCount
=
pUserList
->
GetCount
();
s
ize_t
nCount
=
pUserList
->
size
();
uno
::
Sequence
<
rtl
::
OUString
>
aSeq
(
nCount
);
rtl
::
OUString
*
pAry
=
aSeq
.
getArray
();
for
(
s
al_uInt16
i
=
0
;
i
<
nCount
;
i
++
)
for
(
s
ize_t
i
=
0
;
i
<
nCount
;
++
i
)
{
String
aEntry
((
*
pUserList
)[
i
]
->
GetString
());
pAry
[
i
]
=
aEntry
;
...
...
sc/source/ui/view/dbfunc3.cxx
Dosyayı görüntüle @
b4d15361
...
...
@@ -1803,12 +1803,12 @@ bool ScDBFunc::DataPilotSort( const ScAddress& rPos, bool bAscending, sal_uInt16
return
false
;
{
s
al_uInt16
n
=
pUserList
->
GetCount
();
if
(
!
n
||
*
pUserListId
>=
n
)
s
ize_t
n
=
pUserList
->
size
();
if
(
!
n
||
*
pUserListId
>=
static_cast
<
sal_uInt16
>
(
n
)
)
return
false
;
}
ScUserListData
*
pData
=
static_cast
<
ScUserListData
*>
((
*
pUserList
)[
*
pUserListId
])
;
const
ScUserListData
*
pData
=
(
*
pUserList
)[
*
pUserListId
]
;
if
(
pData
)
{
sal_uInt16
n
=
pData
->
GetSubCount
();
...
...
sc/source/ui/view/gridwin2.cxx
Dosyayı görüntüle @
b4d15361
...
...
@@ -490,11 +490,11 @@ void ScGridWindow::DPLaunchFieldPopupMenu(
ScUserList
*
pUserList
=
ScGlobal
::
GetUserList
();
if
(
pUserList
)
{
s
al_uInt16
n
=
pUserList
->
GetCount
();
s
ize_t
n
=
pUserList
->
size
();
aUserSortNames
.
reserve
(
n
);
for
(
s
al_uInt16
i
=
0
;
i
<
n
;
++
i
)
for
(
s
ize_t
i
=
0
;
i
<
n
;
++
i
)
{
ScUserListData
*
pData
=
static_cast
<
ScUserListData
*>
((
*
pUserList
)[
i
])
;
const
ScUserListData
*
pData
=
(
*
pUserList
)[
i
]
;
aUserSortNames
.
push_back
(
pData
->
GetString
());
}
}
...
...
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