[Libreoffice-commits] .: Branch 'libreoffice-4-0' - 5 commits - sfx2/inc sfx2/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Dec 6 01:44:57 PST 2012


 sfx2/inc/sfx2/templateabstractview.hxx       |    4 +
 sfx2/inc/sfx2/templatelocalview.hxx          |    2 
 sfx2/inc/sfx2/templateview.hxx               |    6 +-
 sfx2/inc/sfx2/thumbnailview.hxx              |    4 +
 sfx2/inc/templatedlg.hxx                     |    3 +
 sfx2/source/control/templateabstractview.cxx |   66 ++++++++++++++++++++++-----
 sfx2/source/control/templatelocalview.cxx    |    6 +-
 sfx2/source/control/templateview.cxx         |    4 -
 sfx2/source/control/thumbnailview.cxx        |   46 ++++++++----------
 sfx2/source/doc/templatedlg.cxx              |   30 +++++++++---
 sfx2/source/doc/templatedlg.hrc              |    1 
 sfx2/source/doc/templatedlg.src              |   59 ++++++++++++++++++++++--
 12 files changed, 171 insertions(+), 60 deletions(-)

New commits:
commit 4396c1f1572de98b39937e4c07bdc68a8b84dee1
Author: Cédric Bosdonnat <cedric.bosdonnat at free.fr>
Date:   Wed Dec 5 18:40:16 2012 +0100

    Template manager: keep thumbnails ratio when scaling down
    
    Change-Id: Ic597dd9fd12895c0d21f678cba44feba9f6fcd47

diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx
index 8cbf60f..0baed64 100644
--- a/sfx2/source/control/templateabstractview.cxx
+++ b/sfx2/source/control/templateabstractview.cxx
@@ -137,10 +137,33 @@ BitmapEx TemplateAbstractView::scaleImg (const BitmapEx &rImg, long width, long
 {
     BitmapEx aImg = rImg;
 
-    int sWidth = std::min(aImg.GetSizePixel().getWidth(),width);
-    int sHeight = std::min(aImg.GetSizePixel().getHeight(),height);
+    if ( !rImg.IsEmpty() )
+    {
+
+        const Size& aImgSize = aImg.GetSizePixel();
+        double nRatio = double(aImgSize.getWidth()) / double(aImgSize.getHeight());
+
+        long nDestWidth = aImgSize.getWidth();
+        long nDestHeight = aImgSize.getHeight();
+
+        // Which one side is the overflowing most?
+        long nDistW = aImgSize.getWidth() - width;
+        long nDistH = aImgSize.getHeight() - height;
+
+        // Use the biggest overflow side to make it fit the destination
+        if ( nDistW >= nDistH && nDistW > 0 )
+        {
+            nDestWidth = width;
+            nDestHeight = width / nRatio;
+        }
+        else if ( nDistW < nDistH && nDistH > 0 )
+        {
+            nDestHeight = height;
+            nDestWidth = height * nRatio;
+        }
 
-    aImg.Scale(Size(sWidth,sHeight),BMP_SCALE_INTERPOLATE);
+        aImg.Scale(Size(nDestWidth,nDestHeight));
+    }
 
     return aImg;
 }
commit 133f92643beed84ce298c054097a0ea637a408c4
Author: Cédric Bosdonnat <cedric.bosdonnat at free.fr>
Date:   Wed Dec 5 18:09:03 2012 +0100

    Template manager: pickup non-empty thumbnails for folders
    
    Change-Id: Idcb2987dc98ea9d00c8b160902446e71e8d6daff

diff --git a/sfx2/source/control/templatelocalview.cxx b/sfx2/source/control/templatelocalview.cxx
index 26d9f3c..582e508 100644
--- a/sfx2/source/control/templatelocalview.cxx
+++ b/sfx2/source/control/templatelocalview.cxx
@@ -748,9 +748,9 @@ static void lcl_updateThumbnails (TemplateLocalViewItem *pItem)
     pItem->maPreview2.Clear();
 
     // Update folder thumbnails
-    for (size_t i = 0, n = pItem->maTemplates.size(); i < 2 && i < n; ++i)
+    for (size_t i = 0, n = pItem->maTemplates.size(); i < n && ( pItem->maPreview1.IsEmpty() || pItem->maPreview2.IsEmpty( ) ); ++i)
     {
-        if (i == 0)
+        if ( pItem->maPreview1.IsEmpty( ) )
         {
             pItem->maPreview1 = TemplateAbstractView::scaleImg(pItem->maTemplates[i].aThumbnail,
                                                                TEMPLATE_THUMBNAIL_MAX_WIDTH*0.75,
commit fcd853cf77268bd221f11d96f3ab1e222cca088e
Author: Cédric Bosdonnat <cedric.bosdonnat at free.fr>
Date:   Wed Dec 5 17:15:04 2012 +0100

    Template Manager: put all the ToolBoxes in a Control to ease painting changes
    
    Change-Id: Ie63638a2b69594edf21e8025b1531842390f409d

diff --git a/sfx2/inc/templatedlg.hxx b/sfx2/inc/templatedlg.hxx
index 8ce829e..8e70039 100644
--- a/sfx2/inc/templatedlg.hxx
+++ b/sfx2/inc/templatedlg.hxx
@@ -125,6 +125,7 @@ private:
     PushButton aButtonSheets;
     PushButton aButtonDraws;
     ImageButton maButtonSelMode;
+    Control *mpToolbars;
 
     Edit *mpSearchEdit;
     ToolBox *mpViewBar;
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index 371f873..b4fb512 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -54,7 +54,6 @@
 #define INIT_FOLDER_COLS 3
 #define INIT_FOLDER_LINES 2
 
-#define PADDING_TOOLBAR_VIEW    15
 #define PADDING_DLG_BORDER      10
 
 using namespace ::com::sun::star;
@@ -106,10 +105,11 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
       aButtonSheets(this,SfxResId(BTN_SELECT_SHEETS)),
       aButtonDraws(this,SfxResId(BTN_SELECT_DRAWS)),
       maButtonSelMode(this,SfxResId(BTN_SELECTION_MODE)),
+      mpToolbars( new Control(this,SfxResId(TOOLBARS))),
       mpSearchEdit(new Edit(this,WB_HIDE | WB_BORDER)),
-      mpViewBar( new ToolBox(this, SfxResId(TBX_ACTION_VIEW))),
-      mpActionBar( new ToolBox(this, SfxResId(TBX_ACTION_ACTION))),
-      mpTemplateBar( new ToolBox(this, SfxResId(TBX_ACTION_TEMPLATES))),
+      mpViewBar( new ToolBox(mpToolbars, SfxResId(TBX_ACTION_VIEW))),
+      mpActionBar( new ToolBox(mpToolbars, SfxResId(TBX_ACTION_ACTION))),
+      mpTemplateBar( new ToolBox(mpToolbars, SfxResId(TBX_ACTION_TEMPLATES))),
       mpSearchView(new TemplateSearchView(this)),
       maView(new TemplateLocalView(this,SfxResId(TEMPLATE_VIEW))),
       mpOnlineView(new TemplateRemoteView(this, WB_VSCROLL,false)),
@@ -177,7 +177,7 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
 
     // Set view position below toolbox
     Point aViewPos = maView->GetPosPixel();
-    aViewPos.setY(aActionPos.Y() + aActionSize.getHeight() + PADDING_TOOLBAR_VIEW);
+    aViewPos.setY(mpToolbars->GetPosPixel().Y() + mpToolbars->GetSizePixel().getHeight());
     aViewPos.setX((aWinSize.getWidth() - aThumbSize.getWidth())/2);     // Center the view
     maView->SetPosPixel(aViewPos);
 
@@ -273,6 +273,7 @@ SfxTemplateManagerDlg::~SfxTemplateManagerDlg ()
     delete mpActionMenu;
     delete mpRepositoryMenu;
     delete mpTemplateDefaultMenu;
+    delete mpToolbars;
 }
 
 void SfxTemplateManagerDlg::setSaveMode(bool bMode)
diff --git a/sfx2/source/doc/templatedlg.hrc b/sfx2/source/doc/templatedlg.hrc
index aced42a..7624e48 100644
--- a/sfx2/source/doc/templatedlg.hrc
+++ b/sfx2/source/doc/templatedlg.hrc
@@ -16,6 +16,7 @@
 #define TEMPLATE_VIEW               7
 
 #define TBX_ACTION_VIEW             8
+#define TOOLBARS                    9
 #define TBI_TEMPLATE_IMPORT         10
 
 #define TBX_ACTION_ACTION           11
diff --git a/sfx2/source/doc/templatedlg.src b/sfx2/source/doc/templatedlg.src
index 9bafd2b..184b216 100644
--- a/sfx2/source/doc/templatedlg.src
+++ b/sfx2/source/doc/templatedlg.src
@@ -189,12 +189,18 @@ ModelessDialog DLG_TEMPLATE_MANAGER
         };
     };
 
+    Control TOOLBARS
+    {
+        Pos = MAP_APPFONT( 0 , 22 );
+        Size = MAP_APPFONT( 290 , 20 );
+        TabStop = False;
+    };
 
     ToolBox TBX_ACTION_VIEW
     {
         SVLook = TRUE ;
         TabStop = TRUE ;
-        Pos = MAP_APPFONT ( 4 , 22 ) ;
+        Pos = MAP_APPFONT ( 4 , 0 ) ;
 
         ItemList =
         {
@@ -251,7 +257,7 @@ ModelessDialog DLG_TEMPLATE_MANAGER
     {
         SVLook = TRUE ;
         TabStop = TRUE ;
-        Pos = MAP_APPFONT ( 4 , 22 ) ;
+        Pos = MAP_APPFONT ( 4 , 0 ) ;
 
         ItemList =
         {
@@ -283,7 +289,7 @@ ModelessDialog DLG_TEMPLATE_MANAGER
     {
         SVLook = TRUE ;
         TabStop = TRUE ;
-        Pos = MAP_APPFONT ( 4 , 22 ) ;
+        Pos = MAP_APPFONT ( 4 , 0 ) ;
         Hide = TRUE;
 
         ItemList =
commit d83674ff70a3cf0be86da1533764d0b0218aea33
Author: Cédric Bosdonnat <cedric.bosdonnat at free.fr>
Date:   Wed Dec 5 15:20:13 2012 +0100

    Template Manager: ban double-click and right click to start selection mode
    
    Change-Id: I49383a884b5806679ec6f79d49b8bc194d28d557

diff --git a/sfx2/inc/sfx2/templateabstractview.hxx b/sfx2/inc/sfx2/templateabstractview.hxx
index 89de530..0ab599e 100644
--- a/sfx2/inc/sfx2/templateabstractview.hxx
+++ b/sfx2/inc/sfx2/templateabstractview.hxx
@@ -106,7 +106,7 @@ public:
 
     void setOverlayItemStateHdl (const Link &aLink) { maOverlayItemStateHdl = aLink; }
 
-    void setOverlayDblClickHdl (const Link &rLink);
+    void setOverlayClickHdl (const Link &rLink);
 
     void setOverlayCloseHdl (const Link &rLink);
 
@@ -125,10 +125,12 @@ protected:
     virtual void OnSelectionMode (bool bMode);
 
     DECL_LINK(OverlayItemStateHdl, const ThumbnailViewItem*);
+    DECL_LINK(OverlaySelectionModeHdl, bool*);
 
 protected:
 
     TemplateView *mpItemView;
+    bool mbInSelectionModeHdl;
     Link maOverlayItemStateHdl;
 };
 
diff --git a/sfx2/inc/sfx2/templatelocalview.hxx b/sfx2/inc/sfx2/templatelocalview.hxx
index 9a101f2..58debca 100644
--- a/sfx2/inc/sfx2/templatelocalview.hxx
+++ b/sfx2/inc/sfx2/templatelocalview.hxx
@@ -75,7 +75,7 @@ public:
 
 private:
 
-    virtual void OnItemDblClicked (ThumbnailViewItem *pRegionItem);
+    virtual void OnItemClicked (ThumbnailViewItem *pRegionItem);
 
     DECL_LINK(ChangeNameHdl, TemplateView*);
 
diff --git a/sfx2/inc/sfx2/templateview.hxx b/sfx2/inc/sfx2/templateview.hxx
index 881c68d..fee955b 100644
--- a/sfx2/inc/sfx2/templateview.hxx
+++ b/sfx2/inc/sfx2/templateview.hxx
@@ -37,7 +37,7 @@ public:
 
     void InsertItems (const std::vector<TemplateItemProperties> &rTemplates);
 
-    void setDblClickHdl (const Link &rLink) { maDblClickHdl = rLink; }
+    void setClickHdl (const Link &rLink) { maClickHdl = rLink; }
 
     void setChangeNameHdl (const Link &rLink) { maChangeNameHdl = rLink; }
 
@@ -49,7 +49,7 @@ protected:
 
     virtual void MouseButtonDown (const MouseEvent &rMEvt);
 
-    virtual void OnItemDblClicked (ThumbnailViewItem *pItem);
+    virtual void OnItemClicked (ThumbnailViewItem *pItem);
 
     DECL_LINK (ChangeNameHdl, void*);
 
@@ -59,7 +59,7 @@ private:
     bool mbRenderTitle;
     sal_uInt16 mnId;
     OUString maName;
-    Link maDblClickHdl;
+    Link maClickHdl;
     Link maChangeNameHdl;
     Link maCloseHdl;
 
diff --git a/sfx2/inc/sfx2/thumbnailview.hxx b/sfx2/inc/sfx2/thumbnailview.hxx
index 084b3d1..023c569 100644
--- a/sfx2/inc/sfx2/thumbnailview.hxx
+++ b/sfx2/inc/sfx2/thumbnailview.hxx
@@ -241,6 +241,7 @@ public:
                                                 const ThumbnailViewItem*) > &func);
 
     void setItemStateHdl (const Link &aLink) { maItemStateHdl = aLink; }
+    void setSelectionModeHdl (const Link &aLink) { maSelectionModeHdl = aLink; }
 
 protected:
 
@@ -276,7 +277,7 @@ protected:
 
     virtual void OnSelectionMode (bool bMode);
 
-    virtual void OnItemDblClicked (ThumbnailViewItem *pItem);
+    virtual void OnItemClicked (ThumbnailViewItem *pItem);
 
 protected:
 
@@ -330,6 +331,7 @@ protected:
     Color maColor;
 
     Link maItemStateHdl;
+    Link maSelectionModeHdl;
     ThumbnailItemAttributes *mpItemAttrs;
     drawinglayer::processor2d::BaseProcessor2D *mpProcessor;
     boost::function<bool (const ThumbnailViewItem*) > maFilterFunc;
diff --git a/sfx2/inc/templatedlg.hxx b/sfx2/inc/templatedlg.hxx
index 5ba2a87..8ce829e 100644
--- a/sfx2/inc/templatedlg.hxx
+++ b/sfx2/inc/templatedlg.hxx
@@ -58,6 +58,7 @@ private:
     DECL_LINK(CloseOverlayHdl, void*);
 
     DECL_LINK(OnClickSelectionMode, ImageButton*);
+    DECL_LINK(SelectionModeHdl, bool*);
 
     DECL_LINK(TBXViewHdl, void*);
     DECL_LINK(TBXActionHdl, void*);
@@ -141,6 +142,7 @@ private:
     std::set<const ThumbnailViewItem*> maSelFolders;
 
     bool mbIsSaveMode;  ///< Flag that indicates if we are in save mode or not.
+    bool mbInSelectionModeHdl; ///< Flag avoiding selection mode handler loop
     com::sun::star::uno::Reference< com::sun::star::frame::XModel > m_xModel;
     com::sun::star::uno::Reference< com::sun::star::frame::XComponentLoader > mxDesktop;
 };
diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx
index 22e8121..8cbf60f 100644
--- a/sfx2/source/control/templateabstractview.cxx
+++ b/sfx2/source/control/templateabstractview.cxx
@@ -58,16 +58,20 @@ bool ViewFilter_Keyword::operator ()(const ThumbnailViewItem *pItem)
 
 TemplateAbstractView::TemplateAbstractView (Window *pParent, WinBits nWinStyle, bool bDisableTransientChildren)
     : ThumbnailView(pParent,nWinStyle,bDisableTransientChildren),
-      mpItemView(new TemplateView(this))
+      mpItemView(new TemplateView(this)),
+      mbInSelectionModeHdl(false)
 {
     mpItemView->setItemStateHdl(LINK(this,TemplateAbstractView,OverlayItemStateHdl));
+    mpItemView->setSelectionModeHdl(LINK(this,TemplateAbstractView,OverlaySelectionModeHdl));
 }
 
 TemplateAbstractView::TemplateAbstractView(Window *pParent, const ResId &rResId, bool bDisableTransientChildren)
     : ThumbnailView(pParent,rResId,bDisableTransientChildren),
-      mpItemView(new TemplateView(this))
+      mpItemView(new TemplateView(this)),
+      mbInSelectionModeHdl(false)
 {
     mpItemView->setItemStateHdl(LINK(this,TemplateAbstractView,OverlayItemStateHdl));
+    mpItemView->setSelectionModeHdl(LINK(this,TemplateAbstractView,OverlaySelectionModeHdl));
 }
 
 TemplateAbstractView::~TemplateAbstractView ()
@@ -119,9 +123,9 @@ void TemplateAbstractView::filterTemplatesByKeyword(const OUString &rKeyword)
         mpItemView->filterItems(ViewFilter_Keyword(rKeyword));
 }
 
-void TemplateAbstractView::setOverlayDblClickHdl(const Link &rLink)
+void TemplateAbstractView::setOverlayClickHdl(const Link &rLink)
 {
-    mpItemView->setDblClickHdl(rLink);
+    mpItemView->setClickHdl(rLink);
 }
 
 void TemplateAbstractView::setOverlayCloseHdl(const Link &rLink)
@@ -269,13 +273,16 @@ void TemplateAbstractView::DrawItem(ThumbnailViewItem *pItem)
 
 void TemplateAbstractView::OnSelectionMode (bool bMode)
 {
-    if (mpItemView->IsVisible())
+    if (!mbInSelectionModeHdl)
     {
-        mbSelectionMode = bMode;
-        mpItemView->setSelectionMode(bMode);
+        if (mpItemView->IsVisible())
+        {
+            mbSelectionMode = bMode;
+            mpItemView->setSelectionMode(bMode);
+        }
+        else
+            ThumbnailView::OnSelectionMode(bMode);
     }
-    else
-        ThumbnailView::OnSelectionMode(bMode);
 }
 
 IMPL_LINK(TemplateAbstractView, OverlayItemStateHdl, const ThumbnailViewItem*, pItem)
@@ -284,4 +291,16 @@ IMPL_LINK(TemplateAbstractView, OverlayItemStateHdl, const ThumbnailViewItem*, p
     return 0;
 }
 
+IMPL_LINK(TemplateAbstractView, OverlaySelectionModeHdl, bool*, pMode)
+{
+    mbInSelectionModeHdl = true;
+    setSelectionMode(*pMode);
+    if (!*pMode)
+    {
+        deselectOverlayItems();
+    }
+    mbInSelectionModeHdl = false;
+    return 0;
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/control/templatelocalview.cxx b/sfx2/source/control/templatelocalview.cxx
index 820ec14..26d9f3c 100644
--- a/sfx2/source/control/templatelocalview.cxx
+++ b/sfx2/source/control/templatelocalview.cxx
@@ -702,7 +702,7 @@ bool TemplateLocalView::isTemplateNameUnique(const sal_uInt16 nRegionItemId, con
     return true;
 }
 
-void TemplateLocalView::OnItemDblClicked (ThumbnailViewItem *pRegionItem)
+void TemplateLocalView::OnItemClicked (ThumbnailViewItem *pRegionItem)
 {
     // Fill templates
     sal_uInt16 nRegionId = pRegionItem->mnId-1;
diff --git a/sfx2/source/control/templateview.cxx b/sfx2/source/control/templateview.cxx
index 7173268..1156fa8 100644
--- a/sfx2/source/control/templateview.cxx
+++ b/sfx2/source/control/templateview.cxx
@@ -208,9 +208,9 @@ void TemplateView::MouseButtonDown (const MouseEvent &rMEvt)
     ThumbnailView::MouseButtonDown(rMEvt);
 }
 
-void TemplateView::OnItemDblClicked(ThumbnailViewItem *pItem)
+void TemplateView::OnItemClicked(ThumbnailViewItem *pItem)
 {
-    maDblClickHdl.Call(pItem);
+    maClickHdl.Call(pItem);
 }
 
 IMPL_LINK_NOARG(TemplateView, ChangeNameHdl)
diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx
index fd2d215..e51385a 100644
--- a/sfx2/source/control/thumbnailview.cxx
+++ b/sfx2/source/control/thumbnailview.cxx
@@ -202,6 +202,9 @@ void ThumbnailView::DrawItem (ThumbnailViewItem *pItem)
 
 void ThumbnailView::OnSelectionMode (bool bMode)
 {
+    if ( !bMode )
+        deselectItems();
+
     for (size_t i = 0, n = mItemList.size(); i < n; ++i)
     {
         mItemList[i]->setSelectionMode(bMode);
@@ -211,7 +214,7 @@ void ThumbnailView::OnSelectionMode (bool bMode)
     }
 }
 
-void ThumbnailView::OnItemDblClicked (ThumbnailViewItem*)
+void ThumbnailView::OnItemClicked (ThumbnailViewItem*)
 {
 }
 
@@ -508,7 +511,19 @@ IMPL_LINK (ThumbnailView, OnItemSelected, ThumbnailViewItem*, pItem)
 
 void ThumbnailView::MouseButtonDown( const MouseEvent& rMEvt )
 {
-    if ( rMEvt.IsLeft() )
+    bool bProcessClick = rMEvt.IsLeft();
+
+    if ( rMEvt.IsRight( ) )
+    {
+        // Set selection mode with right click
+        if (!mbSelectionMode)
+        {
+            setSelectionMode( true );
+            bProcessClick = true;
+        }
+    }
+
+    if ( bProcessClick )
     {
         ThumbnailViewItem* pItem = ImplGetItem( ImplGetItem( rMEvt.GetPosPixel() ) );
 
@@ -530,36 +545,17 @@ void ThumbnailView::MouseButtonDown( const MouseEvent& rMEvt )
                     else
                     {
                         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());
+                        aRect.SetSize(Size(mnItemWidth,mnThumbnailHeight));
 
-                            if (!pItem->isHighlighted())
-                                DrawItem(pItem);
-
-                            maItemStateHdl.Call(pItem);
-                        }
-
-                        //StartTracking( STARTTRACK_SCROLLREPEAT );
+                        if (!mbSelectionMode && aRect.IsInside(rMEvt.GetPosPixel()))
+                            OnItemClicked(pItem);
                     }
                 }
-                else if ( rMEvt.GetClicks() == 2 )
-                {
-                    Rectangle aRect(pItem->getDrawArea());
-                    aRect.SetSize(Size(mnItemWidth,mnThumbnailHeight));
-
-                    if (!mbSelectionMode && aRect.IsInside(rMEvt.GetPosPixel()))
-                        OnItemDblClicked(pItem);
-                }
             }
 
             return;
         }
     }
-
     Control::MouseButtonDown( rMEvt );
 }
 
@@ -1059,8 +1055,8 @@ long ThumbnailView::GetScrollWidth() const
 void ThumbnailView::setSelectionMode (bool mode)
 {
     mbSelectionMode = mode;
-
     OnSelectionMode(mode);
+    maSelectionModeHdl.Call(&mode);
 }
 
 void ThumbnailView::filterItems (const boost::function<bool (const ThumbnailViewItem*) > &func)
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index 57597c7..371f873 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -114,6 +114,7 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
       maView(new TemplateLocalView(this,SfxResId(TEMPLATE_VIEW))),
       mpOnlineView(new TemplateRemoteView(this, WB_VSCROLL,false)),
       mbIsSaveMode(false),
+      mbInSelectionModeHdl(false),
       mxDesktop(comphelper::getProcessServiceFactory()->createInstance( "com.sun.star.frame.Desktop" ),uno::UNO_QUERY )
 {
     maButtonSelMode.SetStyle(maButtonSelMode.GetStyle() | WB_TOGGLE);
@@ -202,8 +203,9 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
 
     maView->setItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVFolderStateHdl));
     maView->setOverlayItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl));
-    maView->setOverlayDblClickHdl(LINK(this,SfxTemplateManagerDlg,OpenTemplateHdl));
+    maView->setOverlayClickHdl(LINK(this,SfxTemplateManagerDlg,OpenTemplateHdl));
     maView->setOverlayCloseHdl(LINK(this,SfxTemplateManagerDlg,CloseOverlayHdl));
+    maView->setSelectionModeHdl(LINK(this,SfxTemplateManagerDlg,SelectionModeHdl));
 
     // Set online view position and dimensions
     mpOnlineView->SetPosSizePixel(aViewPos,aThumbSize);
@@ -214,9 +216,10 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
                                     TEMPLATE_ITEM_PADDING);
 
     mpOnlineView->setOverlayItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl));
-    mpOnlineView->setOverlayDblClickHdl(LINK(this,SfxTemplateManagerDlg,OpenTemplateHdl));
+    mpOnlineView->setOverlayClickHdl(LINK(this,SfxTemplateManagerDlg,OpenTemplateHdl));
     mpOnlineView->setOverlayCloseHdl(LINK(this,SfxTemplateManagerDlg,CloseOverlayHdl));
     mpOnlineView->setOverlayChangeNameHdl(LINK(this,SfxTemplateManagerDlg,RepositoryChangeNameHdl));
+    mpOnlineView->setSelectionModeHdl(LINK(this,SfxTemplateManagerDlg,SelectionModeHdl));
 
     mpSearchView->SetSizePixel(aThumbSize);
     mpSearchView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH);
@@ -226,6 +229,7 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
                                     TEMPLATE_ITEM_PADDING);
 
     mpSearchView->setItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl));
+    mpSearchView->setSelectionModeHdl(LINK(this,SfxTemplateManagerDlg,SelectionModeHdl));
 
     aButtonAll.SetClickHdl(LINK(this,SfxTemplateManagerDlg,ViewAllHdl));
     aButtonDocs.SetClickHdl(LINK(this,SfxTemplateManagerDlg,ViewDocsHdl));
@@ -353,7 +357,16 @@ IMPL_LINK_NOARG(SfxTemplateManagerDlg, CloseOverlayHdl)
 
 IMPL_LINK (SfxTemplateManagerDlg, OnClickSelectionMode, ImageButton*, pButton)
 {
-    maView->setSelectionMode(pButton->GetState() == STATE_CHECK);
+    if (!mbInSelectionModeHdl)
+        maView->setSelectionMode(pButton->GetState() == STATE_CHECK);
+    return 0;
+}
+
+IMPL_LINK (SfxTemplateManagerDlg, SelectionModeHdl, bool*, pMode)
+{
+    mbInSelectionModeHdl = true;
+    maButtonSelMode.SetState( *pMode ? STATE_CHECK : STATE_NOCHECK );
+    mbInSelectionModeHdl = false;
     return 0;
 }
 
commit ba4db91214c492e142507b26574b66cf71399de6
Author: Cédric Bosdonnat <cedric.bosdonnat at free.fr>
Date:   Tue Dec 4 18:11:38 2012 +0100

    Template manager: use icons in the toolbar
    
    Change-Id: I4f1e199c9c678f5443cc736ffa8f74d9748b6f0f

diff --git a/sfx2/source/doc/templatedlg.src b/sfx2/source/doc/templatedlg.src
index 1d45bd9..9bafd2b 100644
--- a/sfx2/source/doc/templatedlg.src
+++ b/sfx2/source/doc/templatedlg.src
@@ -202,6 +202,11 @@ ModelessDialog DLG_TEMPLATE_MANAGER
             {
                 Identifier = TBI_TEMPLATE_REPOSITORY;
                 Text [ en-US ] = "Repository";
+
+                ItemImage = Image
+                {
+                    ImageBitmap = Bitmap { File = "actionview026.png" ; };
+                };
             };
 
             ToolBoxItem
@@ -212,7 +217,7 @@ ModelessDialog DLG_TEMPLATE_MANAGER
 
                 ItemImage = Image
                 {
-                    ImageBitmap = Bitmap { File = "import.png" ; };
+                    ImageBitmap = Bitmap { File = "actionview010.png" ; };
                 };
             };
 
@@ -221,6 +226,11 @@ ModelessDialog DLG_TEMPLATE_MANAGER
                 Identifier = TBI_TEMPLATE_FOLDER_DEL;
                 Hide = TRUE;
                 Text [ en-US ] = "Delete";
+
+                ItemImage = Image
+                {
+                    ImageBitmap = Bitmap { File = "actionview025.png" ; };
+                };
             };
 
             ToolBoxItem
@@ -228,6 +238,11 @@ ModelessDialog DLG_TEMPLATE_MANAGER
                 Identifier = TBI_TEMPLATE_SAVE;
                 Hide = TRUE;
                 Text [ en-US ] = "Save";
+
+                ItemImage = Image
+                {
+                    ImageBitmap = Bitmap { File = "actionview028.png" ; };
+                };
             };
         };
     };
@@ -277,36 +292,66 @@ ModelessDialog DLG_TEMPLATE_MANAGER
             {
                 Identifier = TBI_TEMPLATE_EDIT;
                 Text [ en-US ] = "Edit";
+
+                ItemImage = Image
+                {
+                    ImageBitmap = Bitmap { File = "actiontemplates019.png" ; };
+                };
             };
 
             ToolBoxItem
             {
                 Identifier = TBI_TEMPLATE_PROPERTIES;
                 Text [ en-US ] = "Properties";
+
+                ItemImage = Image
+                {
+                    ImageBitmap = Bitmap { File = "actiontemplates016.png" ; };
+                };
             };
 
             ToolBoxItem
             {
                 Identifier = TBI_TEMPLATE_DEFAULT;
                 Text [ en-US ] = "Set as default";
+
+                ItemImage = Image
+                {
+                    ImageBitmap = Bitmap { File = "actiontemplates015.png" ; };
+                };
             };
 
             ToolBoxItem
             {
                 Identifier = TBI_TEMPLATE_MOVE;
                 Text [ en-US ] = "Move to folder" ;
+
+                ItemImage = Image
+                {
+                    ImageBitmap = Bitmap { File = "actiontemplates017.png" ; };
+                };
             };
 
             ToolBoxItem
             {
                 Identifier = TBI_TEMPLATE_EXPORT;
                 Text [ en-US ] = "Export";
+
+                ItemImage = Image
+                {
+                    ImageBitmap = Bitmap { File = "actiontemplates020.png" ; };
+                };
             };
 
             ToolBoxItem
             {
                 Identifier = TBI_TEMPLATE_DELETE;
                 Text [ en-US ] = "Delete";
+
+                ItemImage = Image
+                {
+                    ImageBitmap = Bitmap { File = "actiontemplates018.png" ; };
+                };
             };
         };
     };


More information about the Libreoffice-commits mailing list