summaryrefslogtreecommitdiff
path: root/sw/source/core/doc
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/doc')
-rw-r--r--sw/source/core/doc/doccomp.cxx52
-rw-r--r--sw/source/core/doc/docglbl.cxx4
-rw-r--r--sw/source/core/doc/doclay.cxx29
-rw-r--r--sw/source/core/doc/docnew.cxx4
-rw-r--r--sw/source/core/doc/notxtfrm.cxx21
5 files changed, 69 insertions, 41 deletions
diff --git a/sw/source/core/doc/doccomp.cxx b/sw/source/core/doc/doccomp.cxx
index 9d92886f6de6..6451aebd4251 100644
--- a/sw/source/core/doc/doccomp.cxx
+++ b/sw/source/core/doc/doccomp.cxx
@@ -966,6 +966,29 @@ BOOL SwCompareLine::Compare( const CompareLine& rLine ) const
return CompareNode( rNode, ((SwCompareLine&)rLine).rNode );
}
+namespace
+{
+ static String SimpleTableToText(const SwNode &rNode)
+ {
+ String sRet;
+ const SwNode* pEndNd = rNode.EndOfSectionNode();
+ SwNodeIndex aIdx( rNode );
+ while (&aIdx.GetNode() != pEndNd)
+ {
+ if (aIdx.GetNode().IsTxtNode())
+ {
+ if (sRet.Len())
+ {
+ sRet.Append( '\n' );
+ }
+ sRet.Append( aIdx.GetNode().GetTxtNode()->GetExpandTxt() );
+ }
+ aIdx++;
+ }
+ return sRet;
+ }
+}
+
BOOL SwCompareLine::CompareNode( const SwNode& rDstNd, const SwNode& rSrcNd )
{
if( rSrcNd.GetNodeType() != rDstNd.GetNodeType() )
@@ -986,6 +1009,13 @@ BOOL SwCompareLine::CompareNode( const SwNode& rDstNd, const SwNode& rSrcNd )
bRet = ( rTSrcNd.EndOfSectionIndex() - rTSrcNd.GetIndex() ) ==
( rTDstNd.EndOfSectionIndex() - rTDstNd.GetIndex() );
+
+ // --> #i107826#: compare actual table content
+ if (bRet)
+ {
+ bRet = (SimpleTableToText(rSrcNd) == SimpleTableToText(rDstNd));
+ }
+ // <--
}
break;
@@ -1040,6 +1070,15 @@ BOOL SwCompareLine::CompareNode( const SwNode& rDstNd, const SwNode& rSrcNd )
case ND_ENDNODE:
bRet = rSrcNd.StartOfSectionNode()->GetNodeType() ==
rDstNd.StartOfSectionNode()->GetNodeType();
+
+ // --> #i107826#: compare actual table content
+ if (bRet && rSrcNd.StartOfSectionNode()->GetNodeType() == ND_TABLENODE)
+ {
+ bRet = CompareNode(
+ *rSrcNd.StartOfSectionNode(), *rDstNd.StartOfSectionNode());
+ }
+ // <--
+
break;
}
return bRet;
@@ -1056,18 +1095,7 @@ String SwCompareLine::GetText() const
case ND_TABLENODE:
{
- const SwNode* pEndNd = rNode.EndOfSectionNode();
- SwNodeIndex aIdx( rNode );
- while( &aIdx.GetNode() != pEndNd )
- {
- if( aIdx.GetNode().IsTxtNode() )
- {
- if( sRet.Len() )
- sRet.Append( '\n' );
- sRet.Append( ((SwTxtNode&)rNode).GetExpandTxt() );
- }
- aIdx++;
- }
+ sRet = SimpleTableToText(rNode);
sRet.InsertAscii( "Tabelle: ", 0 );
}
break;
diff --git a/sw/source/core/doc/docglbl.cxx b/sw/source/core/doc/docglbl.cxx
index a67486c34ad8..abf2e5b2217b 100644
--- a/sw/source/core/doc/docglbl.cxx
+++ b/sw/source/core/doc/docglbl.cxx
@@ -319,7 +319,7 @@ BOOL SwDoc::SplitDoc( USHORT eDocType, const String& rPath,
pDoc->GetSpzFrmFmts()->Count() )
{
/* SfxViewFrame* pFrame = */
- SfxViewFrame::CreateViewFrame( *xDocSh, 0, TRUE );
+ SfxViewFrame::LoadHiddenDocument( *xDocSh, 0 );
}
xDocSh->DoSaveAs( *pTmpMed );
xDocSh->DoSaveCompleted( pTmpMed );
@@ -666,7 +666,7 @@ BOOL SwDoc::SplitDoc( USHORT eDocType, const String& rPath, int nOutlineLevel )
pDoc->GetSpzFrmFmts()->Count() )
{
/* SfxViewFrame* pFrame = */
- SfxViewFrame::CreateViewFrame( *xDocSh, 0, TRUE );
+ SfxViewFrame::LoadHiddenDocument( *xDocSh, 0 );
}
xDocSh->DoSaveAs( *pTmpMed );
xDocSh->DoSaveCompleted( pTmpMed );
diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx
index c01ad49f78af..6e04d49afb3e 100644
--- a/sw/source/core/doc/doclay.cxx
+++ b/sw/source/core/doc/doclay.cxx
@@ -651,14 +651,14 @@ SwFlyFrmFmt* SwDoc::_MakeFlySection( const SwPosition& rAnchPos,
// Anker noch nicht gesetzt ?
RndStdIds eAnchorId = pAnchor ? pAnchor->GetAnchorId()
: pFmt->GetAnchor().GetAnchorId();
- if( !pAnchor ||
- ((FLY_AT_PAGE != pAnchor->GetAnchorId()) &&
- //Nur Page und nicht:
-// FLY_AT_CNTNT == pAnchor->GetAnchorId() ||
-// FLY_IN_CNTNT == pAnchor->GetAnchorId() ||
-// FLY_AT_FLY == pAnchor->GetAnchorId() ||
-// FLY_AUTO_CNTNT == pAnchor->GetAnchorId() ) &&
- !pAnchor->GetCntntAnchor() ))
+ // --> OD 2010-01-07 #i107811#
+ // Assure that at-page anchored fly frames have a page num or a content anchor set.
+ if ( !pAnchor ||
+ ( FLY_AT_PAGE != pAnchor->GetAnchorId() &&
+ !pAnchor->GetCntntAnchor() ) ||
+ ( FLY_AT_PAGE == pAnchor->GetAnchorId() &&
+ !pAnchor->GetCntntAnchor() &&
+ pAnchor->GetPageNum() == 0 ) )
{
// dann setze ihn, wird im Undo gebraucht
SwFmtAnchor aAnch( pFmt->GetAnchor() );
@@ -672,15 +672,20 @@ SwFlyFrmFmt* SwDoc::_MakeFlySection( const SwPosition& rAnchPos,
{
if( eRequestId != aAnch.GetAnchorId() &&
SFX_ITEM_SET != pFmt->GetItemState( RES_ANCHOR, sal_True ) )
+ {
aAnch.SetType( eRequestId );
+ }
eAnchorId = aAnch.GetAnchorId();
- if ( FLY_AT_PAGE != eAnchorId )
- //Nur Page und nicht:
-// if( FLY_AT_CNTNT == eAnchorId || FLY_IN_CNTNT == eAnchorId ||
-// FLY_AT_FLY == eAnchorId || FLY_AUTO_CNTNT == eAnchorId )
+ if ( FLY_AT_PAGE != eAnchorId ||
+ ( FLY_AT_PAGE == eAnchorId &&
+ ( !pAnchor ||
+ aAnch.GetPageNum() == 0 ) ) )
+ {
aAnch.SetAnchor( &rAnchPos );
+ }
}
+ // <--
pFmt->SetFmtAttr( aAnch );
}
else
diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx
index 6465143eabb0..8dfcbb215e3a 100644
--- a/sw/source/core/doc/docnew.cxx
+++ b/sw/source/core/doc/docnew.cxx
@@ -169,12 +169,12 @@ void StartGrammarChecking( SwDoc &rDoc )
// check for a visible view
bool bVisible = false;
const SwDocShell *pDocShell = rDoc.GetDocShell();
- SfxViewFrame *pFrame = SfxViewFrame::GetFirst( pDocShell, 0, sal_False );
+ SfxViewFrame *pFrame = SfxViewFrame::GetFirst( pDocShell, sal_False );
while (pFrame && !bVisible)
{
if (pFrame->IsVisible())
bVisible = true;
- pFrame = SfxViewFrame::GetNext( *pFrame, pDocShell, 0, sal_False );
+ pFrame = SfxViewFrame::GetNext( *pFrame, pDocShell, sal_False );
}
//!! only documents with visible views need to be checked
diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx
index 541cc53c1e77..bb10e9c1941b 100644
--- a/sw/source/core/doc/notxtfrm.cxx
+++ b/sw/source/core/doc/notxtfrm.cxx
@@ -295,14 +295,6 @@ void SwNoTxtFrm::Paint( const SwRect &rRect, const SwPrtOptions * /*pPrintData*/
// <--
StopAnimation();
- if ( pSh->Imp()->IsPaintInScroll() && pSh->GetWin() && rRect != Frm() &&
- HasAnimation() )
- {
- pSh->GetWin()->Invalidate( Frm().SVRect() );
- return;
- }
-
-
SfxProgress::EnterLock(); //Keine Progress-Reschedules im Paint (SwapIn)
OutputDevice *pOut = pSh->GetOut();
@@ -799,6 +791,7 @@ void SwNoTxtFrm::Modify( SfxPoolItem* pOld, SfxPoolItem* pNew )
void lcl_correctlyAlignRect( SwRect& rAlignedGrfArea, const SwRect& rInArea, OutputDevice* pOut )
{
+
if(!pOut)
return;
Rectangle aPxRect = pOut->LogicToPixel( rInArea.SVRect() );
@@ -865,7 +858,7 @@ void SwNoTxtFrm::PaintPicture( OutputDevice* pOut, const SwRect &rGrfArea ) cons
//this might be a good idea for all other OLE objects also,
//but as I cannot oversee the consequences I fix it only for charts for now
lcl_correctlyAlignRect( aAlignedGrfArea, rGrfArea, pOut );
- }
+ }
if( pGrfNd )
{
@@ -913,8 +906,9 @@ void SwNoTxtFrm::PaintPicture( OutputDevice* pOut, const SwRect &rGrfArea ) cons
else if( rGrfObj.IsCached( pOut, aAlignedGrfArea.Pos(),
aAlignedGrfArea.SSize(), &aGrfAttr ))
{
- rGrfObj.Draw( pOut, aAlignedGrfArea.Pos(), aAlignedGrfArea.SSize(),
- &aGrfAttr );
+ rGrfObj.DrawWithPDFHandling( *pOut,
+ aAlignedGrfArea.Pos(), aAlignedGrfArea.SSize(),
+ &aGrfAttr );
bContinue = FALSE;
}
}
@@ -953,8 +947,9 @@ void SwNoTxtFrm::PaintPicture( OutputDevice* pOut, const SwRect &rGrfArea ) cons
0, GRFMGR_DRAW_STANDARD, pVout );
}
else
- rGrfObj.Draw( pOut, aAlignedGrfArea.Pos(), aAlignedGrfArea.SSize(),
- &aGrfAttr );
+ rGrfObj.DrawWithPDFHandling( *pOut,
+ aAlignedGrfArea.Pos(), aAlignedGrfArea.SSize(),
+ &aGrfAttr );
}
else
{