tdf#138024 Default Icons not refreshing in template manger search view
*added missing funtion to searchview
*call searchupdate when refreshing
Change-Id: I576b2e2de37e3f34b7499a914f0707586687643e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105387
Tested-by: Jenkins
Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
diff --git a/sfx2/source/control/templatesearchview.cxx b/sfx2/source/control/templatesearchview.cxx
index 25e62fd..41c318e 100644
--- a/sfx2/source/control/templatesearchview.cxx
+++ b/sfx2/source/control/templatesearchview.cxx
@@ -240,6 +240,19 @@ BitmapEx TemplateSearchView::getDefaultThumbnail( const OUString& rPath )
return aImg;
}
void TemplateSearchView::RemoveDefaultTemplateIcon(const OUString& rPath)
{
for (const std::unique_ptr<ThumbnailViewItem>& pItem : mItemList)
{
TemplateViewItem* pViewItem = dynamic_cast<TemplateViewItem*>(pItem.get());
if (pViewItem && pViewItem->getPath().match(rPath))
{
pViewItem->showDefaultIcon(false);
Invalidate();
return;
}
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/doc/templatedlg.cxx b/sfx2/source/doc/templatedlg.cxx
index aaed4e7..313bf59 100644
--- a/sfx2/source/doc/templatedlg.cxx
+++ b/sfx2/source/doc/templatedlg.cxx
@@ -475,7 +475,11 @@ IMPL_LINK(SfxTemplateManagerDlg, MenuSelectHdl, const OString&, rIdent, void)
else if (rIdent == MNI_ACTION_DELETE_FOLDER)
OnCategoryDelete();
else if (rIdent == MNI_ACTION_REFRESH)
{
mxLocalView->reload();
if(mxSearchView->IsVisible())
SearchUpdateHdl(*mxSearchFilter);
}
else if (rIdent != MNI_ACTION_DEFAULT)
DefaultTemplateMenuSelectHdl(rIdent);
}
@@ -486,7 +490,12 @@ void SfxTemplateManagerDlg::DefaultTemplateMenuSelectHdl(const OString& rIdent)
OUString sPrevDefault = SfxObjectFactory::GetStandardTemplate( aServiceName );
if(!sPrevDefault.isEmpty())
mxLocalView->RemoveDefaultTemplateIcon(sPrevDefault);
{
if(mxSearchView->IsVisible())
mxSearchView->RemoveDefaultTemplateIcon(sPrevDefault);
else
mxLocalView->RemoveDefaultTemplateIcon(sPrevDefault);
}
SfxObjectFactory::SetStandardTemplate( aServiceName, OUString() );
@@ -702,8 +711,12 @@ IMPL_LINK(SfxTemplateManagerDlg, DefaultTemplateHdl, ThumbnailViewItem*, pItem,
{
OUString sPrevDefault = SfxObjectFactory::GetStandardTemplate( aServiceName );
if(!sPrevDefault.isEmpty())
mxLocalView->RemoveDefaultTemplateIcon(sPrevDefault);
{
if(mxSearchView->IsVisible())
mxSearchView->RemoveDefaultTemplateIcon(sPrevDefault);
else
mxLocalView->RemoveDefaultTemplateIcon(sPrevDefault);
}
SfxObjectFactory::SetStandardTemplate(aServiceName,pViewItem->getPath());
pViewItem->showDefaultIcon(true);
}
diff --git a/sfx2/source/inc/templatesearchview.hxx b/sfx2/source/inc/templatesearchview.hxx
index 5dc23ad..d5a1dc3 100644
--- a/sfx2/source/inc/templatesearchview.hxx
+++ b/sfx2/source/inc/templatesearchview.hxx
@@ -43,6 +43,8 @@ public:
static BitmapEx getDefaultThumbnail( const OUString& rPath );
void RemoveDefaultTemplateIcon(const OUString& rPath);
private:
virtual void OnItemDblClicked(ThumbnailViewItem *pItem) override;