summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorAkshay Deep <akshaydeepiitr@gmail.com>2016-06-03 03:43:09 +0530
committerAkshay Deep <akshaydeepiitr@gmail.com>2016-06-04 00:06:23 +0000
commit90e3e04841081b9c03ea54f1d5ca439a7a9ce1dd (patch)
tree1430e7f73a87aaf5f1d963755387d092223931fb /sfx2
parent5cc822b9be6b69cc5a03e92144620b25d7872775 (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.cxx14
-rw-r--r--sfx2/source/control/templatelocalview.cxx4
-rw-r--r--sfx2/source/control/templatesearchview.cxx2
-rw-r--r--sfx2/source/dialog/backingwindow.cxx21
-rw-r--r--sfx2/source/doc/templatedlg.cxx4
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))
{