diff options
author | Akshay Deep <akshaydeepiitr@gmail.com> | 2016-06-02 16:06:12 +0530 |
---|---|---|
committer | Akshay Deep <akshaydeepiitr@gmail.com> | 2016-06-07 01:14:14 +0000 |
commit | 58ac1f9e3f99493e41ad2750ea0c3d2ba7f43d28 (patch) | |
tree | 5c040bbf6e685a3c4c6b135c86f8785a6d9ac7b3 /sfx2 | |
parent | fa4298e9b649e21d9fb309d66fabce89813143d4 (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.cxx | 35 | ||||
-rw-r--r-- | sfx2/source/control/templateview.hrc | 1 | ||||
-rw-r--r-- | sfx2/source/control/templateview.src | 5 | ||||
-rw-r--r-- | sfx2/source/control/templateviewitem.cxx | 26 | ||||
-rw-r--r-- | sfx2/source/doc/templatedlg.cxx | 5 |
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(); } |