diff options
author | Akshay Deep <akshaydeepiitr@gmail.com> | 2016-06-03 03:43:09 +0530 |
---|---|---|
committer | Akshay Deep <akshaydeepiitr@gmail.com> | 2016-06-04 00:06:23 +0000 |
commit | 90e3e04841081b9c03ea54f1d5ca439a7a9ce1dd (patch) | |
tree | 1430e7f73a87aaf5f1d963755387d092223931fb /sfx2 | |
parent | 5cc822b9be6b69cc5a03e92144620b25d7872775 (diff) |
tdf#100195 Enable Keyboard Navigation in Template Manager and Start Center
Reviewed-on: https://gerrit.libreoffice.org/25848
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Conflicts:
sfx2/source/control/templateabstractview.cxx
Change-Id: Ic5447a4af091a4e3dcab4d909fc6bfb9e559defb
Reviewed-on: https://gerrit.libreoffice.org/25881
Reviewed-by: Akshay Deep <akshaydeepiitr@gmail.com>
Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/control/templateabstractview.cxx | 14 | ||||
-rw-r--r-- | sfx2/source/control/templatelocalview.cxx | 4 | ||||
-rw-r--r-- | sfx2/source/control/templatesearchview.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/dialog/backingwindow.cxx | 21 | ||||
-rw-r--r-- | sfx2/source/doc/templatedlg.cxx | 4 |
5 files changed, 35 insertions, 10 deletions
diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx index acbc2d3d5f65..2d6409b5aa76 100644 --- a/sfx2/source/control/templateabstractview.cxx +++ b/sfx2/source/control/templateabstractview.cxx @@ -127,14 +127,21 @@ void TemplateAbstractView::insertItem(const TemplateItemProperties &rTemplate) Invalidate(); } -void TemplateAbstractView::insertItems(const std::vector<TemplateItemProperties> &rTemplates) +void TemplateAbstractView::insertItems(const std::vector<TemplateItemProperties> &rTemplates, bool isRegionSelected) { + mItemList.clear(); + std::vector<ThumbnailViewItem*> aItems(rTemplates.size()); for (size_t i = 0, n = rTemplates.size(); i < n; ++i ) { const TemplateItemProperties *pCur = &rTemplates[i]; - TemplateViewItem *pChild = new TemplateViewItem(*this, pCur->nId); + TemplateViewItem *pChild; + if(isRegionSelected) + pChild = new TemplateViewItem(*this, pCur->nId); + else + pChild = new TemplateViewItem(*this, i+1); + pChild->mnDocId = pCur->nDocId; pChild->mnRegionId = pCur->nRegionId; pChild->maTitle = pCur->aName; @@ -163,8 +170,11 @@ void TemplateAbstractView::updateThumbnailDimensions(long itemMaxSize) void TemplateAbstractView::MouseButtonDown( const MouseEvent& rMEvt ) { + GrabFocus(); + if (rMEvt.IsRight()) { + deselectItems(); size_t nPos = ImplGetItem(rMEvt.GetPosPixel()); Point aPosition (rMEvt.GetPosPixel()); maPosition = aPosition; diff --git a/sfx2/source/control/templatelocalview.cxx b/sfx2/source/control/templatelocalview.cxx index 6c826bf42f88..c2df6bf76182 100644 --- a/sfx2/source/control/templatelocalview.cxx +++ b/sfx2/source/control/templatelocalview.cxx @@ -143,7 +143,7 @@ void TemplateLocalView::showAllTemplates() mnCurRegionId = 0; maCurRegionName.clear(); - insertItems(maAllTemplates); + insertItems(maAllTemplates, false); maOpenRegionHdl.Call(nullptr); } @@ -586,7 +586,7 @@ bool TemplateLocalView::moveTemplates(const std::set<const ThumbnailViewItem*, s if (pPropIter->nDocId == pViewItem->mnDocId) { pPropIter = pSrc->maTemplates.erase(pPropIter); - aItemIds.push_back(pViewItem->mnId); + aItemIds.push_back(pViewItem->mnDocId + 1);//mnid } else { diff --git a/sfx2/source/control/templatesearchview.cxx b/sfx2/source/control/templatesearchview.cxx index 9f851715ad89..3075d4087a67 100644 --- a/sfx2/source/control/templatesearchview.cxx +++ b/sfx2/source/control/templatesearchview.cxx @@ -33,8 +33,10 @@ VCL_BUILDER_FACTORY(TemplateSearchView) void TemplateSearchView::MouseButtonDown( const MouseEvent& rMEvt ) { + GrabFocus(); if (rMEvt.IsRight()) { + deselectItems(); size_t nPos = ImplGetItem(rMEvt.GetPosPixel()); Point aPosition (rMEvt.GetPosPixel()); maPosition = aPosition; diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx index 5c81eb842c53..20e97a7ae2a9 100644 --- a/sfx2/source/dialog/backingwindow.cxx +++ b/sfx2/source/dialog/backingwindow.cxx @@ -392,7 +392,7 @@ bool BackingWindow::PreNotify( NotifyEvent& rNEvt ) { if( rKeyCode.IsShift() ) // Shift + F6 { - if( mpAllRecentThumbnails->HasFocus() ) + if( mpAllRecentThumbnails->HasFocus() || mpLocalView->HasFocus()) { mpOpenButton->GrabFocus(); return true; @@ -400,16 +400,29 @@ bool BackingWindow::PreNotify( NotifyEvent& rNEvt ) } else if ( rKeyCode.IsMod1() ) // Ctrl + F6 { - mpAllRecentThumbnails->GrabFocus(); - return true; + if(mpAllRecentThumbnails->IsVisible()) + { + mpAllRecentThumbnails->GrabFocus(); + return true; + } + else if(mpLocalView->IsVisible()) + { + mpLocalView->GrabFocus(); + return true; + } } else // F6 { - if( mpAllButtonsBox->HasChildPathFocus() ) + if(mpAllRecentThumbnails->IsVisible()) { mpAllRecentThumbnails->GrabFocus(); return true; } + else if(mpLocalView->IsVisible()) + { + mpLocalView->GrabFocus(); + return true; + } } } diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index 07811cf45f86..cf017880038e 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -830,7 +830,7 @@ IMPL_LINK_TYPED(SfxTemplateManagerDlg, DeleteTemplateHdl, ThumbnailViewItem*, pI TemplateViewItem *pViewItem = static_cast<TemplateViewItem*>(pItem); sal_uInt16 nRegionItemId = mpLocalView->getRegionId(pViewItem->mnRegionId); - if (!mpLocalView->removeTemplate((pViewItem)->mnId,nRegionItemId)) + if (!mpLocalView->removeTemplate((pViewItem)->mnDocId + 1, nRegionItemId))//mnId w.r.t. region is mnDocId + 1; { aDeletedTemplate = (pItem)->maTitle; } @@ -1113,7 +1113,7 @@ void SfxTemplateManagerDlg::OnTemplateExport() OUString aPath = aPathObj.GetMainURL( INetURLObject::NO_DECODE ); - if (!mpLocalView->exportTo(pItem->mnId, + if (!mpLocalView->exportTo(pItem->mnDocId + 1, //mnId w.r.t. region = mDocId + 1 mpLocalView->getRegionId(pItem->mnRegionId), //pItem->mnRegionId does not store actual region Id aPath)) { |