sfx2/source/control/templatelocalview.cxx |    4 +-
 sfx2/source/control/thumbnailview.cxx     |   42 ++++++++++++++++++++----------
 sfx2/source/control/thumbnailviewacc.cxx  |    2 -
 3 files changed, 31 insertions(+), 17 deletions(-)

New commits:
commit c5a8e0f1dc87ebba5a4ae79fdcdfbdd4aaebce87
Author: Rafael Dominguez <venccsra...@gmail.com>
Date:   Sun Apr 7 21:17:51 2013 -0430

    Fetch thumbnails position and id from filter array instead."
    
    Change-Id: I35bd8b47eeba3e2f8e2ea74afbf1fe8e48390bab
    Reviewed-on: https://gerrit.libreoffice.org/3299
    Reviewed-by: Miklos Vajna <vmik...@suse.cz>
    Tested-by: Miklos Vajna <vmik...@suse.cz>

diff --git a/sfx2/source/control/thumbnailview.cxx 
b/sfx2/source/control/thumbnailview.cxx
index a122080..d08173c 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -971,8 +971,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())
@@ -982,7 +994,8 @@ void ThumbnailView::RemoveItem( sal_uInt16 nItemId )
         }
 
         delete *it;
-        mItemList.erase( it );
+        mFilteredItemList.erase( it );
+        mpStartSelRange = mFilteredItemList.end();
     }
 
     // reset variables
@@ -1026,8 +1039,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;
         }
     }
@@ -1036,7 +1049,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
@@ -1073,11 +1086,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();
@@ -1156,11 +1169,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();
@@ -1175,7 +1188,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();
 }
 
@@ -1201,7 +1214,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 393bd9e..c89f1b0 100644
--- a/sfx2/source/control/thumbnailviewacc.cxx
+++ b/sfx2/source/control/thumbnailviewacc.cxx
@@ -350,7 +350,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 );
         }
     }
commit 15bef20d72eec275a238084994634a5cc262a354
Author: Rafael Dominguez <venccsra...@gmail.com>
Date:   Sun Apr 7 21:16:55 2013 -0430

    Update template item path when moving it to another folder.
    
    Change-Id: I4de701e32dfe1244ba29704633d7d15f829a9e7a
    Reviewed-on: https://gerrit.libreoffice.org/3298
    Reviewed-by: Miklos Vajna <vmik...@suse.cz>
    Tested-by: Miklos Vajna <vmik...@suse.cz>

diff --git a/sfx2/source/control/templatelocalview.cxx 
b/sfx2/source/control/templatelocalview.cxx
index 6dd82df..a4437c3 100644
--- a/sfx2/source/control/templatelocalview.cxx
+++ b/sfx2/source/control/templatelocalview.cxx
@@ -398,7 +398,7 @@ bool TemplateLocalView::moveTemplate (const 
ThumbnailViewItem *pItem, const sal_
         aTemplateItem.nDocId = nTargetIdx;
         aTemplateItem.nRegionId = nTargetRegion;
         aTemplateItem.aName = pViewItem->maTitle;
-        aTemplateItem.aPath = pViewItem->getPath();
+        aTemplateItem.aPath = 
mpDocTemplates->GetPath(nTargetRegion,nTargetIdx);
         aTemplateItem.aThumbnail = pViewItem->maPreview1;
 
         pTarget->maTemplates.push_back(aTemplateItem);
@@ -495,7 +495,7 @@ bool TemplateLocalView::moveTemplates(const std::set<const 
ThumbnailViewItem*, s
             aTemplateItem.nDocId = nTargetIdx;
             aTemplateItem.nRegionId = nTargetRegion;
             aTemplateItem.aName = pViewItem->maTitle;
-            aTemplateItem.aPath = pViewItem->getPath();
+            aTemplateItem.aPath = 
mpDocTemplates->GetPath(nTargetRegion,nTargetIdx);
             aTemplateItem.aThumbnail = pViewItem->maPreview1;
 
             pTarget->maTemplates.push_back(aTemplateItem);
commit 35dc1e6bdcd912c074ef99d695618a5317d8b0be
Author: Rafael Dominguez <venccsra...@gmail.com>
Date:   Sun Apr 7 18:08:24 2013 -0430

    Mark thumbnailview item as unselected when updating filter.
    
    Change-Id: Ifc98603045364419a6f76316fea96c2e668c333e
    Reviewed-on: https://gerrit.libreoffice.org/3297
    Reviewed-by: Miklos Vajna <vmik...@suse.cz>
    Tested-by: Miklos Vajna <vmik...@suse.cz>

diff --git a/sfx2/source/control/thumbnailview.cxx 
b/sfx2/source/control/thumbnailview.cxx
index 8d03d5a..a122080 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -1253,6 +1253,7 @@ void ThumbnailView::filterItems (const 
boost::function<bool (const ThumbnailView
                 }
 
                 pItem->show(false);
+                pItem->setSelection(false);
 
                 maItemStateHdl.Call(pItem);
             }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to