sfx2/inc/sfx2/doctempl.hxx | 2 sfx2/inc/sfx2/templateabstractview.hxx | 5 +- sfx2/inc/sfx2/templatelocalview.hxx | 2 sfx2/source/control/templateabstractview.cxx | 2 sfx2/source/control/templatelocalview.cxx | 58 ++++++++++++++++++++++++--- sfx2/source/control/templateviewitem.cxx | 3 - sfx2/source/doc/doctempl.cxx | 18 ++++++++ sfx2/source/doc/templatedlg.cxx | 5 -- 8 files changed, 80 insertions(+), 15 deletions(-)
New commits: commit ba632715b0a2f610f4146e950898625481cb8d9c Author: Rafael Dominguez <venccsra...@gmail.com> Date: Thu Mar 28 20:40:48 2013 -0430 Dont reload template information after saving. Change-Id: Id4170e500d92dc912087eac137f38d243c3c1372 diff --git a/sfx2/inc/sfx2/doctempl.hxx b/sfx2/inc/sfx2/doctempl.hxx index ee91fd4..a84ac11 100644 --- a/sfx2/inc/sfx2/doctempl.hxx +++ b/sfx2/inc/sfx2/doctempl.hxx @@ -92,6 +92,8 @@ public: sal_Bool Delete(sal_uInt16 nRegion, sal_uInt16 nIdx); sal_Bool InsertDir(const String &rText, sal_uInt16 nRegion); + sal_Bool InsertTemplate (sal_uInt16 nSourceRegion, sal_uInt16 nIdx, const OUString &rName, const OUString &rPath); + /** Change the name of an entry or a directory \param rName diff --git a/sfx2/inc/sfx2/templatelocalview.hxx b/sfx2/inc/sfx2/templatelocalview.hxx index b0d86ae..2837eca 100644 --- a/sfx2/inc/sfx2/templatelocalview.hxx +++ b/sfx2/inc/sfx2/templatelocalview.hxx @@ -81,7 +81,7 @@ public: com::sun::star::uno::Reference<com::sun::star::frame::XModel> &rModel, const OUString &rName); - bool saveTemplateAs (const TemplateContainerItem *pDstItem, + bool saveTemplateAs (TemplateContainerItem *pDstItem, com::sun::star::uno::Reference<com::sun::star::frame::XModel> &rModel, const OUString &rName); diff --git a/sfx2/source/control/templatelocalview.cxx b/sfx2/source/control/templatelocalview.cxx index b6fcc50..90f928b 100644 --- a/sfx2/source/control/templatelocalview.cxx +++ b/sfx2/source/control/templatelocalview.cxx @@ -695,21 +695,50 @@ bool TemplateLocalView::saveTemplateAs (sal_uInt16 nItemId, com::sun::star::uno::Reference<com::sun::star::frame::XModel> &rModel, const OUString &rName) { - bool bRet = false; for (size_t i = 0, n = maRegions.size(); i < n; ++i) { if (maRegions[i]->mnId == nItemId) { - bRet = saveTemplateAs((const TemplateContainerItem*)maRegions[i],rModel,rName); - break; + uno::Reference< frame::XStorable > xStorable(rModel, uno::UNO_QUERY_THROW ); + + uno::Reference< frame::XDocumentTemplates > xTemplates( + frame::DocumentTemplates::create(comphelper::getProcessComponentContext()) ); + + if (!xTemplates->storeTemplate(mpDocTemplates->GetRegionName(maRegions[i]->mnRegionId),rName, xStorable )) + return false; + + sal_uInt16 nDocId = maRegions[i]->maTemplates.size(); + + OUString aURL = mpDocTemplates->GetTemplateTargetURLFromComponent(mpDocTemplates->GetRegionName(maRegions[i]->mnRegionId),rName); + + if(!mpDocTemplates->InsertTemplate(maRegions[i]->mnRegionId,nDocId,rName,aURL)) + return false; + + + TemplateItemProperties aTemplate; + aTemplate.aIsFolder = false; + aTemplate.nId = getNextItemId(); + aTemplate.nDocId = nDocId; + aTemplate.nRegionId = maRegions[i]->mnRegionId; + aTemplate.aName = rName; + aTemplate.aThumbnail = TemplateAbstractView::fetchThumbnail(aURL, + TEMPLATE_THUMBNAIL_MAX_WIDTH, + TEMPLATE_THUMBNAIL_MAX_HEIGHT); + aTemplate.aPath = aURL; + + maRegions[i]->maTemplates.push_back(aTemplate); + + insertItem(aTemplate); + + return true; } } - return bRet; + return false; } -bool TemplateLocalView::saveTemplateAs(const TemplateContainerItem *pDstItem, +bool TemplateLocalView::saveTemplateAs(TemplateContainerItem *pDstItem, com::sun::star::uno::Reference<com::sun::star::frame::XModel> &rModel, const OUString &rName) { @@ -721,6 +750,25 @@ bool TemplateLocalView::saveTemplateAs(const TemplateContainerItem *pDstItem, if (!xTemplates->storeTemplate(mpDocTemplates->GetRegionName(pDstItem->mnRegionId),rName, xStorable )) return false; + sal_uInt16 nDocId = pDstItem->maTemplates.size(); + OUString aURL = mpDocTemplates->GetTemplateTargetURLFromComponent(mpDocTemplates->GetRegionName(pDstItem->mnRegionId),rName); + + if(!mpDocTemplates->InsertTemplate(pDstItem->mnRegionId,nDocId,rName,aURL)) + return false; + + TemplateItemProperties aTemplate; + aTemplate.aIsFolder = false; + aTemplate.nId = pDstItem->maTemplates.empty() ? 1 : pDstItem->maTemplates.back().nId+1; + aTemplate.nDocId = nDocId; + aTemplate.nRegionId = pDstItem->mnRegionId; + aTemplate.aName = rName; + aTemplate.aThumbnail = TemplateAbstractView::fetchThumbnail(aURL, + TEMPLATE_THUMBNAIL_MAX_WIDTH, + TEMPLATE_THUMBNAIL_MAX_HEIGHT); + aTemplate.aPath = aURL; + + pDstItem->maTemplates.push_back(aTemplate); + return true; } diff --git a/sfx2/source/doc/doctempl.cxx b/sfx2/source/doc/doctempl.cxx index 8faa60a..5132e70 100644 --- a/sfx2/source/doc/doctempl.cxx +++ b/sfx2/source/doc/doctempl.cxx @@ -1037,6 +1037,24 @@ sal_Bool SfxDocumentTemplates::InsertDir return sal_False; } +sal_Bool SfxDocumentTemplates::InsertTemplate(sal_uInt16 nSourceRegion, sal_uInt16 nIdx, const OUString &rName, const OUString &rPath) +{ + DocTemplLocker_Impl aLocker( *pImp ); + + if ( ! pImp->Construct() ) + return sal_False; + + RegionData_Impl *pRegion = pImp->GetRegion( nSourceRegion ); + + if ( !pRegion ) + return sal_False; + + size_t pos = nIdx; + pRegion->AddEntry( rName, rPath, &pos ); + + return sal_True; +} + sal_Bool SfxDocumentTemplates::SetName( const OUString& rName, sal_uInt16 nRegion, sal_uInt16 nIdx ) { diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index 5f13254..f9e1d55 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -1286,8 +1286,6 @@ void SfxTemplateManagerDlg::OnTemplateSaveAs() } } - maView->reload(); - if (!aFolderList.isEmpty()) { } commit 0d3906aa95e06f96efcf698d8926be0aae267b04 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Thu Mar 28 16:23:36 2013 -0430 Display empty folders in Template Manager. Change-Id: I5924fabd911d1b9bfb70cd7611fd1fe7a1a44dce diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx index 8287cad..aae6328 100644 --- a/sfx2/source/control/templateabstractview.cxx +++ b/sfx2/source/control/templateabstractview.cxx @@ -103,8 +103,6 @@ bool ViewFilter_Application::operator () (const ThumbnailViewItem *pItem) } } } - - return mApp != FILTER_APP_NONE ? nVisCount : true ; } return true; } commit cf8bd2d0e991329accbff4dabd5661828cd55e48 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Thu Mar 28 15:22:12 2013 -0430 Make template thumbnail sizes appropiate to the content in them. Change-Id: Iaf238413b95ed3d09f58d7adb49da13da9d71887 diff --git a/sfx2/inc/sfx2/templateabstractview.hxx b/sfx2/inc/sfx2/templateabstractview.hxx index c7ae46a..71ce703 100644 --- a/sfx2/inc/sfx2/templateabstractview.hxx +++ b/sfx2/inc/sfx2/templateabstractview.hxx @@ -17,11 +17,14 @@ //template thumbnail item defines #define TEMPLATE_ITEM_MAX_WIDTH 160 -#define TEMPLATE_ITEM_MAX_HEIGHT 160 +#define TEMPLATE_ITEM_MAX_HEIGHT 140 #define TEMPLATE_ITEM_PADDING 5 #define TEMPLATE_ITEM_MAX_TEXT_LENGTH 20 #define TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT 88 +//template thumbnail height with a subtitle +#define TEMPLATE_ITEM_MAX_HEIGHT_SUB 160 + //template thumbnail image defines #define TEMPLATE_THUMBNAIL_MAX_HEIGHT TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT - 2*TEMPLATE_ITEM_PADDING #define TEMPLATE_THUMBNAIL_MAX_WIDTH TEMPLATE_ITEM_MAX_WIDTH - 2*TEMPLATE_ITEM_PADDING diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index 6746e31..5f13254 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -226,7 +226,7 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) mpSearchView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH); mpSearchView->setItemDimensions(TEMPLATE_ITEM_MAX_WIDTH,TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, - TEMPLATE_ITEM_MAX_HEIGHT-TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, + TEMPLATE_ITEM_MAX_HEIGHT_SUB-TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, TEMPLATE_ITEM_PADDING); mpSearchView->setItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVItemStateHdl)); commit db0e80438f53942628dab8d8ef01c4982b9cf650 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Thu Mar 28 14:50:24 2013 -0430 Calculate template thumbnail subtitle position to fit drawing area. Change-Id: I8dc7d5dd055c9ef722279754381208d684686934 diff --git a/sfx2/source/control/templateviewitem.cxx b/sfx2/source/control/templateviewitem.cxx index 94ce4d3..d68268b 100644 --- a/sfx2/source/control/templateviewitem.cxx +++ b/sfx2/source/control/templateviewitem.cxx @@ -55,9 +55,6 @@ void TemplateViewItem::calculateItemsPosition(const long nThumbnailHeight, const long nSpace = (nDisplayHeight + nPadding - 2*aTextDev.getTextHeight()) / 3; - // Set title position - maTextPos.setY(maDrawArea.getY() + nThumbnailHeight + nPadding + nSpace + aTextDev.getTextHeight()); - // Set subtitle position maSubTitlePos.setY(maTextPos.getY() + nSpace + aTextDev.getTextHeight()); maSubTitlePos.setX(maDrawArea.Left() + commit 2c8ea7d9dff35e64701883b089e30715ed7b56b5 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Thu Mar 28 14:49:49 2013 -0430 Deselect items when searching for templates to reset toolbars. Change-Id: Ifacbc257abcc84284deb1723d30e74d45adca192 diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index 0273f55..6746e31 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -682,6 +682,7 @@ IMPL_LINK_NOARG(SfxTemplateManagerDlg, SearchUpdateHdl) // if the search view is hidden, hide the folder view and display search one if (!mpSearchView->IsVisible()) { + mpCurView->deselectItems(); mpSearchView->Show(); mpCurView->Hide(); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits