summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorRafael Dominguez <venccsralph@gmail.com>2013-04-07 21:17:51 -0430
committerRafael Dominguez <venccsralph@gmail.com>2013-04-09 10:40:07 -0430
commite93001816144dbc6edcbaffdb076c8a3d5cf05e1 (patch)
tree5c3888b479495eed3322cb8185681137502f1249 /sfx2
parentd14e60248e56e5811fca3828b527a2ef2180bf98 (diff)
Fetch thumbnails position and id from filter array instead.
Change-Id: I5d49bf90e9eab402f2c6e58ca46302e2a2c72c84
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/control/thumbnailview.cxx41
-rw-r--r--sfx2/source/control/thumbnailviewacc.cxx2
2 files changed, 28 insertions, 15 deletions
diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx
index fd4ae27919dd..f2643a632145 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -967,8 +967,20 @@ void ThumbnailView::RemoveItem( sal_uInt16 nItemId )
if ( nPos == THUMBNAILVIEW_ITEM_NOTFOUND )
return;
- if ( nPos < mItemList.size() ) {
- ValueItemList::iterator it = mItemList.begin();
+ if ( nPos < mFilteredItemList.size() ) {
+
+ // delete item from the thumbnail list
+ for (size_t i = 0, n = mItemList.size(); i < n; ++i)
+ {
+ if (mItemList[i]->mnId == nItemId)
+ {
+ mItemList.erase(mItemList.begin()+i);
+ break;
+ }
+ }
+
+ // delete item from the filter item list
+ ValueItemList::iterator it = mFilteredItemList.begin();
::std::advance( it, nPos );
if ((*it)->isSelected())
@@ -978,7 +990,8 @@ void ThumbnailView::RemoveItem( sal_uInt16 nItemId )
}
delete *it;
- mItemList.erase( it );
+ mFilteredItemList.erase( it );
+ mpStartSelRange = mFilteredItemList.end();
}
// reset variables
@@ -1022,8 +1035,8 @@ void ThumbnailView::updateItems (const std::vector<ThumbnailViewItem*> &items)
size_t ThumbnailView::GetItemPos( sal_uInt16 nItemId ) const
{
- for ( size_t i = 0, n = mItemList.size(); i < n; ++i ) {
- if ( mItemList[i]->mnId == nItemId ) {
+ for ( size_t i = 0, n = mFilteredItemList.size(); i < n; ++i ) {
+ if ( mFilteredItemList[i]->mnId == nItemId ) {
return i;
}
}
@@ -1032,7 +1045,7 @@ size_t ThumbnailView::GetItemPos( sal_uInt16 nItemId ) const
sal_uInt16 ThumbnailView::GetItemId( size_t nPos ) const
{
- return ( nPos < mItemList.size() ) ? mItemList[nPos]->mnId : 0 ;
+ return ( nPos < mFilteredItemList.size() ) ? mFilteredItemList[nPos]->mnId : 0 ;
}
sal_uInt16 ThumbnailView::GetItemId( const Point& rPos ) const
@@ -1069,11 +1082,11 @@ void ThumbnailView::SelectItem( sal_uInt16 nItemId )
if ( nItemPos == THUMBNAILVIEW_ITEM_NOTFOUND )
return;
- ThumbnailViewItem* pItem = mItemList[nItemPos];
+ ThumbnailViewItem* pItem = mFilteredItemList[nItemPos];
if (!pItem->isSelected())
{
- mItemList[nItemPos]->setSelection(true);
- maItemStateHdl.Call(mItemList[nItemPos]);
+ pItem->setSelection(true);
+ maItemStateHdl.Call(pItem);
if (IsReallyVisible() && IsUpdateMode())
Invalidate();
@@ -1134,11 +1147,11 @@ void ThumbnailView::DeselectItem( sal_uInt16 nItemId )
if ( nItemPos == THUMBNAILVIEW_ITEM_NOTFOUND )
return;
- ThumbnailViewItem* pItem = mItemList[nItemPos];
+ ThumbnailViewItem* pItem = mFilteredItemList[nItemPos];
if (pItem->isSelected())
{
- mItemList[nItemPos]->setSelection(false);
- maItemStateHdl.Call(mItemList[nItemPos]);
+ pItem->setSelection(false);
+ maItemStateHdl.Call(pItem);
if (IsReallyVisible() && IsUpdateMode())
Invalidate();
@@ -1153,7 +1166,7 @@ bool ThumbnailView::IsItemSelected( sal_uInt16 nItemId ) const
if ( nItemPos == THUMBNAILVIEW_ITEM_NOTFOUND )
return false;
- ThumbnailViewItem* pItem = mItemList[nItemPos];
+ ThumbnailViewItem* pItem = mFilteredItemList[nItemPos];
return pItem->isSelected();
}
@@ -1179,7 +1192,7 @@ OUString ThumbnailView::GetItemText( sal_uInt16 nItemId ) const
size_t nPos = GetItemPos( nItemId );
if ( nPos != THUMBNAILVIEW_ITEM_NOTFOUND )
- return mItemList[nPos]->maTitle;
+ return mFilteredItemList[nPos]->maTitle;
return OUString();
}
diff --git a/sfx2/source/control/thumbnailviewacc.cxx b/sfx2/source/control/thumbnailviewacc.cxx
index 2d21a5bc7f5a..fc4311536262 100644
--- a/sfx2/source/control/thumbnailviewacc.cxx
+++ b/sfx2/source/control/thumbnailviewacc.cxx
@@ -348,7 +348,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL ThumbnailViewAcc::getAcces
if( THUMBNAILVIEW_ITEM_NONEITEM != nItemPos )
{
- ThumbnailViewItem *const pItem = mpParent->mItemList[nItemPos];
+ ThumbnailViewItem *const pItem = mpParent->mFilteredItemList[nItemPos];
xRet = pItem->GetAccessible( mbIsTransientChildrenDisabled );
}
}