Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/3033

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/33/3033/1

fdo#61390: allow arrow keys to show hidden thumbnail items

Change-Id: I70924b4c9578122a1c5a5b6c8a67889d6d003a2e
(cherry picked from commit cc599e914e7ade9f10da460fc1c77ea07454d7ff)
---
M sfx2/inc/sfx2/thumbnailview.hxx
M sfx2/source/control/thumbnailview.cxx
M sfx2/source/doc/templatedlg.cxx
3 files changed, 31 insertions(+), 3 deletions(-)



diff --git a/sfx2/inc/sfx2/thumbnailview.hxx b/sfx2/inc/sfx2/thumbnailview.hxx
index 95e6b53..9e29c9a 100644
--- a/sfx2/inc/sfx2/thumbnailview.hxx
+++ b/sfx2/inc/sfx2/thumbnailview.hxx
@@ -277,6 +277,7 @@
     using Window::ImplInit;
 
     void CalculateItemPositions ();
+    void MakeItemVisible( sal_uInt16 nId );
 
     SFX2_DLLPRIVATE void         ImplInit();
     SFX2_DLLPRIVATE void         ImplInitSettings( bool bFont, bool bForeground, bool bBackground 
);
diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx
index f78a308..08be7cb 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -553,11 +553,38 @@
             Control::KeyInput( rKEvt );
     }
 
-    if ( pNext && pNext->isVisible() )
+    if ( pNext )
     {
         deselectItems();
         SelectItem(pNext->mnId);
+        MakeItemVisible(pNext->mnId);
     }
+}
+
+void ThumbnailView::MakeItemVisible( sal_uInt16 nItemId )
+{
+    // Get the item row
+    size_t nPos = 0;
+    bool bFound = false;
+    for ( size_t i = 0; !bFound && i < mFilteredItemList.size(); ++i )
+    {
+        ThumbnailViewItem* pItem = mFilteredItemList[i];
+        if ( pItem->mnId == nItemId )
+        {
+            nPos = i;
+            bFound = true;
+        }
+    }
+    sal_uInt16 nRow = nPos / mnCols;
+
+    // Move the visible rows as little as possible to include that one
+    if ( nRow < mnFirstLine )
+        mnFirstLine = nRow;
+    else if ( nRow > mnFirstLine + mnVisLines )
+        mnFirstLine = nRow - mnVisLines;
+
+    CalculateItemPositions();
+    Invalidate();
 }
 
 void ThumbnailView::MouseButtonDown( const MouseEvent& rMEvt )
@@ -703,11 +730,11 @@
 
 void ThumbnailView::Resize()
 {
+    Control::Resize();
     CalculateItemPositions();
 
     if ( IsReallyVisible() && IsUpdateMode() )
         Invalidate();
-    Control::Resize();
 }
 
 void ThumbnailView::StateChanged( StateChangedType nType )
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index b9d3945..e5e4014 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -331,7 +331,7 @@
     Point aViewPos = maView->GetPosPixel();
     aViewPos.setY(nToolbarsHeight);
     aViewPos.setX(0);
-    Size aThumbSize(aWinSize.getWidth(), maTabControl.GetTabPageSizePixel().getWidth() - 
aViewPos.getY());
+    Size aThumbSize(aWinSize.getWidth(), maTabControl.GetTabPageSizePixel().getHeight() - 
aViewPos.getY());
     maView->SetPosSizePixel(aViewPos, aThumbSize);
 
     if (aWinSize.getHeight() < aViewPos.getY() + aThumbSize.getHeight() + PADDING_DLG_BORDER)

-- 
To view, visit https://gerrit.libreoffice.org/3033
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I70924b4c9578122a1c5a5b6c8a67889d6d003a2e
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Bosdonnat Cedric <cedric.bosdonnat@free.fr>


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.