[Libreoffice-commits] .: 5 commits - sfx2/inc sfx2/source

Rafael Dominguez rdominguez at kemper.freedesktop.org
Sun Aug 12 19:57:04 PDT 2012


 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 <venccsralph at 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 <venccsralph at 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 <venccsralph at 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 <venccsralph at 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 <venccsralph at 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();
+        }
     }
 }
 


More information about the Libreoffice-commits mailing list