summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorAkshay Deep <akshaydeepiitr@gmail.com>2016-06-02 16:06:12 +0530
committerAkshay Deep <akshaydeepiitr@gmail.com>2016-06-07 01:14:14 +0000
commit58ac1f9e3f99493e41ad2750ea0c3d2ba7f43d28 (patch)
tree5c040bbf6e685a3c4c6b135c86f8785a6d9ac7b3 /sfx2
parentfa4298e9b649e21d9fb309d66fabce89813143d4 (diff)
Mark Default Templates in Template Manager
Reviewed-on: https://gerrit.libreoffice.org/25816 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Conflicts: include/sfx2/templateviewitem.hxx Change-Id: I1dff486605efce09e862d2924b24949601ae0f17 Reviewed-on: https://gerrit.libreoffice.org/25974 Reviewed-by: Akshay Deep <akshaydeepiitr@gmail.com> Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/control/templateabstractview.cxx35
-rw-r--r--sfx2/source/control/templateview.hrc1
-rw-r--r--sfx2/source/control/templateview.src5
-rw-r--r--sfx2/source/control/templateviewitem.cxx26
-rw-r--r--sfx2/source/doc/templatedlg.cxx5
5 files changed, 71 insertions, 1 deletions
diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx
index 2d6409b5aa76..1d78e3f5d4ba 100644
--- a/sfx2/source/control/templateabstractview.cxx
+++ b/sfx2/source/control/templateabstractview.cxx
@@ -13,9 +13,11 @@
#include <sfx2/templatecontaineritem.hxx>
#include <sfx2/templateviewitem.hxx>
#include <sfx2/sfxresid.hxx>
+#include <sfx2/docfac.hxx>
#include <tools/urlobj.hxx>
#include <unotools/ucbstreamhelper.hxx>
#include <vcl/pngread.hxx>
+#include <unotools/moduleoptions.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
@@ -34,6 +36,7 @@
using namespace basegfx;
using namespace drawinglayer::primitive2d;
+using namespace ::com::sun::star::uno;
bool ViewFilter_Application::isFilteredExtension(FILTER_APPLICATION filter, const OUString &rExt)
{
@@ -149,6 +152,9 @@ void TemplateAbstractView::insertItems(const std::vector<TemplateItemProperties>
pChild->setHelpText(pCur->aRegionName);
pChild->maPreview1 = pCur->aThumbnail;
+ if(IsDefaultTemplate(pCur->aPath))
+ pChild->showDefaultIcon(true);
+
if ( pCur->aThumbnail.IsEmpty() )
{
// Use the default thumbnail if we have nothing else
@@ -268,6 +274,35 @@ BitmapEx TemplateAbstractView::scaleImg (const BitmapEx &rImg, long width, long
return aImg;
}
+bool TemplateAbstractView::IsDefaultTemplate(const OUString& rPath)
+{
+ SvtModuleOptions aModOpt;
+ std::vector<OUString> aList;
+ const css::uno::Sequence<OUString> &aServiceNames = aModOpt.GetAllServiceNames();
+
+ for( sal_Int32 i=0, nCount = aServiceNames.getLength(); i < nCount; ++i )
+ {
+ const OUString defaultPath = SfxObjectFactory::GetStandardTemplate( aServiceNames[i] );
+ if(defaultPath.match(rPath))
+ return true;
+ }
+
+ return false;
+}
+
+void TemplateAbstractView::RemoveDefaultTemplateIcon( OUString rPath)
+{
+ for (ThumbnailViewItem* pItem : mItemList)
+ {
+ TemplateViewItem* pViewItem = dynamic_cast<TemplateViewItem*>(pItem);
+ if(pViewItem->getPath().match(rPath))
+ {
+ pViewItem->showDefaultIcon(false);
+ return;
+ }
+ }
+}
+
BitmapEx TemplateAbstractView::getDefaultThumbnail( const OUString& rPath )
{
BitmapEx aImg;
diff --git a/sfx2/source/control/templateview.hrc b/sfx2/source/control/templateview.hrc
index d2073bc8a304..ae679b88a141 100644
--- a/sfx2/source/control/templateview.hrc
+++ b/sfx2/source/control/templateview.hrc
@@ -14,5 +14,6 @@
#define IMG_WELCOME 261
#define IMG_RECENTDOC_REMOVE 262
#define IMG_RECENTDOC_REMOVE_HIGHLIGHTED 263
+#define IMG_DEFAULT 264
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/control/templateview.src b/sfx2/source/control/templateview.src
index d7693723bda2..a8e984c975cd 100644
--- a/sfx2/source/control/templateview.src
+++ b/sfx2/source/control/templateview.src
@@ -48,4 +48,9 @@ Bitmap IMG_RECENTDOC_REMOVE_HIGHLIGHTED
File = "recentdoc_remove_highlighted.png";
};
+Bitmap IMG_DEFAULT
+{
+ File = "templatestar.png";
+};
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/control/templateviewitem.cxx b/sfx2/source/control/templateviewitem.cxx
index 047fec990342..3158a4cdea28 100644
--- a/sfx2/source/control/templateviewitem.cxx
+++ b/sfx2/source/control/templateviewitem.cxx
@@ -15,11 +15,15 @@
#include <drawinglayer/primitive2d/fillgraphicprimitive2d.hxx>
#include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/discretebitmapprimitive2d.hxx>
#include <drawinglayer/primitive2d/textlayoutdevice.hxx>
#include <drawinglayer/primitive2d/textprimitive2d.hxx>
#include <drawinglayer/processor2d/baseprocessor2d.hxx>
#include <vcl/button.hxx>
#include <vcl/graph.hxx>
+#include <sfx2/sfxresid.hxx>
+
+#include <templateview.hrc>
using namespace basegfx;
using namespace basegfx::tools;
@@ -29,7 +33,9 @@ using namespace drawinglayer::primitive2d;
TemplateViewItem::TemplateViewItem (ThumbnailView &rView, sal_uInt16 nId)
: ThumbnailViewItem(rView, nId),
mnRegionId(USHRT_MAX),
- mnDocId(USHRT_MAX)
+ mnDocId(USHRT_MAX),
+ maDefaultBitmap(SfxResId(IMG_DEFAULT)),
+ mbIsDefaultTemplate(false)
{
}
@@ -37,6 +43,16 @@ TemplateViewItem::~TemplateViewItem ()
{
}
+Rectangle TemplateViewItem::getDefaultIconArea() const
+{
+ Rectangle aArea(getDrawArea());
+ Size aSize(maDefaultBitmap.GetSizePixel());
+
+ return Rectangle(
+ Point(aArea.Left() + THUMBNAILVIEW_ITEM_CORNER, aArea.Top() + THUMBNAILVIEW_ITEM_CORNER),
+ aSize);
+}
+
void TemplateViewItem::Paint(drawinglayer::processor2d::BaseProcessor2D *pProcessor,
const ThumbnailItemAttributes *pAttrs)
{
@@ -90,6 +106,14 @@ void TemplateViewItem::Paint(drawinglayer::processor2d::BaseProcessor2D *pProces
// draw thumbnail borders
aSeq[3] = drawinglayer::primitive2d::Primitive2DReference(createBorderLine(aBounds));
+ if(mbIsDefaultTemplate)
+ {
+ Point aIconPos(getDefaultIconArea().TopLeft());
+
+ aSeq[4] = drawinglayer::primitive2d::Primitive2DReference(new DiscreteBitmapPrimitive2D( maDefaultBitmap,
+ B2DPoint(aIconPos.X(), aIconPos.Y())));
+ }
+
addTextPrimitives(maTitle, pAttrs, maTextPos, aSeq);
pProcessor->process(aSeq);
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index 9f71a4d151d8..7bc2dda05fdc 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -856,7 +856,12 @@ IMPL_LINK_TYPED(SfxTemplateManagerDlg, DefaultTemplateHdl, ThumbnailViewItem*, p
OUString aServiceName;
if (lcl_getServiceName(pViewItem->getPath(),aServiceName))
{
+ OUString sPrevDefault = SfxObjectFactory::GetStandardTemplate( aServiceName );
+ if(!sPrevDefault.isEmpty())
+ mpLocalView->RemoveDefaultTemplateIcon(sPrevDefault);
+
SfxObjectFactory::SetStandardTemplate(aServiceName,pViewItem->getPath());
+ pViewItem->showDefaultIcon(true);
createDefaultTemplateMenu();
}