summaryrefslogtreecommitdiff
authorCaolán McNamara <caolanm@redhat.com>2012-05-15 14:25:05 (GMT)
committer Caolán McNamara <caolanm@redhat.com>2012-05-15 14:31:06 (GMT)
commitcdd4d969b1446ca0492adda239f5caf9987b84eb (patch) (side-by-side diff)
tree1e837869356b2dd23e913ea3767e0d82444d8798
parent8856ec1904882c69a38f6898b3c4d9227e7257b0 (diff)
downloadcore-cdd4d969b1446ca0492adda239f5caf9987b84eb.zip
core-cdd4d969b1446ca0492adda239f5caf9987b84eb.tar.gz
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
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--sfx2/source/doc/docvor.cxx11
1 files changed, 10 insertions, 1 deletions
diff --git a/sfx2/source/doc/docvor.cxx b/sfx2/source/doc/docvor.cxx
index 5ed0027..a1eded4 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;