summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Dominguez <venccsralph@gmail.com>2012-07-08 19:12:33 -0430
committerRafael Dominguez <venccsralph@gmail.com>2012-07-08 19:57:56 -0430
commitfa10ab03bb9f3e796eaa8880d00d116cad9a4225 (patch)
treef7e4a54c92ead4d785cb1ccaa1133446f608cb96
parentbabc18065fa5185bd0208ce48636b4f6a492ebe5 (diff)
Add an option in toolbar to delete folders when you select them.
Change-Id: Iff10ff99340d9680b924c11956dc036a5f2dac4f
-rw-r--r--sfx2/inc/sfx2/templatefolderview.hxx2
-rw-r--r--sfx2/inc/templatedlg.hxx1
-rw-r--r--sfx2/source/control/templatefolderview.cxx12
-rw-r--r--sfx2/source/doc/templatedlg.cxx21
-rw-r--r--sfx2/source/doc/templatedlg.hrc2
-rw-r--r--sfx2/source/doc/templatedlg.src7
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";
+ };
};
};