Kaydet (Commit) 8a2bfe69 authored tarafından Cédric Bosdonnat's avatar Cédric Bosdonnat

Templates Manager: merged the Double Click Handling into TemplateAbstractView

Change-Id: Iafc1650d57d29fbc24921498f18da6c0e510b37a
üst 94874973
......@@ -87,7 +87,7 @@ public:
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 @@ public:
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 @@ protected:
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;
......
......@@ -39,8 +39,6 @@ public:
std::vector<OUString> getFolderNames ();
virtual void showOverlay (bool bVisible);
std::vector<TemplateItemProperties>
getFilteredItems (const boost::function<bool (const TemplateItemProperties&) > &rFunc) const;
......@@ -71,10 +69,6 @@ public:
bool isTemplateNameUnique (const sal_uInt16 nRegionItemId, const OUString &rName) const;
private:
virtual void OnItemDblClicked (ThumbnailViewItem *pRegionItem);
private:
SfxDocumentTemplates *mpDocTemplates;
......
......@@ -25,8 +25,6 @@ public:
virtual ~TemplateRemoteView ();
virtual void showOverlay (bool bVisible);
bool loadRepository (TemplateRepository* pRepository, bool bRefresh);
private:
......
......@@ -36,24 +36,26 @@ public:
void InsertItems (const std::vector<TemplateItemProperties> &rTemplates);
void setDblClickHdl (const Link &rLink) { maDblClickHdl = rLink; }
void setCloseHdl (const Link &rLink) { maAllButton.SetClickHdl(rLink); }
// 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:
Link maOpenHdl;
Control maButtons;
PushButton maAllButton;
FixedText maFTName;
sal_uInt16 mnId;
OUString maName;
Link maDblClickHdl;
};
#endif // TEMPLATEVIEW_HXX
......
......@@ -175,15 +175,36 @@ void TemplateAbstractView::filterTemplatesByApp (const FILTER_APPLICATION &eApp)
}
}
void TemplateAbstractView::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();
}
}
void TemplateAbstractView::filterTemplatesByKeyword(const OUString &rKeyword)
{
if (mpItemView->IsVisible())
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)
......@@ -351,4 +372,26 @@ IMPL_LINK(TemplateAbstractView, OverlayItemStateHdl, const ThumbnailViewItem*, p
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: */
......@@ -134,26 +134,6 @@ std::vector<OUString> TemplateLocalView::getFolderNames()
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
{
......@@ -608,20 +588,6 @@ bool TemplateLocalView::isTemplateNameUnique(const sal_uInt16 nRegionItemId, con
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);
}
static void lcl_updateThumbnails (TemplateContainerItem *pItem)
{
pItem->maPreview1.Clear();
......
......@@ -60,17 +60,6 @@ TemplateRemoteView::~TemplateRemoteView ()
{
}
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)
......
......@@ -90,11 +90,6 @@ void TemplateView::Resize()
ThumbnailView::Resize();
}
void TemplateView::OnItemDblClicked(ThumbnailViewItem *pItem)
{
maDblClickHdl.Call(pItem);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -154,7 +154,7 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
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
......@@ -165,7 +165,7 @@ SfxTemplateManagerDlg::SfxTemplateManagerDlg (Window *parent)
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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment