openoffice-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From arie...@apache.org
Subject svn commit: r1419979 - /openoffice/trunk/main/sfx2/source/dialog/templdlg.cxx
Date Tue, 11 Dec 2012 02:51:16 GMT
Author: arielch
Date: Tue Dec 11 02:51:14 2012
New Revision: 1419979

URL: http://svn.apache.org/viewvc?rev=1419979&view=rev
Log:
i79901 - Store hierarchical style filter

Modified:
    openoffice/trunk/main/sfx2/source/dialog/templdlg.cxx

Modified: openoffice/trunk/main/sfx2/source/dialog/templdlg.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/dialog/templdlg.cxx?rev=1419979&r1=1419978&r2=1419979&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/dialog/templdlg.cxx (original)
+++ openoffice/trunk/main/sfx2/source/dialog/templdlg.cxx Tue Dec 11 02:51:14 2012
@@ -98,6 +98,9 @@ static sal_uInt16 nLastItemId = USHRT_MA
 // filter box has maximum 12 entries visible
 #define MAX_FILTER_ENTRIES          12
 
+#define SFX_TEMPLDLG_FILTER_MAX             0xFFFF
+#define SFX_TEMPLDLG_FILTER_HIERARCHICAL    0xFFFE
+
 //=========================================================================
 
 TYPEINIT0(SfxCommonTemplateDialog_Impl);
@@ -755,7 +758,7 @@ SfxCommonTemplateDialog_Impl::SfxCommonT
 	aFmtLb					( this, WB_BORDER | WB_TABSTOP | WB_SORT | WB_QUICK_SEARCH ),
 	aFilterLb				( pW, WB_BORDER | WB_DROPDOWN | WB_TABSTOP ),
 
-	nActFamily				( 0xffff ),
+	nActFamily				( SFX_TEMPLDLG_FILTER_MAX ),
 	nActFilter				( 0 ),
 	nAppFilter				( 0 ),
 
@@ -800,7 +803,7 @@ SfxCommonTemplateDialog_Impl::SfxCommonT
 	aFmtLb					( this, SfxResId( BT_VLIST ) ),
 	aFilterLb				( pW, SfxResId( BT_FLIST ) ),
 
-	nActFamily				( 0xffff ),
+	nActFamily				( SFX_TEMPLDLG_FILTER_MAX ),
 	nActFilter				( 0 ),
 	nAppFilter				( 0 ),
 
@@ -874,8 +877,10 @@ void SfxCommonTemplateDialog_Impl::ReadR
 	else
 		pStyleFamilies = new SfxStyleFamilies( aFamId );
 
-	nActFilter = pCurObjShell ? static_cast< sal_uInt16 >( LoadFactoryStyleFilter( pCurObjShell
) ) : 0xFFFF;
-    if ( pCurObjShell && 0xFFFF == nActFilter )
+	nActFilter = pCurObjShell ?
+        static_cast< sal_uInt16 >( LoadFactoryStyleFilter( pCurObjShell ) ) :
+        SFX_TEMPLDLG_FILTER_MAX;
+    if ( pCurObjShell && SFX_TEMPLDLG_FILTER_MAX == nActFilter )
         nActFilter = pCurObjShell->GetAutoStyleFilterIndex();
 
 		// Einfuegen in die Toolbox
@@ -1167,7 +1172,7 @@ void SfxCommonTemplateDialog_Impl::Enabl
 void SfxCommonTemplateDialog_Impl::FillTreeBox()
 {
 	DBG_ASSERT( pTreeBox, "FillTreeBox() without treebox");
-	if(pStyleSheetPool && nActFamily != 0xffff)
+	if(pStyleSheetPool && nActFamily != SFX_TEMPLDLG_FILTER_MAX)
 	{
 		const SfxStyleFamilyItem *pItem = GetFamilyItem_Impl();
 		pStyleSheetPool->SetSearchMask(pItem->GetFamily(), SFXSTYLEBIT_ALL);
@@ -1476,7 +1481,7 @@ void SfxCommonTemplateDialog_Impl::Updat
 	 SfxTemplateItem *pItem = 0;
 	 // aktueller Bereich nicht innerhalb der erlaubten Bereiche
 	 // oder Default
-	 if(nActFamily == 0xffff || 0 == (pItem = pFamilyState[nActFamily-1] ) )
+	 if(nActFamily == SFX_TEMPLDLG_FILTER_MAX || 0 == (pItem = pFamilyState[nActFamily-1] )
)
 	 {
 		 CheckItem(nActFamily, sal_False);
 		 SfxTemplateItem **ppItem = pFamilyState;
@@ -1496,7 +1501,7 @@ void SfxCommonTemplateDialog_Impl::Updat
 		 // andere DocShell -> alles neu
 		 CheckItem( nActFamily, sal_True );
 		 nActFilter = static_cast< sal_uInt16 >( LoadFactoryStyleFilter( pDocShell ) );
-         if ( 0xFFFF == nActFilter )
+         if ( SFX_TEMPLDLG_FILTER_MAX == nActFilter )
             nActFilter = pDocShell->GetAutoStyleFilterIndex();
 
 		 nAppFilter = pItem->GetValue();
@@ -1512,10 +1517,6 @@ void SfxCommonTemplateDialog_Impl::Updat
 		 // anderer Filter fuer automatisch
 		 CheckItem( nActFamily, sal_True );
 		 const SfxStyleFamilyItem *pStyleItem =  GetFamilyItem_Impl();
-#if OSL_DEBUG_LEVEL > 1
-		 SfxFilterTupel *pT;
-         pT = pStyleItem->GetFilterList().GetObject(nActFilter);
-#endif
 		 if(0 == pStyleItem->GetFilterList().GetObject(nActFilter)->nFlags
 			&& nAppFilter != pItem->GetValue())
 		 {
@@ -1791,6 +1792,17 @@ IMPL_LINK( SfxCommonTemplateDialog_Impl,
 			SelectStyle(aSelectEntry);
 			pTreeBox->SetAccessibleName(SfxResId(STR_STYLE_ELEMTLIST));
 			pTreeBox->Show();
+
+            // Save the filter state
+            SfxViewFrame *pViewFrame = pBindings->GetDispatcher_Impl()->GetFrame();
+            SfxObjectShell *pDocShell = pViewFrame->GetObjectShell();
+            if (pDocShell)
+            {
+                // only in the configuration
+                // SetAutoStyleFilterIndex would update nActFilter
+                // which should only contain a valid listbox entry
+                SaveFactoryStyleFilter( pDocShell, SFX_TEMPLDLG_FILTER_HIERARCHICAL );
+            }
 		}
 	}
 
@@ -1861,13 +1873,13 @@ void SfxCommonTemplateDialog_Impl::Actio
 		}
 		case SID_STYLE_NEW_BY_EXAMPLE:
 		{
-			if(pStyleSheetPool && nActFamily != 0xffff)
+			if(pStyleSheetPool && nActFamily != SFX_TEMPLDLG_FILTER_MAX)
 			{
 				const SfxStyleFamily eFam=GetFamilyItem_Impl()->GetFamily();
 //pStyleSheetPool->GetSearchFamily();
 				const SfxStyleFamilyItem *pItem = GetFamilyItem_Impl();
 				sal_uInt16 nFilter;
-				if(pItem&&nActFilter!=0xffff)
+				if(pItem&&nActFilter!=SFX_TEMPLDLG_FILTER_MAX)
 				{
 					nFilter = pItem->GetFilterList().GetObject(
 						nActFilter)->nFlags;
@@ -1958,7 +1970,7 @@ sal_Int32 SfxCommonTemplateDialog_Impl::
 
 void SfxCommonTemplateDialog_Impl::SaveFactoryStyleFilter( SfxObjectShell* i_pObjSh, sal_Int32
i_nFilter )
 {
-    DBG_ASSERT( i_pObjSh, "SfxCommonTemplateDialog_Impl::LoadFactoryStyleFilter(): no ObjectShell"
);
+    DBG_ASSERT( i_pObjSh, "SfxCommonTemplateDialog_Impl::SaveFactoryStyleFilter(): no ObjectShell"
);
     Reference< ::com::sun::star::container::XNameReplace > xContainer( xModuleManager,
UNO_QUERY );
     if ( xContainer.is() )
     {
@@ -1987,7 +1999,7 @@ IMPL_LINK( SfxCommonTemplateDialog_Impl,
 void SfxCommonTemplateDialog_Impl::NewHdl(void *)
 {
 	String aEmpty;
-	if ( nActFamily != 0xffff )
+	if ( nActFamily != SFX_TEMPLDLG_FILTER_MAX )
 	{
 		Window* pTmp;
 		pTmp = Application::GetDefDialogParent();
@@ -1999,7 +2011,7 @@ void SfxCommonTemplateDialog_Impl::NewHd
 		const SfxStyleFamilyItem *pItem = GetFamilyItem_Impl();
 		const SfxStyleFamily eFam=pItem->GetFamily();
 		sal_uInt16 nMask;
-		if(pItem&&nActFilter!=0xffff)
+		if(pItem&&nActFilter!=SFX_TEMPLDLG_FILTER_MAX)
 		{
 			nMask = pItem->GetFilterList().GetObject(
 				nActFilter)->nFlags;
@@ -2267,7 +2279,7 @@ void SfxCommonTemplateDialog_Impl::Execu
 SfxStyleFamily SfxCommonTemplateDialog_Impl::GetActualFamily() const
 {
 	const SfxStyleFamilyItem *pFamilyItem = GetFamilyItem_Impl();
-	if( !pFamilyItem || nActFamily == 0xffff )
+	if( !pFamilyItem || nActFamily == SFX_TEMPLDLG_FILTER_MAX )
 		return SFX_STYLE_FAMILY_PARA;
 	else
 		return pFamilyItem->GetFamily();
@@ -2321,6 +2333,16 @@ SfxTemplateDialog_Impl::SfxTemplateDialo
 
 {
 	pDlgWindow->FreeResource();
+
+    // Read the filter stored in the configuration
+    // This is already done in ReadResource(), invoked by Initialize()
+    // and stored in nActFilter, but we can't rely on nActFilter's value
+    // because it is changed in UpdateStyles_Impl
+    SfxViewFrame* pViewFrame = pBindings->GetDispatcher_Impl()->GetFrame();
+    pCurObjShell = pViewFrame->GetObjectShell();
+    const sal_uInt16 nConfigFilter = pCurObjShell ?
+        static_cast< sal_uInt16 >( LoadFactoryStyleFilter( pCurObjShell ) ) : 0;
+
 	Initialize();
 
 	m_aActionTbL.SetSelectHdl(LINK(this, SfxTemplateDialog_Impl, ToolBoxLSelect));
@@ -2332,6 +2354,13 @@ SfxTemplateDialog_Impl::SfxTemplateDialo
 	aFont.SetWeight( WEIGHT_NORMAL );
 	aFilterLb.SetFont( aFont );
 	m_aActionTbL.SetHelpId( HID_TEMPLDLG_TOOLBOX_LEFT );
+
+    if ( nConfigFilter == SFX_TEMPLDLG_FILTER_HIERARCHICAL )
+    {
+        bHierarchical = sal_False;
+        aFilterLb.SelectEntry(String(SfxResId(STR_STYLE_FILTER_HIERARCHICAL)));
+        FilterSelectHdl(&aFilterLb);
+    }
 }
 
 // ------------------------------------------------------------------------
@@ -2916,10 +2945,10 @@ void SfxCommonTemplateDialog_Impl::SetFa
 {
 	if ( nId != nActFamily )
 	{
-		if ( nActFamily != 0xFFFF )
+		if ( nActFamily != SFX_TEMPLDLG_FILTER_MAX )
 			CheckItem( nActFamily, sal_False );
 		nActFamily = nId;
-		if ( nId != 0xFFFF )
+		if ( nId != SFX_TEMPLDLG_FILTER_MAX )
 			bUpdateFamily = sal_True;
 	}
 }



Mime
View raw message