[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - include/sfx2 sfx2/source
Akshay Deep
akshaydeepiitr at gmail.com
Fri Jun 10 23:23:44 UTC 2016
include/sfx2/templateabstractview.hxx | 2
sfx2/source/control/templateabstractview.cxx | 70 +++++++++++++------
sfx2/source/control/templatelocalview.cxx | 6 +
sfx2/source/control/templatesearchview.cxx | 97 ++++++++++++++++++++-------
sfx2/source/doc/templatedlg.cxx | 8 --
sfx2/source/inc/templatesearchview.hxx | 2
6 files changed, 130 insertions(+), 55 deletions(-)
New commits:
commit 4d860975e6929f44ce38bc308e35b18785249b7d
Author: Akshay Deep <akshaydeepiitr at gmail.com>
Date: Wed Jun 8 08:24:52 2016 +0530
GSoC: Template Manager: Enable Keyboard shortcuts
delete key: delete operation
shift-f10 and contextmenu: create context-menu
ctrl + A: select all
Conflicts:
sfx2/source/control/templateabstractview.cxx
Reviewed-on: https://gerrit.libreoffice.org/26044
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
Conflicts:
sfx2/source/doc/templatedlg.cxx
Change-Id: I97486c050c5dbb88b8551aa8a9bb9ba4285ad003
Reviewed-on: https://gerrit.libreoffice.org/26178
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Akshay Deep <akshaydeepiitr at gmail.com>
diff --git a/include/sfx2/templateabstractview.hxx b/include/sfx2/templateabstractview.hxx
index b211b57..7913947 100644
--- a/include/sfx2/templateabstractview.hxx
+++ b/include/sfx2/templateabstractview.hxx
@@ -85,6 +85,8 @@ public:
virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
+ virtual void Command( const CommandEvent& rCEvt ) override;
+
virtual void KeyInput( const KeyEvent& rKEvt ) override;
virtual void showAllTemplates () = 0;
diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx
index 8440d01..a29b4b0 100644
--- a/sfx2/source/control/templateabstractview.cxx
+++ b/sfx2/source/control/templateabstractview.cxx
@@ -17,6 +17,7 @@
#include <tools/urlobj.hxx>
#include <unotools/ucbstreamhelper.hxx>
#include <vcl/pngread.hxx>
+#include <vcl/layout.hxx>
#include <unotools/moduleoptions.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
@@ -186,24 +187,49 @@ void TemplateAbstractView::updateThumbnailDimensions(long itemMaxSize)
void TemplateAbstractView::MouseButtonDown( const MouseEvent& rMEvt )
{
GrabFocus();
+ ThumbnailView::MouseButtonDown(rMEvt);
+}
- if (rMEvt.IsRight())
+void TemplateAbstractView::Command( const CommandEvent& rCEvt )
+{
+ if ( rCEvt.GetCommand() == CommandEventId::ContextMenu )
{
- deselectItems();
- size_t nPos = ImplGetItem(rMEvt.GetPosPixel());
- Point aPosition (rMEvt.GetPosPixel());
- maPosition = aPosition;
- ThumbnailViewItem* pItem = ImplGetItem(nPos);
- const TemplateViewItem *pViewItem = dynamic_cast<const TemplateViewItem*>(pItem);
-
- if(pViewItem)
+ if(rCEvt.IsMouseEvent())
{
- maSelectedItem = dynamic_cast<TemplateViewItem*>(pItem);
- maCreateContextMenuHdl.Call(pItem);
+ deselectItems();
+ size_t nPos = ImplGetItem(rCEvt.GetMousePosPixel());
+ Point aPosition (rCEvt.GetMousePosPixel());
+ maPosition = aPosition;
+ ThumbnailViewItem* pItem = ImplGetItem(nPos);
+ const TemplateViewItem *pViewItem = dynamic_cast<const TemplateViewItem*>(pItem);
+
+ if(pViewItem)
+ {
+ maSelectedItem = dynamic_cast<TemplateViewItem*>(pItem);
+ maCreateContextMenuHdl.Call(pItem);
+ }
+ }
+ else
+ {
+ for (ThumbnailViewItem* pItem : mFilteredItemList)
+ {
+ //create context menu for the first selected item
+ if (pItem->isSelected())
+ {
+ deselectItems();
+ pItem->setSelection(true);
+ maItemStateHdl.Call(pItem);
+ Rectangle aRect = pItem->getDrawArea();
+ maPosition = aRect.Center();
+ maSelectedItem = dynamic_cast<TemplateViewItem*>(pItem);
+ maCreateContextMenuHdl.Call(pItem);
+ break;
+ }
+ }
}
}
- ThumbnailView::MouseButtonDown(rMEvt);
+ ThumbnailView::Command(rCEvt);
}
void TemplateAbstractView::KeyInput( const KeyEvent& rKEvt )
@@ -212,7 +238,7 @@ void TemplateAbstractView::KeyInput( const KeyEvent& rKEvt )
if(aKeyCode == ( KEY_MOD1 | KEY_A ) )
{
- for (ThumbnailViewItem* pItem : mItemList)
+ for (ThumbnailViewItem* pItem : mFilteredItemList)
{
if (!pItem->isSelected())
{
@@ -225,23 +251,21 @@ void TemplateAbstractView::KeyInput( const KeyEvent& rKEvt )
Invalidate();
return;
}
- else if(aKeyCode == (KEY_SHIFT | KEY_F10 ))
+ else if( aKeyCode == KEY_DELETE && !mFilteredItemList.empty())
{
+ ScopedVclPtrInstance< MessageDialog > aQueryDlg(this, SfxResId(STR_QMSG_SEL_TEMPLATE_DELETE), VclMessageType::VCL_MESSAGE_QUESTION, VCL_BUTTONS_YES_NO);
+
+ if ( aQueryDlg->Execute() != RET_YES )
+ return;
+
for (ThumbnailViewItem* pItem : mFilteredItemList)
{
- //create context menu for the first selected item
if (pItem->isSelected())
{
- deselectItems();
- pItem->setSelection(true);
- maItemStateHdl.Call(pItem);
- Rectangle aRect = pItem->getDrawArea();
- maPosition = aRect.Center();
- maSelectedItem = dynamic_cast<TemplateViewItem*>(pItem);
- maCreateContextMenuHdl.Call(pItem);
- break;
+ maDeleteTemplateHdl.Call(pItem);
}
}
+ reload();
}
ThumbnailView::KeyInput(rKEvt);
diff --git a/sfx2/source/control/templatelocalview.cxx b/sfx2/source/control/templatelocalview.cxx
index e988bfd..5374af0 100644
--- a/sfx2/source/control/templatelocalview.cxx
+++ b/sfx2/source/control/templatelocalview.cxx
@@ -233,7 +233,13 @@ IMPL_LINK_TYPED(TemplateLocalView, ContextMenuSelectHdl, Menu*, pMenu, bool)
}
break;
case MNI_DELETE:
+ {
+ ScopedVclPtrInstance< MessageDialog > aQueryDlg(this, SfxResId(STR_QMSG_SEL_TEMPLATE_DELETE), VclMessageType::VCL_MESSAGE_QUESTION, VCL_BUTTONS_YES_NO);
+ if ( aQueryDlg->Execute() != RET_YES )
+ break;
+
maDeleteTemplateHdl.Call(maSelectedItem);
+ }
break;
case MNI_DEFAULT_TEMPLATE:
maDefaultTemplateHdl.Call(maSelectedItem);
diff --git a/sfx2/source/control/templatesearchview.cxx b/sfx2/source/control/templatesearchview.cxx
index f30c98d..0767c13 100644
--- a/sfx2/source/control/templatesearchview.cxx
+++ b/sfx2/source/control/templatesearchview.cxx
@@ -12,6 +12,7 @@
#include <sfx2/templateabstractview.hxx>
#include <sfx2/sfxresid.hxx>
#include <tools/urlobj.hxx>
+#include <vcl/layout.hxx>
#include "../doc/doc.hrc"
@@ -34,50 +35,87 @@ 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;
- ThumbnailViewItem* pItem = ImplGetItem(nPos);
- const TemplateViewItem *pViewItem = dynamic_cast<const TemplateViewItem*>(pItem);
-
- if(pViewItem)
- {
- maSelectedItem = dynamic_cast<TemplateViewItem*>(pItem);
- maCreateContextMenuHdl.Call(pItem);
- }
- }
-
ThumbnailView::MouseButtonDown(rMEvt);
}
-
void TemplateSearchView::KeyInput( const KeyEvent& rKEvt )
{
vcl::KeyCode aKeyCode = rKEvt.GetKeyCode();
- if(aKeyCode == (KEY_SHIFT | KEY_F10 ))
+ if(aKeyCode == ( KEY_MOD1 | KEY_A ) )
{
for (ThumbnailViewItem* pItem : mFilteredItemList)
{
- //create context menu for the first selected item
- if (pItem->isSelected())
+ if (!pItem->isSelected())
{
- deselectItems();
pItem->setSelection(true);
maItemStateHdl.Call(pItem);
- Rectangle aRect = pItem->getDrawArea();
- maPosition = aRect.Center();
+ }
+ }
+
+ if (IsReallyVisible() && IsUpdateMode())
+ Invalidate();
+ return;
+ }
+ else if( aKeyCode == KEY_DELETE && !mFilteredItemList.empty())
+ {
+ ScopedVclPtrInstance< MessageDialog > aQueryDlg(this, SfxResId(STR_QMSG_SEL_TEMPLATE_DELETE), VclMessageType::VCL_MESSAGE_QUESTION, VCL_BUTTONS_YES_NO);
+
+ if ( aQueryDlg->Execute() != RET_YES )
+ return;
+
+ for (ThumbnailViewItem* pItem : mFilteredItemList)
+ {
+ if (pItem->isSelected())
+ {
+ maDeleteTemplateHdl.Call(pItem);
+ }
+ }
+ }
+
+ ThumbnailView::KeyInput(rKEvt);
+}
+
+void TemplateSearchView::Command( const CommandEvent& rCEvt )
+{
+ if ( rCEvt.GetCommand() == CommandEventId::ContextMenu )
+ {
+ if(rCEvt.IsMouseEvent())
+ {
+ deselectItems();
+ size_t nPos = ImplGetItem(rCEvt.GetMousePosPixel());
+ Point aPosition (rCEvt.GetMousePosPixel());
+ maPosition = aPosition;
+ ThumbnailViewItem* pItem = ImplGetItem(nPos);
+ const TemplateViewItem *pViewItem = dynamic_cast<const TemplateViewItem*>(pItem);
+
+ if(pViewItem)
+ {
maSelectedItem = dynamic_cast<TemplateViewItem*>(pItem);
maCreateContextMenuHdl.Call(pItem);
- break;
+ }
+ }
+ else
+ {
+ for (ThumbnailViewItem* pItem : mFilteredItemList)
+ {
+ //create context menu for the first selected item
+ if (pItem->isSelected())
+ {
+ deselectItems();
+ pItem->setSelection(true);
+ maItemStateHdl.Call(pItem);
+ Rectangle aRect = pItem->getDrawArea();
+ maPosition = aRect.Center();
+ maSelectedItem = dynamic_cast<TemplateViewItem*>(pItem);
+ maCreateContextMenuHdl.Call(pItem);
+ break;
+ }
}
}
}
- ThumbnailView::KeyInput(rKEvt);
+ ThumbnailView::Command(rCEvt);
}
void TemplateSearchView::createContextMenu( const bool bIsDefault)
@@ -113,7 +151,16 @@ IMPL_LINK_TYPED(TemplateSearchView, ContextMenuSelectHdl, Menu*, pMenu, bool)
maEditTemplateHdl.Call(maSelectedItem);
break;
case MNI_DELETE:
+ {
+ ScopedVclPtrInstance< MessageDialog > aQueryDlg(this, SfxResId(STR_QMSG_SEL_TEMPLATE_DELETE), VclMessageType::VCL_MESSAGE_QUESTION, VCL_BUTTONS_YES_NO);
+ if ( aQueryDlg->Execute() != RET_YES )
+ break;
+
maDeleteTemplateHdl.Call(maSelectedItem);
+ RemoveItem(maSelectedItem->mnId);
+
+ CalculateItemPositions();
+ }
break;
case MNI_DEFAULT_TEMPLATE:
maDefaultTemplateHdl.Call(maSelectedItem);
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index 6a1a144..fa6c28a 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -825,11 +825,6 @@ IMPL_LINK_TYPED(SfxTemplateManagerDlg, EditTemplateHdl, ThumbnailViewItem*, pIte
IMPL_LINK_TYPED(SfxTemplateManagerDlg, DeleteTemplateHdl, ThumbnailViewItem*, pItem, void)
{
- ScopedVclPtrInstance< MessageDialog > aQueryDlg(this, SfxResId(STR_QMSG_SEL_TEMPLATE_DELETE), VCL_MESSAGE_QUESTION, VCL_BUTTONS_YES_NO);
-
- if ( aQueryDlg->Execute() != RET_YES )
- return;
-
OUString aDeletedTemplate;
if(mpSearchView->IsVisible())
@@ -858,8 +853,6 @@ IMPL_LINK_TYPED(SfxTemplateManagerDlg, DeleteTemplateHdl, ThumbnailViewItem*, pI
ScopedVclPtrInstance<MessageDialog>::Create(this, aMsg.replaceFirst("$1",aDeletedTemplate))->Execute();
}
- mpLocalView->reload();
-
if(mpSearchView->IsVisible())
SearchUpdateHdl(*mpSearchFilter);
}
@@ -936,6 +929,7 @@ IMPL_LINK_NOARG_TYPED(SfxTemplateManagerDlg, SearchUpdateHdl, Edit&, void)
mpCurView->filterItems(ViewFilter_Application(getCurrentApplicationFilter()));
if(mpCurView == mpLocalView)
{
+ mpLocalView->reload();
OUString sLastFolder = mpCBFolder->GetSelectEntry();
mpLocalView->showRegion(sLastFolder);
mpActionMenu->ShowItem(MNI_ACTION_RENAME_FOLDER);
diff --git a/sfx2/source/inc/templatesearchview.hxx b/sfx2/source/inc/templatesearchview.hxx
index 1dda8c5..ce3c44b 100644
--- a/sfx2/source/inc/templatesearchview.hxx
+++ b/sfx2/source/inc/templatesearchview.hxx
@@ -46,6 +46,8 @@ protected:
virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
+ virtual void Command( const CommandEvent& rCEvt ) override;
+
virtual void KeyInput( const KeyEvent& rKEvt ) override;
protected:
More information about the Libreoffice-commits
mailing list