You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by or...@apache.org on 2013/10/11 11:30:44 UTC

svn commit: r1531240 - /openoffice/trunk/main/sw/source/ui/config/optpage.cxx

Author: orw
Date: Fri Oct 11 09:30:43 2013
New Revision: 1531240

URL: http://svn.apache.org/r1531240
Log:
123462 - Writer's Formatting Aids option page - guard access to <SwWrtShell> instance as this is not available in Page Preview

	Found by: Matthieu Riolo <ma...@adfinis-sygroup.ch>
	Review by: Matthieu Riolo <ma...@adfinis-sygroup.ch>


Modified:
    openoffice/trunk/main/sw/source/ui/config/optpage.cxx

Modified: openoffice/trunk/main/sw/source/ui/config/optpage.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/ui/config/optpage.cxx?rev=1531240&r1=1531239&r2=1531240&view=diff
==============================================================================
--- openoffice/trunk/main/sw/source/ui/config/optpage.cxx (original)
+++ openoffice/trunk/main/sw/source/ui/config/optpage.cxx Fri Oct 11 09:30:43 2013
@@ -1585,45 +1585,49 @@ void SwShdwCrsrOptionsTabPage::PageCreat
 
 sal_Bool SwShdwCrsrOptionsTabPage::FillItemSet( SfxItemSet& rSet )
 {
-	SwShadowCursorItem aOpt;
-	aOpt.SetOn( aOnOffCB.IsChecked() );
+    SwShadowCursorItem aOpt;
+    aOpt.SetOn( aOnOffCB.IsChecked() );
 
-	sal_uInt8 eMode;
-	if( aFillIndentRB.IsChecked() )
-		eMode= FILL_INDENT;
-	else if( aFillMarginRB.IsChecked() )
-		eMode = FILL_MARGIN;
-	else if( aFillTabRB.IsChecked() )
-		eMode = FILL_TAB;
-	else
-		eMode = FILL_SPACE;
-	aOpt.SetMode( eMode );
+    sal_uInt8 eMode;
+    if( aFillIndentRB.IsChecked() )
+        eMode= FILL_INDENT;
+    else if( aFillMarginRB.IsChecked() )
+        eMode = FILL_MARGIN;
+    else if( aFillTabRB.IsChecked() )
+        eMode = FILL_TAB;
+    else
+        eMode = FILL_SPACE;
+    aOpt.SetMode( eMode );
 
-	sal_Bool bRet = sal_False;
-	const SfxPoolItem* pItem = 0;
-	if( SFX_ITEM_SET != rSet.GetItemState( FN_PARAM_SHADOWCURSOR, sal_False, &pItem )
-		||  ((SwShadowCursorItem&)*pItem) != aOpt )
-	{
-		rSet.Put( aOpt );
-		bRet = sal_True;
-	}
+    sal_Bool bRet = sal_False;
+    const SfxPoolItem* pItem = 0;
+    if( SFX_ITEM_SET != rSet.GetItemState( FN_PARAM_SHADOWCURSOR, sal_False, &pItem )
+        ||  ((SwShadowCursorItem&)*pItem) != aOpt )
+    {
+        rSet.Put( aOpt );
+        bRet = sal_True;
+    }
 
-    m_pWrtShell->GetDoc()->set( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT, 
+    if ( m_pWrtShell )
+    {
+        m_pWrtShell->GetDoc()->set(
+            IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT,
             m_aMathBaselineAlignmentCB.IsChecked() );
-    bRet |= m_aMathBaselineAlignmentCB.IsChecked() != m_aMathBaselineAlignmentCB.GetSavedValue();
+        bRet |= m_aMathBaselineAlignmentCB.IsChecked() != m_aMathBaselineAlignmentCB.GetSavedValue();
+    }
 
-	if( aCrsrInProtCB.IsChecked() != aCrsrInProtCB.GetSavedValue())
-	{
-		rSet.Put(SfxBoolItem(FN_PARAM_CRSR_IN_PROTECTED, aCrsrInProtCB.IsChecked()));
-		bRet |= sal_True;
-	}
+    if( aCrsrInProtCB.IsChecked() != aCrsrInProtCB.GetSavedValue())
+    {
+        rSet.Put(SfxBoolItem(FN_PARAM_CRSR_IN_PROTECTED, aCrsrInProtCB.IsChecked()));
+        bRet |= sal_True;
+    }
 
-    const SwDocDisplayItem* pOldAttr = (const SwDocDisplayItem*)
-						GetOldItem(GetItemSet(), FN_PARAM_DOCDISP);
+    const SwDocDisplayItem* pOldAttr =
+        (const SwDocDisplayItem*)GetOldItem(GetItemSet(), FN_PARAM_DOCDISP);
 
-	SwDocDisplayItem aDisp;
-	if(pOldAttr)
-		aDisp = *pOldAttr;
+    SwDocDisplayItem aDisp;
+    if(pOldAttr)
+        aDisp = *pOldAttr;
     //
     aDisp.bParagraphEnd         = aParaCB       .IsChecked();
     aDisp.bTab                  = aTabCB        .IsChecked();
@@ -1636,7 +1640,7 @@ sal_Bool SwShdwCrsrOptionsTabPage::FillI
     aDisp.bManualBreak          = aBreakCB      .IsChecked();
 
     bRet |= (!pOldAttr || aDisp != *pOldAttr);
-	if(bRet)
+    if(bRet)
         bRet = 0 != rSet.Put(aDisp);
 
     return bRet;
@@ -1644,31 +1648,41 @@ sal_Bool SwShdwCrsrOptionsTabPage::FillI
 
 void SwShdwCrsrOptionsTabPage::Reset( const SfxItemSet& rSet )
 {
-	const SfxPoolItem* pItem = 0;
+    const SfxPoolItem* pItem = 0;
 
     SwShadowCursorItem aOpt;
-	if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_SHADOWCURSOR, sal_False, &pItem ))
-		aOpt = *(SwShadowCursorItem*)pItem;
-	aOnOffCB.Check( aOpt.IsOn() );
-
-	sal_uInt8 eMode = aOpt.GetMode();
-	aFillIndentRB.Check( FILL_INDENT == eMode );
-	aFillMarginRB.Check( FILL_MARGIN == eMode );
-	aFillTabRB.Check( FILL_TAB == eMode );
-	aFillSpaceRB.Check( FILL_SPACE == eMode );
-
-    m_aMathBaselineAlignmentCB.Check( m_pWrtShell->GetDoc()->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ) );
-    m_aMathBaselineAlignmentCB.SaveValue();
-
-	if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_CRSR_IN_PROTECTED, sal_False, &pItem ))
-		aCrsrInProtCB.Check(((const SfxBoolItem*)pItem)->GetValue());
-	aCrsrInProtCB.SaveValue();
+    if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_SHADOWCURSOR, sal_False, &pItem ))
+    {
+        aOpt = *(SwShadowCursorItem*)pItem;
+    }
+    aOnOffCB.Check( aOpt.IsOn() );
+
+    sal_uInt8 eMode = aOpt.GetMode();
+    aFillIndentRB.Check( FILL_INDENT == eMode );
+    aFillMarginRB.Check( FILL_MARGIN == eMode );
+    aFillTabRB.Check( FILL_TAB == eMode );
+    aFillSpaceRB.Check( FILL_SPACE == eMode );
+
+    if ( m_pWrtShell )
+    {
+        m_aMathBaselineAlignmentCB.Check( m_pWrtShell->GetDoc()->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ) );
+        m_aMathBaselineAlignmentCB.SaveValue();
+    }
+    else
+    {
+        m_aMathBaselineAlignmentCB.Disable();
+    }
+
+    if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_CRSR_IN_PROTECTED, sal_False, &pItem ))
+    {
+        aCrsrInProtCB.Check(((const SfxBoolItem*)pItem)->GetValue());
+    }
+    aCrsrInProtCB.SaveValue();
 
     const SwDocDisplayItem* pDocDisplayAttr = 0;
 
-	rSet.GetItemState( FN_PARAM_DOCDISP, sal_False,
-									(const SfxPoolItem**)&pDocDisplayAttr );
-	if(pDocDisplayAttr)
+    rSet.GetItemState( FN_PARAM_DOCDISP, sal_False, (const SfxPoolItem**)&pDocDisplayAttr );
+    if(pDocDisplayAttr)
     {
         aParaCB     .Check  (pDocDisplayAttr->bParagraphEnd         );
         aTabCB      .Check  (pDocDisplayAttr->bTab                  );