sfx2/inc/sfx2/templateviewitem.hxx | 11 ++ sfx2/inc/sfx2/thumbnailviewitem.hxx | 2 sfx2/source/control/templatefolderview.cxx | 10 +- sfx2/source/control/templatefolderviewitem.cxx | 2 sfx2/source/control/templatesearchview.cxx | 6 - sfx2/source/control/templateview.cxx | 2 sfx2/source/control/templateviewitem.cxx | 101 +++++++++++++++++++++++++ sfx2/source/control/thumbnailview.cxx | 4 sfx2/source/control/thumbnailviewacc.cxx | 2 sfx2/source/control/thumbnailviewitem.cxx | 4 sfx2/source/doc/templatedlg.cxx | 5 - sfx2/source/inc/templatesearchview.hxx | 4 12 files changed, 134 insertions(+), 19 deletions(-)
New commits: commit 802e3fa7e6eff9d6ca5d731096e4bf5e38f3c51a Author: Rafael Dominguez <venccsra...@gmail.com> Date: Wed Jul 11 13:45:22 2012 -0430 Draw thumbnail subtitle. - In the case of the SearchViewItem will be Folders name and in the case of TemplateViewItem it will be author. Change-Id: I251a3db323f7f02d023c9673d0a7a8027456bda6 diff --git a/sfx2/inc/sfx2/templateviewitem.hxx b/sfx2/inc/sfx2/templateviewitem.hxx index a0c4049..74b53c0 100644 --- a/sfx2/inc/sfx2/templateviewitem.hxx +++ b/sfx2/inc/sfx2/templateviewitem.hxx @@ -40,6 +40,10 @@ public: const rtl::OUString& getSubTitle () const { return maSubTitle; } + virtual void calculateItemsPosition (sal_uInt32 nMaxTextLength); + + virtual void Paint (drawinglayer::processor2d::BaseProcessor2D *pProcessor, + const ThumbnailItemAttributes *pAttrs); private: rtl::OUString maPath; @@ -47,6 +51,8 @@ private: rtl::OUString maKeywords; rtl::OUString maFileType; rtl::OUString maSubTitle; + + Point maSubTitlePos; }; #endif // TEMPLATEVIEWITEM_HXX diff --git a/sfx2/source/control/templateviewitem.cxx b/sfx2/source/control/templateviewitem.cxx index 156f8ea..01041a9 100644 --- a/sfx2/source/control/templateviewitem.cxx +++ b/sfx2/source/control/templateviewitem.cxx @@ -9,6 +9,21 @@ #include <sfx2/templateviewitem.hxx> +#include <basegfx/matrix/b2dhommatrixtools.hxx> +#include <basegfx/polygon/b2dpolygon.hxx> +#include <drawinglayer/attribute/fillbitmapattribute.hxx> +#include <drawinglayer/primitive2d/fillbitmapprimitive2d.hxx> +#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx> +#include <drawinglayer/primitive2d/textlayoutdevice.hxx> +#include <drawinglayer/primitive2d/textprimitive2d.hxx> +#include <drawinglayer/processor2d/baseprocessor2d.hxx> +#include <vcl/button.hxx> + +using namespace basegfx; +using namespace basegfx::tools; +using namespace drawinglayer::attribute; +using namespace drawinglayer::primitive2d; + TemplateViewItem::TemplateViewItem (ThumbnailView &rView, Window *pParent) : ThumbnailViewItem(rView,pParent) { @@ -18,6 +33,92 @@ TemplateViewItem::~TemplateViewItem () { } +void TemplateViewItem::calculateItemsPosition(sal_uInt32 nMaxTextLength) +{ + ThumbnailViewItem::calculateItemsPosition(nMaxTextLength); + + if (!maSubTitle.isEmpty()) + { + Size aRectSize = maDrawArea.GetSize(); + Size aImageSize = maPreview1.GetSizePixel(); + aRectSize.Height() -= aImageSize.getHeight(); + + drawinglayer::primitive2d::TextLayouterDevice aTextDev; + + long nSpace = (aRectSize.getHeight() - 2*aTextDev.getTextHeight()) / 3; + + // Set title position + maTextPos.setY(maPrev1Pos.getY() + aImageSize.getHeight() + nSpace); + + // Set subtitle position + maSubTitlePos.setY(maTextPos.getY() + nSpace); + maSubTitlePos.setX(maDrawArea.Left() + (aRectSize.Width() - aTextDev.getTextWidth(maSubTitle,0,nMaxTextLength))/2); + } +} + +void TemplateViewItem::Paint(drawinglayer::processor2d::BaseProcessor2D *pProcessor, + const ThumbnailItemAttributes *pAttrs) +{ + BColor aFillColor = pAttrs->aFillColor; + + int nCount = maSubTitle.isEmpty() ? 3 : 4; + Primitive2DSequence aSeq(nCount); + + // Draw background + if ( mbSelected || mbHover ) + aFillColor = pAttrs->aHighlightColor; + + aSeq[0] = Primitive2DReference( new PolyPolygonColorPrimitive2D( + B2DPolyPolygon(Polygon(maDrawArea,5,5).getB2DPolygon()), + aFillColor)); + + // Draw thumbnail + Size aImageSize = maPreview1.GetSizePixel(); + + aSeq[1] = Primitive2DReference( new FillBitmapPrimitive2D( + createTranslateB2DHomMatrix(maPrev1Pos.X(),maPrev1Pos.Y()), + FillBitmapAttribute(maPreview1, + B2DPoint(0,0), + B2DVector(aImageSize.Width(),aImageSize.Height()), + false) + )); + + // Draw centered text below thumbnail + + // Create the text primitive + basegfx::B2DHomMatrix aTitleMatrix( createScaleTranslateB2DHomMatrix( + pAttrs->aFontSize.getX(), pAttrs->aFontSize.getY(), + double( maTextPos.X() ), double( maTextPos.Y() ) ) ); + + aSeq[2] = Primitive2DReference( + new TextSimplePortionPrimitive2D(aTitleMatrix, + maTitle,0,pAttrs->nMaxTextLenght, + std::vector< double >( ), + pAttrs->aFontAttr, + com::sun::star::lang::Locale(), + Color(COL_BLACK).getBColor() ) ); + + if (!maSubTitle.isEmpty()) + { + basegfx::B2DHomMatrix aSubTitleMatrix( createScaleTranslateB2DHomMatrix( + pAttrs->aFontSize.getX(), pAttrs->aFontSize.getY(), + double( maSubTitlePos.X() ), double( maSubTitlePos.Y() ) ) ); + + aSeq[3] = Primitive2DReference( + new TextSimplePortionPrimitive2D(aSubTitleMatrix, + maSubTitle,0,pAttrs->nMaxTextLenght, + std::vector< double >( ), + pAttrs->aFontAttr, + com::sun::star::lang::Locale(), + Color(COL_BLACK).getBColor() ) ); + } + + pProcessor->process(aSeq); + + if (mbMode || mbHover || mbSelected) + mpSelectBox->Paint(maDrawArea); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 2ef58e5af9d05fcf1e3d6a709b2f9e113fb64cf5 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Wed Jul 11 12:32:04 2012 -0430 Ignore case when searching for a template. Change-Id: I47e35241a67892ff7c1d9aedf04cf2ab86c1371c diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index 4967d89..de48d57 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -74,7 +74,7 @@ public: bool operator() (const TemplateItemProperties &rItem) { - return rItem.aName.indexOf(maKeyword) != -1; + return rItem.aName.matchIgnoreAsciiCase(maKeyword); } private: commit 1bc6db06c4d5515d8d858641d0ae26a8b8572b8b Author: Rafael Dominguez <venccsra...@gmail.com> Date: Wed Jul 11 11:53:21 2012 -0430 Set SearchViewItem subtitle folder name. Change-Id: I1fc3f69ed5ecdfa9d9adb4b2b69801f2bb01e7f7 diff --git a/sfx2/source/control/templatesearchview.cxx b/sfx2/source/control/templatesearchview.cxx index ab3e122..edd4bd4 100644 --- a/sfx2/source/control/templatesearchview.cxx +++ b/sfx2/source/control/templatesearchview.cxx @@ -34,7 +34,8 @@ TemplateSearchView::~TemplateSearchView () } void TemplateSearchView::AppendItem(sal_uInt16 nItemId, sal_uInt16 nRegionId, sal_uInt16 nIdx, - const rtl::OUString &rStr, const rtl::OUString &rPath, + const rtl::OUString &rTitle, const rtl::OUString &rSubtitle, + const rtl::OUString &rPath, const BitmapEx &rImage) { TemplateSearchViewItem *pItem = new TemplateSearchViewItem(*this,this); @@ -42,7 +43,8 @@ void TemplateSearchView::AppendItem(sal_uInt16 nItemId, sal_uInt16 nRegionId, sa pItem->mnIdx = nIdx; pItem->mnRegionId = nRegionId; pItem->maPreview1 = rImage; - pItem->maTitle = rStr; + pItem->maTitle = rTitle; + pItem->setSubTitle(rSubtitle); pItem->setPath(rPath); pItem->setSelectClickHdl(LINK(this,ThumbnailView,OnItemSelected)); diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index 9738060..4967d89 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -601,6 +601,7 @@ IMPL_LINK_NOARG(SfxTemplateManagerDlg, SearchUpdateHdl) mpSearchView->AppendItem(++nCounter,pItem->nRegionId, pItem->nId-1, pItem->aName, + maView->GetItemText(pItem->nRegionId+1), pItem->aPath, pItem->aThumbnail); } diff --git a/sfx2/source/inc/templatesearchview.hxx b/sfx2/source/inc/templatesearchview.hxx index 3d453b3..a8333ce 100644 --- a/sfx2/source/inc/templatesearchview.hxx +++ b/sfx2/source/inc/templatesearchview.hxx @@ -21,8 +21,8 @@ public: virtual ~TemplateSearchView(); void AppendItem(sal_uInt16 nItemId, sal_uInt16 nRegionId, sal_uInt16 nIdx, - const rtl::OUString &rStr, const rtl::OUString &rPath, - const BitmapEx &rImage ); + const rtl::OUString &rTitle, const rtl::OUString &rSubtitle, + const rtl::OUString &rPath, const BitmapEx &rImage ); }; #endif // __SFX2_TEMPLATESEARCHVIEW_HXX__ commit 665891eba17de4c40846d4569d306d79bd0c2fa2 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Wed Jul 11 11:45:41 2012 -0430 Add subtitle attribute to TemplateViewItem. Change-Id: I181a84b468cf10d7c80f84030890965fa0dc4ffa diff --git a/sfx2/inc/sfx2/templateviewitem.hxx b/sfx2/inc/sfx2/templateviewitem.hxx index ffb72cd..a0c4049 100644 --- a/sfx2/inc/sfx2/templateviewitem.hxx +++ b/sfx2/inc/sfx2/templateviewitem.hxx @@ -36,12 +36,17 @@ public: const rtl::OUString& getFileType () const { return maFileType; } + void setSubTitle (const rtl::OUString &rTitle) { maSubTitle = rTitle; } + + const rtl::OUString& getSubTitle () const { return maSubTitle; } + private: rtl::OUString maPath; rtl::OUString maAuthor; rtl::OUString maKeywords; rtl::OUString maFileType; + rtl::OUString maSubTitle; }; #endif // TEMPLATEVIEWITEM_HXX commit a93e06c0c7500778cbe9bc8d6c023a2cf3a4661f Author: Rafael Dominguez <venccsra...@gmail.com> Date: Wed Jul 11 11:28:25 2012 -0430 Rename ThumbnailViewItem maText attribute to maTitle. Change-Id: Id253d06325ec05bb587c9759027ea07b65fe257f diff --git a/sfx2/inc/sfx2/thumbnailviewitem.hxx b/sfx2/inc/sfx2/thumbnailviewitem.hxx index 9b4289d..e6719c9 100644 --- a/sfx2/inc/sfx2/thumbnailviewitem.hxx +++ b/sfx2/inc/sfx2/thumbnailviewitem.hxx @@ -69,7 +69,7 @@ public: bool mbSelected; bool mbHover; BitmapEx maPreview1; - rtl::OUString maText; + rtl::OUString maTitle; ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >* mpxAcc; ThumbnailViewItem (ThumbnailView &rView, Window *pParent); diff --git a/sfx2/source/control/templatefolderview.cxx b/sfx2/source/control/templatefolderview.cxx index 1db2f77..a23114d 100644 --- a/sfx2/source/control/templatefolderview.cxx +++ b/sfx2/source/control/templatefolderview.cxx @@ -310,7 +310,7 @@ void TemplateFolderView::Populate () TemplateFolderViewItem* pItem = new TemplateFolderViewItem( *this, this ); pItem->mnId = i+1; - pItem->maText = aRegionName; + pItem->maTitle = aRegionName; pItem->setSelectClickHdl(LINK(this,ThumbnailView,OnItemSelected)); sal_uInt16 nEntries = mpDocTemplates->GetCount(i); @@ -355,7 +355,7 @@ std::vector<rtl::OUString> TemplateFolderView::getFolderNames() std::vector<rtl::OUString> ret(n); for (size_t i = 0; i < n; ++i) - ret[i] = mItemList[i]->maText; + ret[i] = mItemList[i]->maTitle; return ret; } @@ -455,7 +455,7 @@ sal_uInt16 TemplateFolderView::createRegion(const rtl::OUString &rName) TemplateFolderViewItem* pItem = new TemplateFolderViewItem( *this, this ); pItem->mnId = nRegionId+1; - pItem->maText = aRegionName; + pItem->maTitle = aRegionName; pItem->setSelectClickHdl(LINK(this,ThumbnailView,OnItemSelected)); mItemList.push_back(pItem); @@ -567,7 +567,7 @@ bool TemplateFolderView::moveTemplates(std::set<const ThumbnailViewItem *> &rIte TemplateItemProperties aTemplateItem; aTemplateItem.nId = nTargetIdx + 1; aTemplateItem.nRegionId = nTargetRegion; - aTemplateItem.aName = pViewItem->maText; + aTemplateItem.aName = pViewItem->maTitle; aTemplateItem.aPath = pViewItem->getPath(); aTemplateItem.aType = pViewItem->getFileType(); aTemplateItem.aThumbnail = pViewItem->maPreview1; @@ -696,7 +696,7 @@ IMPL_LINK(TemplateFolderView, ChangeNameHdl, TemplateView*, pView) { if (mItemList[i]->mnId == nItemId) { - mItemList[i]->maText = pView->getRegionName(); + mItemList[i]->maTitle = pView->getRegionName(); mItemList[i]->calculateItemsPosition(mpItemAttrs->nMaxTextLenght); Invalidate(); break; diff --git a/sfx2/source/control/templatefolderviewitem.cxx b/sfx2/source/control/templatefolderviewitem.cxx index 36f1909..8e9e381 100644 --- a/sfx2/source/control/templatefolderviewitem.cxx +++ b/sfx2/source/control/templatefolderviewitem.cxx @@ -98,7 +98,7 @@ void TemplateFolderViewItem::Paint (drawinglayer::processor2d::BaseProcessor2D * aSeq[nCount++] = Primitive2DReference( new TextSimplePortionPrimitive2D(aTextMatrix, - maText,0,maText.getLength(), + maTitle,0,maTitle.getLength(), std::vector< double >( ), pAttrs->aFontAttr, com::sun::star::lang::Locale(), diff --git a/sfx2/source/control/templatesearchview.cxx b/sfx2/source/control/templatesearchview.cxx index 5bf2f73..ab3e122 100644 --- a/sfx2/source/control/templatesearchview.cxx +++ b/sfx2/source/control/templatesearchview.cxx @@ -42,7 +42,7 @@ void TemplateSearchView::AppendItem(sal_uInt16 nItemId, sal_uInt16 nRegionId, sa pItem->mnIdx = nIdx; pItem->mnRegionId = nRegionId; pItem->maPreview1 = rImage; - pItem->maText = rStr; + pItem->maTitle = rStr; pItem->setPath(rPath); pItem->setSelectClickHdl(LINK(this,ThumbnailView,OnItemSelected)); diff --git a/sfx2/source/control/templateview.cxx b/sfx2/source/control/templateview.cxx index b804341..a819094 100644 --- a/sfx2/source/control/templateview.cxx +++ b/sfx2/source/control/templateview.cxx @@ -115,7 +115,7 @@ void TemplateView::InsertItems (const std::vector<TemplateItemProperties> &rTemp const TemplateItemProperties *pCur = &rTemplates[i]; pItem->mnId = pCur->nId; - pItem->maText = pCur->aName; + pItem->maTitle = pCur->aName; pItem->setPath(pCur->aPath); pItem->setFileType(pCur->aType); pItem->maPreview1 = pCur->aThumbnail; diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index d64edf1..886ec9b 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -803,7 +803,7 @@ void ThumbnailView::InsertItem( sal_uInt16 nItemId, const BitmapEx& rImage, ThumbnailViewItem* pItem = new ThumbnailViewItem( *this, this ); pItem->mnId = nItemId; pItem->maPreview1 = rImage; - pItem->maText = rText; + pItem->maTitle = rText; pItem->setSelectClickHdl(LINK(this,ThumbnailView,OnItemSelected)); ImplInsertItem( pItem, nPos ); } @@ -1047,7 +1047,7 @@ rtl::OUString ThumbnailView::GetItemText( sal_uInt16 nItemId ) const size_t nPos = GetItemPos( nItemId ); if ( nPos != THUMBNAILVIEW_ITEM_NOTFOUND ) - return mItemList[nPos]->maText; + return mItemList[nPos]->maTitle; return rtl::OUString(); } diff --git a/sfx2/source/control/thumbnailviewacc.cxx b/sfx2/source/control/thumbnailviewacc.cxx index 48a6ce9..5ba12d3 100644 --- a/sfx2/source/control/thumbnailviewacc.cxx +++ b/sfx2/source/control/thumbnailviewacc.cxx @@ -772,7 +772,7 @@ sal_Int16 SAL_CALL ThumbnailViewItemAcc::getAccessibleRole() if( mpParent ) { - aRet = mpParent->maText; + aRet = mpParent->maTitle; if( aRet.isEmpty() ) { diff --git a/sfx2/source/control/thumbnailviewitem.cxx b/sfx2/source/control/thumbnailviewitem.cxx index dbbbcb7..dad7702 100644 --- a/sfx2/source/control/thumbnailviewitem.cxx +++ b/sfx2/source/control/thumbnailviewitem.cxx @@ -132,7 +132,7 @@ void ThumbnailViewItem::calculateItemsPosition (sal_uInt32 nMaxTextLenght) // Calculate text position aPos.Y() += aImageSize.Height(); aPos.Y() = aPos.Y() + aTextDev.getTextHeight() + (maDrawArea.Bottom() - aPos.Y() - aTextDev.getTextHeight())/2; - aPos.X() = maDrawArea.Left() + (aRectSize.Width() - aTextDev.getTextWidth(maText,0,nMaxTextLenght))/2; + aPos.X() = maDrawArea.Left() + (aRectSize.Width() - aTextDev.getTextWidth(maTitle,0,nMaxTextLenght))/2; maTextPos = aPos; // Calculate checkbox position @@ -199,7 +199,7 @@ void ThumbnailViewItem::Paint (drawinglayer::processor2d::BaseProcessor2D *pProc aSeq[2] = Primitive2DReference( new TextSimplePortionPrimitive2D(aTextMatrix, - maText,0,pAttrs->nMaxTextLenght, + maTitle,0,pAttrs->nMaxTextLenght, std::vector< double >( ), pAttrs->aFontAttr, com::sun::star::lang::Locale(), diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index decb401..9738060 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -60,7 +60,7 @@ public: bool operator() (const ThumbnailViewItem *pItem1, const ThumbnailViewItem *pItem2) { - return (pItem1->maText.compareTo(pItem2->maText) < 0); + return (pItem1->maTitle.compareTo(pItem2->maTitle) < 0); } }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits