[Libreoffice-commits] core.git: Branch 'libreoffice-5-2' - icon-themes/galaxy include/sfx2 sfx2/source
Akshay Deep
akshaydeepiitr at gmail.com
Tue Jun 7 01:14:38 UTC 2016
icon-themes/galaxy/res/templatestar.png |binary
include/sfx2/templateabstractview.hxx | 4 +++
include/sfx2/templateviewitem.hxx | 8 ++++--
sfx2/source/control/templateabstractview.cxx | 35 +++++++++++++++++++++++++++
sfx2/source/control/templateview.hrc | 1
sfx2/source/control/templateview.src | 5 +++
sfx2/source/control/templateviewitem.cxx | 26 +++++++++++++++++++-
sfx2/source/doc/templatedlg.cxx | 5 +++
8 files changed, 81 insertions(+), 3 deletions(-)
New commits:
commit 58ac1f9e3f99493e41ad2750ea0c3d2ba7f43d28
Author: Akshay Deep <akshaydeepiitr at gmail.com>
Date: Thu Jun 2 16:06:12 2016 +0530
Mark Default Templates in Template Manager
Reviewed-on: https://gerrit.libreoffice.org/25816
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
Conflicts:
include/sfx2/templateviewitem.hxx
Change-Id: I1dff486605efce09e862d2924b24949601ae0f17
Reviewed-on: https://gerrit.libreoffice.org/25974
Reviewed-by: Akshay Deep <akshaydeepiitr at gmail.com>
Tested-by: Jenkins <ci at libreoffice.org>
diff --git a/icon-themes/galaxy/res/templatestar.png b/icon-themes/galaxy/res/templatestar.png
new file mode 100644
index 0000000..96bf3cb
Binary files /dev/null and b/icon-themes/galaxy/res/templatestar.png differ
diff --git a/include/sfx2/templateabstractview.hxx b/include/sfx2/templateabstractview.hxx
index c9f1a33..33c9a74 100644
--- a/include/sfx2/templateabstractview.hxx
+++ b/include/sfx2/templateabstractview.hxx
@@ -117,6 +117,8 @@ public:
long getThumbnailWidth() const { return mnThumbnailWidth;}
long getThumbnailHeight() const {return mnThumbnailHeight;}
+ void RemoveDefaultTemplateIcon( OUString rPath);
+
static BitmapEx scaleImg (const BitmapEx &rImg, long width, long height);
static BitmapEx getDefaultThumbnail( const OUString& rPath );
@@ -127,6 +129,8 @@ protected:
virtual void OnItemDblClicked(ThumbnailViewItem *pItem) override;
+ bool IsDefaultTemplate(const OUString& rPath);
+
protected:
sal_uInt16 mnCurRegionId;
diff --git a/include/sfx2/templateviewitem.hxx b/include/sfx2/templateviewitem.hxx
index c7e1b93..10d4634 100644
--- a/include/sfx2/templateviewitem.hxx
+++ b/include/sfx2/templateviewitem.hxx
@@ -24,6 +24,10 @@ public:
const OUString& getPath () const { return maPath; }
+ void showDefaultIcon(bool bVal) { mbIsDefaultTemplate = bVal; }
+
+ Rectangle getDefaultIconArea() const;
+
virtual void Paint (drawinglayer::processor2d::BaseProcessor2D *pProcessor,
const ThumbnailItemAttributes *pAttrs) override;
@@ -33,8 +37,8 @@ public:
private:
OUString maPath;
-
- Point maSubTitlePos;
+ BitmapEx maDefaultBitmap;
+ bool mbIsDefaultTemplate;
};
#endif // INCLUDED_SFX2_TEMPLATEVIEWITEM_HXX
diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx
index 2d6409b..1d78e3f 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 d2073bc..ae679b8 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 d769372..a8e984c 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 047fec9..3158a4c 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 9f71a4d..7bc2dda 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();
}
More information about the Libreoffice-commits
mailing list