From cdd4d969b1446ca0492adda239f5caf9987b84eb Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 15 May 2012 15:25:05 +0100 Subject: Related: rhbz#790233 Allow styles to be deleted from the template dialog I knew this used to work at some stage, appears to be a regression since cdf8680ed24a56956f257c99c73ff95ff488e2c6 GetIndices_Impl gives the region and index of the entry relative to the immediate parent, so doesn't make sense to use those as indexes into the template array if we're at the style level. backup into the template level if we're below it to get the relevant template index. Change-Id: I37a0bbc38cbb4dd82dd3d2c8309d8be61d83adbd --- sfx2/source/doc/docvor.cxx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sfx2/source/doc/docvor.cxx b/sfx2/source/doc/docvor.cxx index 5ed00278bebf..a1eded4f2b52 100644 --- a/sfx2/source/doc/docvor.cxx +++ b/sfx2/source/doc/docvor.cxx @@ -1679,8 +1679,17 @@ sal_Bool SfxOrganizeDlg_Impl::DontDelete_Impl( SvLBoxEntry* pEntry ) return sal_True; } + //If delete is pressed on e.g. a style entry go up the chain to find the + //owning template + while (nDepth > 1) + { + pEntry = pFocusBox->GetParent(pEntry); + --nDepth; + } + SvLBoxEntry *pTemplateEntry = pEntry; + sal_uInt16 nRegion = 0, nIndex = 0; - GetIndices_Impl( pFocusBox, pEntry, nRegion, nIndex ); + GetIndices_Impl( pFocusBox, pTemplateEntry, nRegion, nIndex ); const SfxDocumentTemplates* pTemplates = aMgr.GetTemplates(); if ( !pTemplates || !pTemplates->HasUserContents( nRegion, nIndex ) ) return sal_True; -- cgit v1.2.3