[PATCH libreoffice-4-0] Templates Manager: merged the Double Click Handling into Tem...

Bosdonnat Cedric (via Code Review) gerrit at gerrit.libreoffice.org
Wed Mar 27 05:12:14 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/3087

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/87/3087/1

Templates Manager: merged the Double Click Handling into TemplateAbstractView

(cherry picked from commit 8a2bfe697bf71c8a2ca3c6ba1ef5e6324d4163aa)

Conflicts:
	sfx2/inc/sfx2/templateview.hxx
	sfx2/source/control/templateabstractview.cxx
	sfx2/source/control/templatelocalview.cxx
	sfx2/source/control/templateview.cxx

Change-Id: Iafc1650d57d29fbc24921498f18da6c0e510b37a
---
M sfx2/inc/sfx2/templateabstractview.hxx
M sfx2/inc/sfx2/templatelocalview.hxx
M sfx2/inc/sfx2/templateremoteview.hxx
M sfx2/inc/sfx2/templateview.hxx
M sfx2/source/control/templateabstractview.cxx
M sfx2/source/control/templatelocalview.cxx
M sfx2/source/control/templateremoteview.cxx
M sfx2/source/control/templateview.cxx
M sfx2/source/doc/templatedlg.cxx
9 files changed, 39 insertions(+), 68 deletions(-)



diff --git a/sfx2/inc/sfx2/templateabstractview.hxx b/sfx2/inc/sfx2/templateabstractview.hxx
index ca51181..a5fef71 100644
--- a/sfx2/inc/sfx2/templateabstractview.hxx
+++ b/sfx2/inc/sfx2/templateabstractview.hxx
@@ -87,7 +87,7 @@
 
     virtual void filterTemplatesByApp (const FILTER_APPLICATION &eApp);
 
-    virtual void showOverlay (bool bVisible) = 0;
+    void showOverlay (bool bVisible);
 
     void setItemDimensions (long ItemWidth, long ThumbnailHeight, long DisplayHeight, int itemPadding);
 
@@ -109,7 +109,7 @@
 
     void setOverlayItemStateHdl (const Link &aLink) { maOverlayItemStateHdl = aLink; }
 
-    void setOverlayDblClickHdl (const Link &rLink);
+    void setOpenHdl (const Link &rLink);
 
     void setOverlayCloseHdl (const Link &rLink);
 
@@ -127,10 +127,13 @@
 
     DECL_LINK(OverlayItemStateHdl, const ThumbnailViewItem*);
 
+    virtual void OnItemDblClicked(ThumbnailViewItem *pItem);
+
 protected:
 
     TemplateView *mpItemView;
     Link maOverlayItemStateHdl;
+    Link maOpenHdl;
 
     bool mbFilteredResults;     // Flag keep track if overlay has been filtered so folders can get filtered too afterwards
     FILTER_APPLICATION meFilterOption;
diff --git a/sfx2/inc/sfx2/templatelocalview.hxx b/sfx2/inc/sfx2/templatelocalview.hxx
index 78cf547..432b008 100644
--- a/sfx2/inc/sfx2/templatelocalview.hxx
+++ b/sfx2/inc/sfx2/templatelocalview.hxx
@@ -39,8 +39,6 @@
 
     std::vector<OUString> getFolderNames ();
 
-    virtual void showOverlay (bool bVisible);
-
     std::vector<TemplateItemProperties>
         getFilteredItems (const boost::function<bool (const TemplateItemProperties&) > &rFunc) const;
 
@@ -72,10 +70,6 @@
     bool isTemplateNameUnique (const sal_uInt16 nRegionItemId, const OUString &rName) const;
 
     virtual bool renameItem(ThumbnailViewItem* pItem, rtl::OUString sNewTitle);
-
-private:
-
-    virtual void OnItemDblClicked (ThumbnailViewItem *pRegionItem);
 
 private:
 
diff --git a/sfx2/inc/sfx2/templateremoteview.hxx b/sfx2/inc/sfx2/templateremoteview.hxx
index bd1bf5c..b760f00 100644
--- a/sfx2/inc/sfx2/templateremoteview.hxx
+++ b/sfx2/inc/sfx2/templateremoteview.hxx
@@ -25,8 +25,6 @@
 
     virtual ~TemplateRemoteView ();
 
-    virtual void showOverlay (bool bVisible);
-
     bool loadRepository (TemplateRepository* pRepository, bool bRefresh);
 
 private:
diff --git a/sfx2/inc/sfx2/templateview.hxx b/sfx2/inc/sfx2/templateview.hxx
index e219905..aaa7334 100644
--- a/sfx2/inc/sfx2/templateview.hxx
+++ b/sfx2/inc/sfx2/templateview.hxx
@@ -36,26 +36,28 @@
 
     void InsertItems (const std::vector<TemplateItemProperties> &rTemplates);
 
-    void setDblClickHdl (const Link &rLink) { maDblClickHdl = rLink; }
-
     void setCloseHdl (const Link &rLink) { maAllButton.SetClickHdl(rLink); }
     void setMasterView(TemplateAbstractView* pMasterView) { mpMasterView = pMasterView; }
     virtual bool renameItem(ThumbnailViewItem* pItem, rtl::OUString sNewTitle);
+
+
+    // FIXME Kept only during the refactoring
+    void setOpenHdl (const Link &rLink) { maOpenHdl = rLink; }
+    virtual void OnItemDblClicked(ThumbnailViewItem *pItem) { maOpenHdl.Call(pItem); }
 
 protected:
 
     virtual void Resize ();
 
-    virtual void OnItemDblClicked (ThumbnailViewItem *pItem);
-
 private:
     TemplateAbstractView* mpMasterView;
+
+    Link maOpenHdl;
 
     PushButton maAllButton;
     FixedText  maFTName;
     sal_uInt16 mnId;
     OUString maName;
-    Link maDblClickHdl;
 };
 
 #endif // TEMPLATEVIEW_HXX
diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx
index 14ab811..43efcbb 100644
--- a/sfx2/source/control/templateabstractview.cxx
+++ b/sfx2/source/control/templateabstractview.cxx
@@ -217,9 +217,10 @@
         mpItemView->filterItems(ViewFilter_Keyword(rKeyword));
 }
 
-void TemplateAbstractView::setOverlayDblClickHdl(const Link &rLink)
+void TemplateAbstractView::setOpenHdl(const Link &rLink)
 {
-    mpItemView->setDblClickHdl(rLink);
+    maOpenHdl = rLink;
+    mpItemView->setOpenHdl(rLink);
 }
 
 void TemplateAbstractView::setOverlayCloseHdl(const Link &rLink)
@@ -395,4 +396,26 @@
     return 0;
 }
 
+void TemplateAbstractView::OnItemDblClicked (ThumbnailViewItem *pItem)
+{
+    TemplateContainerItem* pContainerItem = dynamic_cast<TemplateContainerItem*>(pItem);
+    if ( pContainerItem )
+    {
+        // Fill templates
+        sal_uInt16 nRegionId = pContainerItem->mnId-1;
+
+        mpItemView->setId(nRegionId);
+        mpItemView->setName(pContainerItem->maTitle);
+        mpItemView->InsertItems(pContainerItem->maTemplates);
+
+        mpItemView->filterItems(ViewFilter_Application(meFilterOption));
+
+        showOverlay(true);
+    }
+    else
+    {
+        maOpenHdl.Call(pItem);
+    }
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/control/templatelocalview.cxx b/sfx2/source/control/templatelocalview.cxx
index ca8856e..356640f 100644
--- a/sfx2/source/control/templatelocalview.cxx
+++ b/sfx2/source/control/templatelocalview.cxx
@@ -123,26 +123,6 @@
     return ret;
 }
 
-void TemplateLocalView::showOverlay (bool bVisible)
-{
-    mpItemView->Show(bVisible);
-
-    // Clear items is the overlay is closed.
-    if (!bVisible)
-    {
-        // Check if the folder view needs to be filtered
-        if (mbFilteredResults)
-        {
-            filterItems(ViewFilter_Application(meFilterOption));
-
-            mbFilteredResults = false;
-            meFilterOption = FILTER_APP_NONE;
-        }
-
-        mpItemView->Clear();
-    }
-}
-
 std::vector<TemplateItemProperties>
 TemplateLocalView::getFilteredItems(const boost::function<bool (const TemplateItemProperties&) > &rFunc) const
 {
@@ -591,19 +571,6 @@
     return true;
 }
 
-void TemplateLocalView::OnItemDblClicked (ThumbnailViewItem *pRegionItem)
-{
-    // Fill templates
-    sal_uInt16 nRegionId = pRegionItem->mnId-1;
-
-    mpItemView->setId(nRegionId);
-    mpItemView->setName(mpDocTemplates->GetRegionName(nRegionId));
-    mpItemView->InsertItems(static_cast<TemplateContainerItem*>(pRegionItem)->maTemplates);
-
-    mpItemView->filterItems(ViewFilter_Application(meFilterOption));
-
-    showOverlay(true);
-}
 
 bool TemplateLocalView::renameItem(ThumbnailViewItem* pItem, rtl::OUString sNewTitle)
 {
diff --git a/sfx2/source/control/templateremoteview.cxx b/sfx2/source/control/templateremoteview.cxx
index 9f84053..f89bbab 100644
--- a/sfx2/source/control/templateremoteview.cxx
+++ b/sfx2/source/control/templateremoteview.cxx
@@ -60,17 +60,6 @@
 {
 }
 
-void TemplateRemoteView::showOverlay (bool bVisible)
-{
-    mpItemView->Show(bVisible);
-
-    // Clear items is the overlay is closed.
-    if (!bVisible)
-    {
-        mpItemView->Clear();
-    }
-}
-
 bool TemplateRemoteView::loadRepository (TemplateRepository* pItem, bool bRefresh)
 {
     if (!pItem)
diff --git a/sfx2/source/control/templateview.cxx b/sfx2/source/control/templateview.cxx
index 46ebeaa..a19c8c5 100644
--- a/sfx2/source/control/templateview.cxx
+++ b/sfx2/source/control/templateview.cxx
@@ -94,11 +94,6 @@
     ThumbnailView::Resize();
 }
 
-void TemplateView::OnItemDblClicked(ThumbnailViewItem *pItem)
-{
-    maDblClickHdl.Call(pItem);
-}
-
 bool TemplateView::renameItem(ThumbnailViewItem* pItem, rtl::OUString sNewTitle)
 {
     if (mpMasterView)
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index e5e4014..a512c8e 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -172,7 +172,7 @@
 
     maView->setItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVFolderStateHdl));
     maView->setOverlayItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl));
-    maView->setOverlayDblClickHdl(LINK(this,SfxTemplateManagerDlg,OpenTemplateHdl));
+    maView->setOpenHdl(LINK(this,SfxTemplateManagerDlg,OpenTemplateHdl));
     maView->setOverlayCloseHdl(LINK(this,SfxTemplateManagerDlg,CloseOverlayHdl));
 
     // Set online view position and dimensions
@@ -183,7 +183,7 @@
                                     TEMPLATE_ITEM_PADDING);
 
     mpOnlineView->setOverlayItemStateHdl(LINK(this,SfxTemplateManagerDlg,TVTemplateStateHdl));
-    mpOnlineView->setOverlayDblClickHdl(LINK(this,SfxTemplateManagerDlg,OpenTemplateHdl));
+    mpOnlineView->setOpenHdl(LINK(this,SfxTemplateManagerDlg,OpenTemplateHdl));
     mpOnlineView->setOverlayCloseHdl(LINK(this,SfxTemplateManagerDlg,CloseOverlayHdl));
 
     mpSearchView->setItemMaxTextLength(TEMPLATE_ITEM_MAX_TEXT_LENGTH);

-- 
To view, visit https://gerrit.libreoffice.org/3087
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iafc1650d57d29fbc24921498f18da6c0e510b37a
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Bosdonnat Cedric <cedric.bosdonnat at free.fr>



More information about the LibreOffice mailing list