diff options
author | Rafael Dominguez <venccsralph@gmail.com> | 2012-07-08 19:12:33 -0430 |
---|---|---|
committer | Rafael Dominguez <venccsralph@gmail.com> | 2012-07-08 19:57:56 -0430 |
commit | fa10ab03bb9f3e796eaa8880d00d116cad9a4225 (patch) | |
tree | f7e4a54c92ead4d785cb1ccaa1133446f608cb96 | |
parent | babc18065fa5185bd0208ce48636b4f6a492ebe5 (diff) |
Add an option in toolbar to delete folders when you select them.
Change-Id: Iff10ff99340d9680b924c11956dc036a5f2dac4f
-rw-r--r-- | sfx2/inc/sfx2/templatefolderview.hxx | 2 | ||||
-rw-r--r-- | sfx2/inc/templatedlg.hxx | 1 | ||||
-rw-r--r-- | sfx2/source/control/templatefolderview.cxx | 12 | ||||
-rw-r--r-- | sfx2/source/doc/templatedlg.cxx | 21 | ||||
-rw-r--r-- | sfx2/source/doc/templatedlg.hrc | 2 | ||||
-rw-r--r-- | sfx2/source/doc/templatedlg.src | 7 |
6 files changed, 45 insertions, 0 deletions
diff --git a/sfx2/inc/sfx2/templatefolderview.hxx b/sfx2/inc/sfx2/templatefolderview.hxx index e3187c41b95c..c969a2a861d4 100644 --- a/sfx2/inc/sfx2/templatefolderview.hxx +++ b/sfx2/inc/sfx2/templatefolderview.hxx @@ -62,6 +62,8 @@ public: sal_uInt16 createRegion (const rtl::OUString &rName); + bool removeRegion (const sal_uInt16 nItemId); + bool removeTemplate (const sal_uInt16 nItemId); bool moveTemplates (std::set<const ThumbnailViewItem*> &rItems, const sal_uInt16 nTargetItem, bool bCopy); diff --git a/sfx2/inc/templatedlg.hxx b/sfx2/inc/templatedlg.hxx index 9c5abfb5a8ee..435b43665335 100644 --- a/sfx2/inc/templatedlg.hxx +++ b/sfx2/inc/templatedlg.hxx @@ -72,6 +72,7 @@ private: void OnTemplateEdit (); void OnTemplateProperties (); void OnTemplateDelete (); + void OnFolderDelete (); void centerTopButtons (); diff --git a/sfx2/source/control/templatefolderview.cxx b/sfx2/source/control/templatefolderview.cxx index 63ea12a615f1..de9c866f5137 100644 --- a/sfx2/source/control/templatefolderview.cxx +++ b/sfx2/source/control/templatefolderview.cxx @@ -468,6 +468,18 @@ sal_uInt16 TemplateFolderView::createRegion(const rtl::OUString &rName) return true; } +bool TemplateFolderView::removeRegion(const sal_uInt16 nItemId) +{ + sal_uInt16 nRegionId = nItemId - 1; + + if (!mpDocTemplates->Delete(nRegionId,USHRT_MAX)) + return false; + + RemoveItem(nItemId); + + return true; +} + bool TemplateFolderView::removeTemplate (const sal_uInt16 nItemId) { sal_uInt16 nRegionId = mpItemView->getRegionId(); diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index 0e7fe291c2b9..decb401df636 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -310,6 +310,9 @@ IMPL_LINK_NOARG(SfxTemplateManagerDlg,TBXViewHdl) case TBI_TEMPLATE_IMPORT: OnTemplateImport(); break; + case TBI_TEMPLATE_FOLDER_DEL: + OnFolderDelete(); + break; default: break; } @@ -418,7 +421,10 @@ IMPL_LINK(SfxTemplateManagerDlg, TVFolderStateHdl, const ThumbnailViewItem*, pIt if (pItem->isSelected()) { if (maSelFolders.empty()) + { mpViewBar->EnableItem(TBI_TEMPLATE_IMPORT,true); + mpViewBar->ShowItem(TBI_TEMPLATE_FOLDER_DEL); + } maSelFolders.insert(pItem); } @@ -427,7 +433,10 @@ IMPL_LINK(SfxTemplateManagerDlg, TVFolderStateHdl, const ThumbnailViewItem*, pIt maSelFolders.erase(pItem); if (maSelFolders.empty()) + { mpViewBar->EnableItem(TBI_TEMPLATE_IMPORT,false); + mpViewBar->HideItem(TBI_TEMPLATE_FOLDER_DEL); + } } return 0; @@ -762,6 +771,18 @@ void SfxTemplateManagerDlg::OnTemplateDelete () } } +void SfxTemplateManagerDlg::OnFolderDelete() +{ + std::set<const ThumbnailViewItem*>::const_iterator pIter; + for (pIter = maSelFolders.begin(); pIter != maSelFolders.end();) + { + if (maView->removeRegion((*pIter)->mnId)) + maSelFolders.erase(pIter++); + else + ++pIter; + } +} + void SfxTemplateManagerDlg::centerTopButtons() { Point aFirstBtnPos = aButtonAll.GetPosPixel(); diff --git a/sfx2/source/doc/templatedlg.hrc b/sfx2/source/doc/templatedlg.hrc index cf94cd3ce37e..509b9253fe51 100644 --- a/sfx2/source/doc/templatedlg.hrc +++ b/sfx2/source/doc/templatedlg.hrc @@ -38,6 +38,8 @@ #define BTN_TEMPLATE_CLOSE 24 +#define TBI_TEMPLATE_FOLDER_DEL 25 + #define STR_CREATE_TEXT 260 #define STR_CREATE_SHEET 261 #define STR_CREATE_PRESENT 262 diff --git a/sfx2/source/doc/templatedlg.src b/sfx2/source/doc/templatedlg.src index c634932c92de..f32e26c49b9d 100644 --- a/sfx2/source/doc/templatedlg.src +++ b/sfx2/source/doc/templatedlg.src @@ -195,6 +195,13 @@ ModalDialog DLG_TEMPLATE_MANAGER ImageBitmap = Bitmap { File = "import.png" ; }; }; }; + + ToolBoxItem + { + Identifier = TBI_TEMPLATE_FOLDER_DEL; + Hide = TRUE; + Text [ en-US ] = "Delete"; + }; }; }; |