[Libreoffice-commits] core.git: sfx2/source

Michael Stahl mstahl at redhat.com
Tue Jul 2 12:01:46 PDT 2013


 sfx2/source/dialog/templdlg.cxx |   44 ++++++++++++++++++++++------------------
 sfx2/source/inc/templdgi.hxx    |    1 
 2 files changed, 26 insertions(+), 19 deletions(-)

New commits:
commit 8f04b172c5c78fa80c3692a729f0191425195869
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Jul 2 20:46:33 2013 +0200

    fdo#61429: Stylist: try a little harder to restore "hierarchical"
    
    Change-Id: I30972224c5a9aa12c4ef4c2b5ca80e7aece0baad

diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index c1d3b17..73c9f87 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 88405fa..f685a71 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* );


More information about the Libreoffice-commits mailing list