Kaydet (Commit) e9300181 authored tarafından Rafael Dominguez's avatar Rafael Dominguez

Fetch thumbnails position and id from filter array instead.

Change-Id: I5d49bf90e9eab402f2c6e58ca46302e2a2c72c84
üst d14e6024
...@@ -967,8 +967,20 @@ void ThumbnailView::RemoveItem( sal_uInt16 nItemId ) ...@@ -967,8 +967,20 @@ void ThumbnailView::RemoveItem( sal_uInt16 nItemId )
if ( nPos == THUMBNAILVIEW_ITEM_NOTFOUND ) if ( nPos == THUMBNAILVIEW_ITEM_NOTFOUND )
return; return;
if ( nPos < mItemList.size() ) { if ( nPos < mFilteredItemList.size() ) {
ValueItemList::iterator it = mItemList.begin();
// 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 ); ::std::advance( it, nPos );
if ((*it)->isSelected()) if ((*it)->isSelected())
...@@ -978,7 +990,8 @@ void ThumbnailView::RemoveItem( sal_uInt16 nItemId ) ...@@ -978,7 +990,8 @@ void ThumbnailView::RemoveItem( sal_uInt16 nItemId )
} }
delete *it; delete *it;
mItemList.erase( it ); mFilteredItemList.erase( it );
mpStartSelRange = mFilteredItemList.end();
} }
// reset variables // reset variables
...@@ -1022,8 +1035,8 @@ void ThumbnailView::updateItems (const std::vector<ThumbnailViewItem*> &items) ...@@ -1022,8 +1035,8 @@ void ThumbnailView::updateItems (const std::vector<ThumbnailViewItem*> &items)
size_t ThumbnailView::GetItemPos( sal_uInt16 nItemId ) const size_t ThumbnailView::GetItemPos( sal_uInt16 nItemId ) const
{ {
for ( size_t i = 0, n = mItemList.size(); i < n; ++i ) { for ( size_t i = 0, n = mFilteredItemList.size(); i < n; ++i ) {
if ( mItemList[i]->mnId == nItemId ) { if ( mFilteredItemList[i]->mnId == nItemId ) {
return i; return i;
} }
} }
...@@ -1032,7 +1045,7 @@ size_t ThumbnailView::GetItemPos( sal_uInt16 nItemId ) const ...@@ -1032,7 +1045,7 @@ size_t ThumbnailView::GetItemPos( sal_uInt16 nItemId ) const
sal_uInt16 ThumbnailView::GetItemId( size_t nPos ) 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 sal_uInt16 ThumbnailView::GetItemId( const Point& rPos ) const
...@@ -1069,11 +1082,11 @@ void ThumbnailView::SelectItem( sal_uInt16 nItemId ) ...@@ -1069,11 +1082,11 @@ void ThumbnailView::SelectItem( sal_uInt16 nItemId )
if ( nItemPos == THUMBNAILVIEW_ITEM_NOTFOUND ) if ( nItemPos == THUMBNAILVIEW_ITEM_NOTFOUND )
return; return;
ThumbnailViewItem* pItem = mItemList[nItemPos]; ThumbnailViewItem* pItem = mFilteredItemList[nItemPos];
if (!pItem->isSelected()) if (!pItem->isSelected())
{ {
mItemList[nItemPos]->setSelection(true); pItem->setSelection(true);
maItemStateHdl.Call(mItemList[nItemPos]); maItemStateHdl.Call(pItem);
if (IsReallyVisible() && IsUpdateMode()) if (IsReallyVisible() && IsUpdateMode())
Invalidate(); Invalidate();
...@@ -1134,11 +1147,11 @@ void ThumbnailView::DeselectItem( sal_uInt16 nItemId ) ...@@ -1134,11 +1147,11 @@ void ThumbnailView::DeselectItem( sal_uInt16 nItemId )
if ( nItemPos == THUMBNAILVIEW_ITEM_NOTFOUND ) if ( nItemPos == THUMBNAILVIEW_ITEM_NOTFOUND )
return; return;
ThumbnailViewItem* pItem = mItemList[nItemPos]; ThumbnailViewItem* pItem = mFilteredItemList[nItemPos];
if (pItem->isSelected()) if (pItem->isSelected())
{ {
mItemList[nItemPos]->setSelection(false); pItem->setSelection(false);
maItemStateHdl.Call(mItemList[nItemPos]); maItemStateHdl.Call(pItem);
if (IsReallyVisible() && IsUpdateMode()) if (IsReallyVisible() && IsUpdateMode())
Invalidate(); Invalidate();
...@@ -1153,7 +1166,7 @@ bool ThumbnailView::IsItemSelected( sal_uInt16 nItemId ) const ...@@ -1153,7 +1166,7 @@ bool ThumbnailView::IsItemSelected( sal_uInt16 nItemId ) const
if ( nItemPos == THUMBNAILVIEW_ITEM_NOTFOUND ) if ( nItemPos == THUMBNAILVIEW_ITEM_NOTFOUND )
return false; return false;
ThumbnailViewItem* pItem = mItemList[nItemPos]; ThumbnailViewItem* pItem = mFilteredItemList[nItemPos];
return pItem->isSelected(); return pItem->isSelected();
} }
...@@ -1179,7 +1192,7 @@ OUString ThumbnailView::GetItemText( sal_uInt16 nItemId ) const ...@@ -1179,7 +1192,7 @@ OUString ThumbnailView::GetItemText( sal_uInt16 nItemId ) const
size_t nPos = GetItemPos( nItemId ); size_t nPos = GetItemPos( nItemId );
if ( nPos != THUMBNAILVIEW_ITEM_NOTFOUND ) if ( nPos != THUMBNAILVIEW_ITEM_NOTFOUND )
return mItemList[nPos]->maTitle; return mFilteredItemList[nPos]->maTitle;
return OUString(); return OUString();
} }
......
...@@ -348,7 +348,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL ThumbnailViewAcc::getAcces ...@@ -348,7 +348,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL ThumbnailViewAcc::getAcces
if( THUMBNAILVIEW_ITEM_NONEITEM != nItemPos ) if( THUMBNAILVIEW_ITEM_NONEITEM != nItemPos )
{ {
ThumbnailViewItem *const pItem = mpParent->mItemList[nItemPos]; ThumbnailViewItem *const pItem = mpParent->mFilteredItemList[nItemPos];
xRet = pItem->GetAccessible( mbIsTransientChildrenDisabled ); xRet = pItem->GetAccessible( mbIsTransientChildrenDisabled );
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment