sfx2/inc/sfx2/templateabstractview.hxx | 16 ++++++ sfx2/inc/sfx2/templatelocalview.hxx | 4 - sfx2/inc/sfx2/templatelocalviewitem.hxx | 2 sfx2/inc/sfx2/templateonlineview.hxx | 2 sfx2/inc/sfx2/templateviewitem.hxx | 3 - sfx2/inc/sfx2/thumbnailviewitem.hxx | 5 - sfx2/source/control/templateabstractview.cxx | 12 ++++ sfx2/source/control/templatelocalview.cxx | 41 +++++++-------- sfx2/source/control/templatelocalviewitem.cxx | 5 - sfx2/source/control/templateonlineview.cxx | 17 ------ sfx2/source/control/templateviewitem.cxx | 15 ++--- sfx2/source/control/thumbnailview.cxx | 16 ++++-- sfx2/source/control/thumbnailviewitem.cxx | 19 ++----- sfx2/source/doc/templatedlg.cxx | 69 +++++++++++++++++--------- sfx2/source/doc/templatedlg.src | 5 + 15 files changed, 135 insertions(+), 96 deletions(-)
New commits: commit e51dc25f456db8a2f0130b12ee3d5a90d2fd27a2 Author: Rafael Dominguez <venccsra...@gmail.com> Date: Sun Aug 12 21:51:18 2012 -0430 Check correct area when selecting a template by clicking its name. Change-Id: Idfb4509327c2c9c52f5c736d513d35e3270d91b1 diff --git a/sfx2/inc/sfx2/thumbnailviewitem.hxx b/sfx2/inc/sfx2/thumbnailviewitem.hxx index cb389b9..3b1aa95 100644 --- a/sfx2/inc/sfx2/thumbnailviewitem.hxx +++ b/sfx2/inc/sfx2/thumbnailviewitem.hxx @@ -106,8 +106,6 @@ public: void setSelectClickHdl (const Link &link); - bool isInsideTitle (const Point &pt) const; - virtual void Paint (drawinglayer::processor2d::BaseProcessor2D *pProcessor, const ThumbnailItemAttributes *pAttrs); diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index 89946b8..c9b4a13 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -566,7 +566,11 @@ void ThumbnailView::MouseButtonDown( const MouseEvent& rMEvt ) } else { - if (pItem->isInsideTitle(rMEvt.GetPosPixel())) + Rectangle aRect(pItem->getDrawArea()); + aRect.setY(aRect.getY()+mnItemPadding+mnThumbnailHeight); + aRect.SetSize(Size(mnItemWidth,mnDisplayHeight+mnItemPadding)); + + if (aRect.IsInside(rMEvt.GetPosPixel())) { pItem->setSelection(!pItem->isSelected()); diff --git a/sfx2/source/control/thumbnailviewitem.cxx b/sfx2/source/control/thumbnailviewitem.cxx index dd79548..9db5cbd 100644 --- a/sfx2/source/control/thumbnailviewitem.cxx +++ b/sfx2/source/control/thumbnailviewitem.cxx @@ -156,14 +156,6 @@ void ThumbnailViewItem::setSelectClickHdl (const Link &link) maClickHdl = link; } -bool ThumbnailViewItem::isInsideTitle (const Point &pt) const -{ - Rectangle aRect(Point(maTextPos.X(),mpSelectBox->GetPosPixel().Y()), - Point(maDrawArea.Right(),maDrawArea.Bottom())); - - return aRect.IsInside(pt); -} - void ThumbnailViewItem::Paint (drawinglayer::processor2d::BaseProcessor2D *pProcessor, const ThumbnailItemAttributes *pAttrs) { commit 3b709149e605c90eb16743b9b6907294a6cb198e Author: Rafael Dominguez <venccsra...@gmail.com> Date: Sun Aug 12 21:38:24 2012 -0430 Perform dbl click action only if its inside the thumbnail area. Change-Id: Ib60f5882fbe89e697ef0755d87474a84ce8d0fe7 diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index df23f94..89946b8 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -580,7 +580,13 @@ void ThumbnailView::MouseButtonDown( const MouseEvent& rMEvt ) } } else if ( rMEvt.GetClicks() == 2 ) - OnItemDblClicked(pItem); + { + Rectangle aRect(pItem->getDrawArea()); + aRect.SetSize(Size(mnItemWidth,mnThumbnailHeight)); + + if (!mbSelectionMode && aRect.IsInside(rMEvt.GetPosPixel())) + OnItemDblClicked(pItem); + } } return; commit a8b2083877894ffb19be0c95ae2aeb4373c0161a Author: Rafael Dominguez <venccsra...@gmail.com> Date: Sun Aug 12 20:20:34 2012 -0430 Improve thumbnail items position calculation and size. Change-Id: I7b22d4d858d82bd1e12ead3b723aad43118cf938 diff --git a/sfx2/inc/sfx2/templateabstractview.hxx b/sfx2/inc/sfx2/templateabstractview.hxx index 1555ebb..eff8da5 100644 --- a/sfx2/inc/sfx2/templateabstractview.hxx +++ b/sfx2/inc/sfx2/templateabstractview.hxx @@ -12,6 +12,18 @@ #include <sfx2/thumbnailview.hxx> +//template thumbnail item defines +#define TEMPLATE_ITEM_MAX_WIDTH 192 +#define TEMPLATE_ITEM_MAX_HEIGHT 160 +#define TEMPLATE_ITEM_PADDING 5 +#define TEMPLATE_ITEM_SPACE 30 +#define TEMPLATE_ITEM_MAX_TEXT_LENGTH 20 +#define TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT 128 + +//template thumbnail image defines +#define TEMPLATE_THUMBNAIL_MAX_HEIGHT 128 - 2*TEMPLATE_ITEM_PADDING +#define TEMPLATE_THUMBNAIL_MAX_WIDTH TEMPLATE_ITEM_MAX_WIDTH - 2*TEMPLATE_ITEM_PADDING + class TemplateView; class SfxDocumentTemplates; @@ -74,6 +86,8 @@ public: virtual void showOverlay (bool bVisible) = 0; + void setItemDimensions (long ItemWidth, long ThumbnailHeight, long DisplayHeight, int itemPadding); + sal_uInt16 getOverlayRegionId () const; const OUString& getOverlayName () const; diff --git a/sfx2/inc/sfx2/templatelocalviewitem.hxx b/sfx2/inc/sfx2/templatelocalviewitem.hxx index 2f75159..80330b2 100644 --- a/sfx2/inc/sfx2/templatelocalviewitem.hxx +++ b/sfx2/inc/sfx2/templatelocalviewitem.hxx @@ -26,8 +26,6 @@ public: virtual ~TemplateLocalViewItem (); - virtual void calculateItemsPosition (sal_uInt32 nMaxTextLenght); - const Point& getPrev2Pos () const { return maPrev2Pos; } virtual void Paint (drawinglayer::processor2d::BaseProcessor2D *pProcessor, diff --git a/sfx2/inc/sfx2/templateonlineview.hxx b/sfx2/inc/sfx2/templateonlineview.hxx index 78f6233..d64f947 100644 --- a/sfx2/inc/sfx2/templateonlineview.hxx +++ b/sfx2/inc/sfx2/templateonlineview.hxx @@ -46,8 +46,6 @@ public: void syncRepositories () const; - void setItemDimensions (long ItemWidth, long ThumbnailHeight, long DisplayHeight, int itemPadding); - private: DECL_LINK(ChangeNameHdl, TemplateView*); diff --git a/sfx2/inc/sfx2/templateviewitem.hxx b/sfx2/inc/sfx2/templateviewitem.hxx index 74b53c0..a64b15d 100644 --- a/sfx2/inc/sfx2/templateviewitem.hxx +++ b/sfx2/inc/sfx2/templateviewitem.hxx @@ -40,7 +40,8 @@ public: const rtl::OUString& getSubTitle () const { return maSubTitle; } - virtual void calculateItemsPosition (sal_uInt32 nMaxTextLength); + virtual void calculateItemsPosition (const long nThumbnailHeight, const long nDisplayHeight, + const long nPadding, sal_uInt32 nMaxTextLenght); virtual void Paint (drawinglayer::processor2d::BaseProcessor2D *pProcessor, const ThumbnailItemAttributes *pAttrs); diff --git a/sfx2/inc/sfx2/thumbnailviewitem.hxx b/sfx2/inc/sfx2/thumbnailviewitem.hxx index e6719c9..cb389b9 100644 --- a/sfx2/inc/sfx2/thumbnailviewitem.hxx +++ b/sfx2/inc/sfx2/thumbnailviewitem.hxx @@ -95,7 +95,8 @@ public: const Rectangle& getDrawArea () const { return maDrawArea; } - virtual void calculateItemsPosition (sal_uInt32 nMaxTextLenght); + virtual void calculateItemsPosition (const long nThumbnailHeight, const long nDisplayHeight, + const long nPadding, sal_uInt32 nMaxTextLenght); const Point& getTextPos () const { return maTextPos; } diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx index cb42286..7483f80 100644 --- a/sfx2/source/control/templateabstractview.cxx +++ b/sfx2/source/control/templateabstractview.cxx @@ -75,6 +75,13 @@ TemplateAbstractView::~TemplateAbstractView () delete mpItemView; } +void TemplateAbstractView::setItemDimensions(long ItemWidth, long ThumbnailHeight, long DisplayHeight, int itemPadding) +{ + ThumbnailView::setItemDimensions(ItemWidth,ThumbnailHeight,DisplayHeight,itemPadding); + + mpItemView->setItemDimensions(ItemWidth,ThumbnailHeight,DisplayHeight,itemPadding); +} + sal_uInt16 TemplateAbstractView::getOverlayRegionId() const { return mpItemView->getId(); diff --git a/sfx2/source/control/templatelocalview.cxx b/sfx2/source/control/templatelocalview.cxx index 02168ce..53624b9 100644 --- a/sfx2/source/control/templatelocalview.cxx +++ b/sfx2/source/control/templatelocalview.cxx @@ -26,12 +26,6 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/XSingleServiceFactory.hpp> -#define ITEM_MAX_WIDTH 192 -#define ITEM_MAX_HEIGHT 192 -#define ITEM_PADDING 5 -#define THUMBNAIL_MAX_HEIGHT 128 - 2*ITEM_PADDING -#define THUMBNAIL_MAX_WIDTH ITEM_MAX_WIDTH - 2*ITEM_PADDING - void lcl_updateThumbnails (TemplateLocalViewItem *pItem); class FolderFilter_Application @@ -108,10 +102,6 @@ TemplateLocalView::TemplateLocalView ( Window* pParent, const ResId& rResId, boo mpDocTemplates(new SfxDocumentTemplates) { mpItemView->SetColor(Color(COL_WHITE)); - mpItemView->setItemDimensions(ITEM_MAX_WIDTH,THUMBNAIL_MAX_HEIGHT, - ITEM_MAX_HEIGHT-THUMBNAIL_MAX_HEIGHT, - ITEM_PADDING); - mpItemView->setChangeNameHdl(LINK(this,TemplateLocalView,ChangeNameHdl)); } @@ -159,7 +149,9 @@ void TemplateLocalView::Populate () aProperties.aName = aName; aProperties.aPath = aURL; aProperties.aType = aType; - aProperties.aThumbnail = TemplateAbstractView::fetchThumbnail(aURL,THUMBNAIL_MAX_WIDTH,THUMBNAIL_MAX_HEIGHT); + aProperties.aThumbnail = TemplateAbstractView::fetchThumbnail(aURL, + TEMPLATE_THUMBNAIL_MAX_WIDTH, + TEMPLATE_THUMBNAIL_MAX_HEIGHT); pItem->maTemplates.push_back(aProperties); } @@ -600,8 +592,8 @@ bool TemplateLocalView::copyFrom (TemplateLocalViewItem *pItem, const rtl::OUStr aTemplate.nRegionId = nRegionId; aTemplate.aName = aPath; aTemplate.aThumbnail = TemplateAbstractView::fetchThumbnail(rPath, - THUMBNAIL_MAX_WIDTH, - THUMBNAIL_MAX_HEIGHT); + TEMPLATE_THUMBNAIL_MAX_WIDTH, + TEMPLATE_THUMBNAIL_MAX_HEIGHT); aTemplate.aPath = rPath; aTemplate.aType = SvFileInformationManager::GetDescription(INetURLObject(rPath)); @@ -678,7 +670,8 @@ IMPL_LINK(TemplateLocalView, ChangeNameHdl, TemplateView*, pView) if (mItemList[i]->mnId == nItemId) { mItemList[i]->maTitle = pView->getName(); - mItemList[i]->calculateItemsPosition(mpItemAttrs->nMaxTextLenght); + mItemList[i]->calculateItemsPosition(mnThumbnailHeight,mnDisplayHeight, + mnItemPadding,mpItemAttrs->nMaxTextLenght); Invalidate(); break; } @@ -698,14 +691,14 @@ void lcl_updateThumbnails (TemplateLocalViewItem *pItem) if (i == 0) { pItem->maPreview1 = TemplateAbstractView::scaleImg(pItem->maTemplates[i].aThumbnail, - THUMBNAIL_MAX_WIDTH*0.75, - THUMBNAIL_MAX_HEIGHT*0.75); + TEMPLATE_THUMBNAIL_MAX_WIDTH*0.75, + TEMPLATE_THUMBNAIL_MAX_HEIGHT*0.75); } else { pItem->maPreview2 = TemplateAbstractView::scaleImg(pItem->maTemplates[i].aThumbnail, - THUMBNAIL_MAX_WIDTH*0.75, - THUMBNAIL_MAX_HEIGHT*0.75); + TEMPLATE_THUMBNAIL_MAX_WIDTH*0.75, + TEMPLATE_THUMBNAIL_MAX_HEIGHT*0.75); } } } diff --git a/sfx2/source/control/templatelocalviewitem.cxx b/sfx2/source/control/templatelocalviewitem.cxx index 32f1e2e..765b544 100644 --- a/sfx2/source/control/templatelocalviewitem.cxx +++ b/sfx2/source/control/templatelocalviewitem.cxx @@ -34,11 +34,6 @@ TemplateLocalViewItem::~TemplateLocalViewItem () { } -void TemplateLocalViewItem::calculateItemsPosition (sal_uInt32 nMaxTextLenght) -{ - ThumbnailViewItem::calculateItemsPosition(nMaxTextLenght); -} - void TemplateLocalViewItem::Paint (drawinglayer::processor2d::BaseProcessor2D *pProcessor, const ThumbnailItemAttributes *pAttrs) { diff --git a/sfx2/source/control/templateonlineview.cxx b/sfx2/source/control/templateonlineview.cxx index de74ab5..c608a11 100644 --- a/sfx2/source/control/templateonlineview.cxx +++ b/sfx2/source/control/templateonlineview.cxx @@ -26,12 +26,6 @@ #include <com/sun/star/ucb/XContentAccess.hpp> #include <com/sun/star/ucb/XDynamicResultSet.hpp> -#define ITEM_MAX_WIDTH 192 -#define ITEM_MAX_HEIGHT 192 -#define ITEM_PADDING 5 -#define THUMBNAIL_MAX_HEIGHT 128 - 2*ITEM_PADDING -#define THUMBNAIL_MAX_WIDTH ITEM_MAX_WIDTH - 2*ITEM_PADDING - using namespace com::sun::star; using namespace com::sun::star::lang; using namespace com::sun::star::task; @@ -214,8 +208,8 @@ bool TemplateOnlineView::loadRepository (const sal_uInt16 nRepositoryId, bool bR aTemplateItem.nRegionId = pItem->mnId-1; aTemplateItem.aPath = sRealURL; aTemplateItem.aThumbnail = TemplateAbstractView::fetchThumbnail(sRealURL, - THUMBNAIL_MAX_WIDTH, - THUMBNAIL_MAX_HEIGHT); + TEMPLATE_THUMBNAIL_MAX_WIDTH, + TEMPLATE_THUMBNAIL_MAX_HEIGHT); // pData->mbIsRemote = xRow->getBoolean( ROW_IS_REMOTE ) && !xRow->wasNull(); // pData->mbIsRemoveable = xRow->getBoolean( ROW_IS_REMOVEABLE ) && !xRow->wasNull(); aTemplateItem.aName = xRow->getString( ROW_TITLE ); @@ -322,13 +316,6 @@ void TemplateOnlineView::syncRepositories() const } } -void TemplateOnlineView::setItemDimensions(long ItemWidth, long ThumbnailHeight, long DisplayHeight, int itemPadding) -{ - ThumbnailView::setItemDimensions(ItemWidth,ThumbnailHeight,DisplayHeight,itemPadding); - - mpItemView->setItemDimensions(ItemWidth,ThumbnailHeight,DisplayHeight,itemPadding); -} - IMPL_LINK (TemplateOnlineView, ChangeNameHdl, TemplateView*, pView) { bool bRet = false; diff --git a/sfx2/source/control/templateviewitem.cxx b/sfx2/source/control/templateviewitem.cxx index 4b559d3..a3f835e 100644 --- a/sfx2/source/control/templateviewitem.cxx +++ b/sfx2/source/control/templateviewitem.cxx @@ -35,27 +35,26 @@ TemplateViewItem::~TemplateViewItem () { } -void TemplateViewItem::calculateItemsPosition(sal_uInt32 nMaxTextLength) +void TemplateViewItem::calculateItemsPosition(const long nThumbnailHeight, const long nDisplayHeight, + const long nPadding, sal_uInt32 nMaxTextLenght) { - ThumbnailViewItem::calculateItemsPosition(nMaxTextLength); + ThumbnailViewItem::calculateItemsPosition(nThumbnailHeight,nDisplayHeight,nPadding,nMaxTextLenght); 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; + long nSpace = (nDisplayHeight + nPadding - 2*aTextDev.getTextHeight()) / 3; // Set title position - maTextPos.setY(maPrev1Pos.getY() + aImageSize.getHeight() + nSpace); + maTextPos.setY(maDrawArea.getY() + nThumbnailHeight + nPadding + nSpace + aTextDev.getTextHeight()); // Set subtitle position - maSubTitlePos.setY(maTextPos.getY() + nSpace); + maSubTitlePos.setY(maTextPos.getY() + nSpace + aTextDev.getTextHeight()); maSubTitlePos.setX(maDrawArea.Left() + - (aRectSize.Width() - aTextDev.getTextWidth(maSubTitle,0,nMaxTextLength)*SUBTITLE_SCALE_FACTOR)/2); + (aRectSize.Width() - aTextDev.getTextWidth(maSubTitle,0,nMaxTextLenght)*SUBTITLE_SCALE_FACTOR)/2); } } diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index fe886a8..df23f94 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -337,7 +337,7 @@ void ThumbnailView::CalculateItemPositions () pItem->show(true); pItem->setDrawArea(Rectangle( Point(x,y), Size(mnItemWidth, mnItemHeight) )); - pItem->calculateItemsPosition(mpItemAttrs->nMaxTextLenght); + pItem->calculateItemsPosition(mnThumbnailHeight,mnDisplayHeight,mnItemPadding,mpItemAttrs->nMaxTextLenght); if ( !((nCurCount+1) % mnCols) ) { diff --git a/sfx2/source/control/thumbnailviewitem.cxx b/sfx2/source/control/thumbnailviewitem.cxx index dad7702..dd79548 100644 --- a/sfx2/source/control/thumbnailviewitem.cxx +++ b/sfx2/source/control/thumbnailviewitem.cxx @@ -116,7 +116,8 @@ void ThumbnailViewItem::setDrawArea (const Rectangle &area) maDrawArea = area; } -void ThumbnailViewItem::calculateItemsPosition (sal_uInt32 nMaxTextLenght) +void ThumbnailViewItem::calculateItemsPosition (const long nThumbnailHeight, const long nDisplayHeight, + const long nPadding, sal_uInt32 nMaxTextLenght) { drawinglayer::primitive2d::TextLayouterDevice aTextDev; @@ -125,13 +126,13 @@ void ThumbnailViewItem::calculateItemsPosition (sal_uInt32 nMaxTextLenght) // Calculate thumbnail position Point aPos = maDrawArea.TopLeft(); - aPos.X() = maDrawArea.Left() + (aRectSize.Width()-aImageSize.Width())/2; - aPos.Y() = maDrawArea.Top() + (aRectSize.Height()-aImageSize.Height())/2; + aPos.X() = maDrawArea.getX() + (aRectSize.Width()-aImageSize.Width())/2; + aPos.Y() = maDrawArea.getY() + nPadding + (nThumbnailHeight-aImageSize.Height())/2; maPrev1Pos = aPos; // Calculate text position - aPos.Y() += aImageSize.Height(); - aPos.Y() = aPos.Y() + aTextDev.getTextHeight() + (maDrawArea.Bottom() - aPos.Y() - aTextDev.getTextHeight())/2; + aPos.Y() = maDrawArea.getY() + nThumbnailHeight + nPadding; + aPos.Y() = aPos.Y() + aTextDev.getTextHeight() + (nDisplayHeight - aTextDev.getTextHeight())/2; aPos.X() = maDrawArea.Left() + (aRectSize.Width() - aTextDev.getTextWidth(maTitle,0,nMaxTextLenght))/2; maTextPos = aPos; diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index 35acaea..d93162a 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -50,13 +50,6 @@ #include "doc.hrc" #include "templatedlg.hrc" -#define ITEM_MAX_WIDTH 192 -#define ITEM_MAX_HEIGHT 192 -#define ITEM_PADDING 5 -#define ITEM_SPACE 30 -#define ITEM_MAX_TEXT_LENGTH 20 -#define THUMBNAIL_MAX_HEIGHT 128 - #define INIT_FOLDER_COLS 3 #define INIT_FOLDER_LINES 2 @@ -142,7 +135,7 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) // Calculate thumbnail view minimum size Size aThumbSize = maView->CalcWindowSizePixel(INIT_FOLDER_COLS,INIT_FOLDER_LINES, - ITEM_MAX_WIDTH,ITEM_MAX_HEIGHT,ITEM_SPACE); + TEMPLATE_ITEM_MAX_WIDTH,TEMPLATE_ITEM_MAX_HEIGHT,TEMPLATE_ITEM_SPACE); if (aWinSize.getWidth() < aThumbSize.getWidth() + 2*PADDING_DLG_BORDER) aWinSize.setWidth(aThumbSize.getWidth() + 2*PADDING_DLG_BORDER); @@ -200,11 +193,11 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) maView->SetStyle(WB_VSCROLL); maView->SetSizePixel(aThumbSize); - maView->setItemMaxTextLength(ITEM_MAX_TEXT_LENGTH); + maView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH); - maView->setItemDimensions(ITEM_MAX_WIDTH,THUMBNAIL_MAX_HEIGHT, - ITEM_MAX_HEIGHT-THUMBNAIL_MAX_HEIGHT, - ITEM_PADDING); + maView->setItemDimensions(TEMPLATE_ITEM_MAX_WIDTH,TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, + TEMPLATE_ITEM_MAX_HEIGHT-TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, + TEMPLATE_ITEM_PADDING); maView->setItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVFolderStateHdl)); maView->setOverlayItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl)); @@ -213,11 +206,11 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) // Set online view position and dimensions mpOnlineView->SetPosSizePixel(aViewPos,aThumbSize); - mpOnlineView->setItemMaxTextLength(ITEM_MAX_TEXT_LENGTH); + mpOnlineView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH); - mpOnlineView->setItemDimensions(ITEM_MAX_WIDTH,THUMBNAIL_MAX_HEIGHT, - ITEM_MAX_HEIGHT-THUMBNAIL_MAX_HEIGHT, - ITEM_PADDING); + mpOnlineView->setItemDimensions(TEMPLATE_ITEM_MAX_WIDTH,TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, + TEMPLATE_ITEM_MAX_HEIGHT-TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, + TEMPLATE_ITEM_PADDING); mpOnlineView->setOverlayItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl)); mpOnlineView->setOverlayDblClickHdl(LINK(this,SfxTemplateManagerDlg,OpenTemplateHdl)); @@ -225,11 +218,11 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent) mpOnlineView->setOverlayChangeNameHdl(LINK(this,SfxTemplateManagerDlg,RepositoryChangeNameHdl)); mpSearchView->SetSizePixel(aThumbSize); - mpSearchView->setItemMaxTextLength(ITEM_MAX_TEXT_LENGTH); + mpSearchView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH); - mpSearchView->setItemDimensions(ITEM_MAX_WIDTH,THUMBNAIL_MAX_HEIGHT, - ITEM_MAX_HEIGHT-THUMBNAIL_MAX_HEIGHT, - ITEM_PADDING); + mpSearchView->setItemDimensions(TEMPLATE_ITEM_MAX_WIDTH,TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, + TEMPLATE_ITEM_MAX_HEIGHT-TEMPLATE_ITEM_THUMBNAIL_MAX_HEIGHT, + TEMPLATE_ITEM_PADDING); mpSearchView->setItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl)); commit 74d2421afc86c72d07a4f9d1f9824f41461900bb Author: Rafael Dominguez <venccsra...@gmail.com> Date: Sun Aug 12 18:19:06 2012 -0430 Display an error msg when importing a template fails. Change-Id: I87b6365bc95ce8243e38dcbfedc3892c888a8e90 diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index 4291b61..35acaea 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -773,10 +773,26 @@ void SfxTemplateManagerDlg::OnTemplateImport () std::set<const ThumbnailViewItem*>::const_iterator pIter; for (pIter = maSelFolders.begin(); pIter != maSelFolders.end(); ++pIter) { + OUString aTemplateList; TemplateLocalViewItem *pFolder = (TemplateLocalViewItem*)(*pIter); for (size_t i = 0, n = aFiles.getLength(); i < n; ++i) - maView->copyFrom(pFolder,aFiles[i]); + { + if(!maView->copyFrom(pFolder,aFiles[i])) + { + if (aTemplateList.isEmpty()) + aTemplateList = aFiles[i]; + else + aTemplateList = aTemplateList + "\n" + aFiles[i]; + } + } + + if (!aTemplateList.isEmpty()) + { + OUString aMsg(SfxResId(STR_MSG_ERROR_IMPORT).toString()); + aMsg = aMsg.replaceFirst("$1",pFolder->maTitle); + ErrorBox(this,WB_OK,aMsg.replaceFirst("$2",aTemplateList)); + } } maView->Invalidate(INVALIDATE_NOERASE); diff --git a/sfx2/source/doc/templatedlg.src b/sfx2/source/doc/templatedlg.src index 9024851..60d0580 100644 --- a/sfx2/source/doc/templatedlg.src +++ b/sfx2/source/doc/templatedlg.src @@ -60,6 +60,11 @@ String STR_MSG_ERROR_EXPORT Text [ en-US ] = "Error exporting the following templates:\n$1"; }; +String STR_MSG_ERROR_IMPORT +{ + Text [ en-US ] = "Error importing the following templates to $1:\n$2"; +}; + String STR_MSG_ERROR_DELETE_TEMPLATE { Text [ en-US ] = "The following templates cannot be deleted:\n$1"; commit 2b5ce6190066ed030cc221c4cfa236a8e4e4747e Author: Rafael Dominguez <venccsra...@gmail.com> Date: Sun Aug 12 17:14:16 2012 -0430 Display error msg when moving a template from a repository fails. Change-Id: I5f483bcb0e216a6337e0bf70399916bd2da3faec diff --git a/sfx2/inc/sfx2/templateabstractview.hxx b/sfx2/inc/sfx2/templateabstractview.hxx index 24edcd7..1555ebb 100644 --- a/sfx2/inc/sfx2/templateabstractview.hxx +++ b/sfx2/inc/sfx2/templateabstractview.hxx @@ -76,6 +76,8 @@ public: sal_uInt16 getOverlayRegionId () const; + const OUString& getOverlayName () const; + // Check if the overlay is visible or not. bool isOverlayVisible () const; diff --git a/sfx2/inc/sfx2/templatelocalview.hxx b/sfx2/inc/sfx2/templatelocalview.hxx index f3d4ec6..d595196 100644 --- a/sfx2/inc/sfx2/templatelocalview.hxx +++ b/sfx2/inc/sfx2/templatelocalview.hxx @@ -51,9 +51,9 @@ public: bool moveTemplates (std::set<const ThumbnailViewItem*> &rItems, const sal_uInt16 nTargetItem, bool bCopy); - void copyFrom (const sal_uInt16 nRegionItemId, const BitmapEx &rThumbnail, const OUString &rPath); + bool copyFrom (const sal_uInt16 nRegionItemId, const BitmapEx &rThumbnail, const OUString &rPath); - void copyFrom (TemplateLocalViewItem *pItem, const rtl::OUString &rPath); + bool copyFrom(TemplateLocalViewItem *pItem, const rtl::OUString &rPath); bool exportTo (const sal_uInt16 nItemId, const sal_uInt16 nRegionItemId, const OUString &rName); diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx index 4ce28f6..cb42286 100644 --- a/sfx2/source/control/templateabstractview.cxx +++ b/sfx2/source/control/templateabstractview.cxx @@ -80,6 +80,11 @@ sal_uInt16 TemplateAbstractView::getOverlayRegionId() const return mpItemView->getId(); } +const OUString &TemplateAbstractView::getOverlayName() const +{ + return mpItemView->getName(); +} + bool TemplateAbstractView::isOverlayVisible () const { return mpItemView->IsVisible(); diff --git a/sfx2/source/control/templatelocalview.cxx b/sfx2/source/control/templatelocalview.cxx index e4c07c7..02168ce 100644 --- a/sfx2/source/control/templatelocalview.cxx +++ b/sfx2/source/control/templatelocalview.cxx @@ -528,7 +528,7 @@ bool TemplateLocalView::moveTemplates(std::set<const ThumbnailViewItem *> &rItem return ret; } -void TemplateLocalView::copyFrom(const sal_uInt16 nRegionItemId, const BitmapEx &rThumbnail, +bool TemplateLocalView::copyFrom(const sal_uInt16 nRegionItemId, const BitmapEx &rThumbnail, const OUString &rPath) { sal_uInt16 nRegionId = nRegionItemId - 1; @@ -568,14 +568,18 @@ void TemplateLocalView::copyFrom(const sal_uInt16 nRegionItemId, const BitmapEx pItem->maTemplates.push_back(aTemplate); lcl_updateThumbnails(pItem); + + return true; } break; } } + + return false; } -void TemplateLocalView::copyFrom (TemplateLocalViewItem *pItem, const rtl::OUString &rPath) +bool TemplateLocalView::copyFrom (TemplateLocalViewItem *pItem, const rtl::OUString &rPath) { sal_uInt16 nId = 0; sal_uInt16 nDocId = 0; @@ -606,7 +610,11 @@ void TemplateLocalView::copyFrom (TemplateLocalViewItem *pItem, const rtl::OUStr lcl_updateThumbnails(pItem); CalculateItemPositions(); + + return true; } + + return false; } bool TemplateLocalView::exportTo(const sal_uInt16 nItemId, const sal_uInt16 nRegionItemId, const OUString &rName) diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx index b0461e7..4291b61 100644 --- a/sfx2/source/doc/templatedlg.cxx +++ b/sfx2/source/doc/templatedlg.cxx @@ -1243,16 +1243,32 @@ void SfxTemplateManagerDlg::remoteMoveTo(const sal_uInt16 nMenuId) if (nItemId) { + OUString aTemplateList; + std::set<const ThumbnailViewItem*>::const_iterator aIter; for (aIter = maSelTemplates.begin(); aIter != maSelTemplates.end(); ++aIter) { const TemplateSearchViewItem *pItem = static_cast<const TemplateSearchViewItem*>(*aIter); - maView->copyFrom(nItemId,pItem->maPreview1,pItem->getPath()); + if(!maView->copyFrom(nItemId,pItem->maPreview1,pItem->getPath())) + { + if (aTemplateList.isEmpty()) + aTemplateList = pItem->maTitle; + else + aTemplateList = aTemplateList + "\n" + pItem->maTitle; + } } maView->Invalidate(INVALIDATE_NOERASE); + + if (!aTemplateList.isEmpty()) + { + OUString aMsg(SfxResId(STR_MSG_ERROR_REMOTE_MOVE).toString()); + aMsg = aMsg.replaceFirst("$1",mpOnlineView->getOverlayName()); + aMsg = aMsg.replaceFirst("$2",maView->GetItemText(nItemId)); + ErrorBox(this,WB_OK,aMsg.replaceFirst("$1",aTemplateList)).Execute(); + } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits