diff options
author | Michael Stahl <mstahl@redhat.com> | 2013-07-02 20:46:33 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2013-07-02 20:58:54 +0200 |
commit | 8f04b172c5c78fa80c3692a729f0191425195869 (patch) | |
tree | 64445d0c37ed2cfe2223491630d8e39e42624363 | |
parent | 12a426b0261c44c4625f627ea21bd308266acae5 (diff) |
fdo#61429: Stylist: try a little harder to restore "hierarchical"
Change-Id: I30972224c5a9aa12c4ef4c2b5ca80e7aece0baad
-rw-r--r-- | sfx2/source/dialog/templdlg.cxx | 44 | ||||
-rw-r--r-- | sfx2/source/inc/templdgi.hxx | 1 |
2 files changed, 26 insertions, 19 deletions
diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index c1d3b1714a4d..73c9f8705b5e 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -1038,6 +1038,7 @@ void SfxCommonTemplateDialog_Impl::Initialize() ReadResource(); pBindings->Invalidate( SID_STYLE_FAMILY ); pBindings->Update( SID_STYLE_FAMILY ); + Update_Impl(); aFilterLb.SetSelectHdl( LINK( this, SfxCommonTemplateDialog_Impl, FilterSelectHdl ) ); @@ -1045,8 +1046,10 @@ void SfxCommonTemplateDialog_Impl::Initialize() aFmtLb.SetSelectHdl( LINK( this, SfxCommonTemplateDialog_Impl, FmtSelectHdl ) ); aFmtLb.SetSelectionMode(MULTIPLE_SELECTION); + aFilterLb.Show(); - aFmtLb.Show(); + if (!bHierarchical) + aFmtLb.Show(); } //------------------------------------------------------------------------- @@ -1367,6 +1370,7 @@ void SfxCommonTemplateDialog_Impl::UpdateStyles_Impl(sal_uInt16 nFlags) if (pTreeBox || m_bWantHierarchical) { aFilterLb.SelectEntry(SfxResId(STR_STYLE_FILTER_HIERARCHICAL).toString()); + EnableHierarchical(true); } // show maximum 14 entries @@ -1375,21 +1379,12 @@ void SfxCommonTemplateDialog_Impl::UpdateStyles_Impl(sal_uInt16 nFlags) } else { - if (m_bWantHierarchical) - { - nActFilter = 0; - aFilterLb.SelectEntry(SfxResId( - STR_STYLE_FILTER_HIERARCHICAL).toString()); - } + if (nActFilter < aFilterLb.GetEntryCount() - 1) + aFilterLb.SelectEntryPos(nActFilter + 1); else { - if (nActFilter < aFilterLb.GetEntryCount() - 1) - aFilterLb.SelectEntryPos(nActFilter + 1); - else - { - nActFilter = 0; - aFilterLb.SelectEntryPos(1); - } + nActFilter = 0; + aFilterLb.SelectEntryPos(1); } } @@ -1827,11 +1822,11 @@ sal_Bool SfxCommonTemplateDialog_Impl::Execute_Impl( //------------------------------------------------------------------------- // Handler der Listbox der Filter -IMPL_LINK( SfxCommonTemplateDialog_Impl, FilterSelectHdl, ListBox *, pBox ) +void SfxCommonTemplateDialog_Impl::EnableHierarchical(bool const bEnable) { - if ( SfxResId(STR_STYLE_FILTER_HIERARCHICAL).toString().equals(pBox->GetSelectEntry()) ) + if (bEnable) { - if ( !bHierarchical ) + if (!bHierarchical) { // Turn on treeView bHierarchical=sal_True; @@ -1862,7 +1857,6 @@ IMPL_LINK( SfxCommonTemplateDialog_Impl, FilterSelectHdl, ListBox *, pBox ) pTreeBox->Show(); } } - else { DELETEZ(pTreeBox); @@ -1870,9 +1864,21 @@ IMPL_LINK( SfxCommonTemplateDialog_Impl, FilterSelectHdl, ListBox *, pBox ) // If bHierarchical, then the family can have changed // minus one since hierarchical is inserted at the start m_bWantHierarchical = sal_False; // before FilterSelect - FilterSelect(pBox->GetSelectEntryPos() - 1, bHierarchical ); + FilterSelect(aFilterLb.GetSelectEntryPos() - 1, bHierarchical ); bHierarchical=sal_False; } +} + +IMPL_LINK( SfxCommonTemplateDialog_Impl, FilterSelectHdl, ListBox *, pBox ) +{ + if (SfxResId(STR_STYLE_FILTER_HIERARCHICAL).toString() == pBox->GetSelectEntry()) + { + EnableHierarchical(true); + } + else + { + EnableHierarchical(false); + } return 0; } diff --git a/sfx2/source/inc/templdgi.hxx b/sfx2/source/inc/templdgi.hxx index 88405faec951..f685a7114f38 100644 --- a/sfx2/source/inc/templdgi.hxx +++ b/sfx2/source/inc/templdgi.hxx @@ -201,6 +201,7 @@ protected: void ResetFocus(); void EnableDelete(); void Initialize(); + void EnableHierarchical(bool); void FilterSelect( sal_uInt16 nFilterIdx, sal_Bool bForce = sal_False ); void SetFamilyState( sal_uInt16 nSlotId, const SfxTemplateItem* ); |