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 <[email protected]>
        Review by: Matthieu Riolo <[email protected]>


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                  );


Reply via email to