summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-07-02 20:46:33 +0200
committerBosdonnat Cedric <cedric.bosdonnat@free.fr>2013-07-03 08:06:49 +0000
commit6906a700c436892429032fce0c7e055dd97b083a (patch)
treeacf3e83b100b8816e82f6521832bed486f844374 /sfx2
parentc7f23c281765a75ea7840f8dd54449e20abb8fc6 (diff)
fdo#61429: Stylist: try a little harder to restore "hierarchical"
Change-Id: I30972224c5a9aa12c4ef4c2b5ca80e7aece0baad (cherry picked from commit 8f04b172c5c78fa80c3692a729f0191425195869) Reviewed-on: https://gerrit.libreoffice.org/4686 Reviewed-by: Bosdonnat Cedric <cedric.bosdonnat@free.fr> Tested-by: Bosdonnat Cedric <cedric.bosdonnat@free.fr>
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/dialog/templdlg.cxx44
-rw-r--r--sfx2/source/inc/templdgi.hxx1
2 files changed, 26 insertions, 19 deletions
diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index 3d81345f8767..dc5324cf5551 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* );