outliner.cxx (86af2772) outliner.cxx (ced59291)
1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance

--- 121 unchanged lines hidden (view full) ---

130 }
131 else
132 {
133 sal_Bool bUpdate = pEditEngine->GetUpdateMode();
134 pEditEngine->SetUpdateMode( sal_False );
135 ImplBlockInsertionCallbacks( sal_True );
136 pPara = new Paragraph( nDepth );
137 pParaList->Insert( pPara, nAbsPos );
1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance

--- 121 unchanged lines hidden (view full) ---

130 }
131 else
132 {
133 sal_Bool bUpdate = pEditEngine->GetUpdateMode();
134 pEditEngine->SetUpdateMode( sal_False );
135 ImplBlockInsertionCallbacks( sal_True );
136 pPara = new Paragraph( nDepth );
137 pParaList->Insert( pPara, nAbsPos );
138 pEditEngine->InsertParagraph( (sal_uInt16)nAbsPos, String() );
138 pEditEngine->InsertParagraph( (sal_uInt32)nAbsPos, String() );
139 DBG_ASSERT(pPara==pParaList->GetParagraph(nAbsPos),"Insert:Failed");
139 DBG_ASSERT(pPara==pParaList->GetParagraph(nAbsPos),"Insert:Failed");
140 ImplInitDepth( (sal_uInt16)nAbsPos, nDepth, sal_False );
140 ImplInitDepth( (sal_uInt32)nAbsPos, nDepth, sal_False );
141 pHdlParagraph = pPara;
142 ParagraphInsertedHdl();
143 pPara->nFlags |= PARAFLAG_HOLDDEPTH;
144 SetText( rText, pPara );
145 ImplBlockInsertionCallbacks( sal_False );
146 pEditEngine->SetUpdateMode( bUpdate );
147 }
148 bFirstParaIsEmpty = sal_False;

--- 117 unchanged lines hidden (view full) ---

266void Outliner::SetMaxDepth( sal_Int16 nDepth, sal_Bool bCheckParagraphs )
267{
268 if( nMaxDepth != nDepth )
269 {
270 nMaxDepth = Min( nDepth, (sal_Int16)(SVX_MAX_NUM-1) );
271
272 if( bCheckParagraphs )
273 {
141 pHdlParagraph = pPara;
142 ParagraphInsertedHdl();
143 pPara->nFlags |= PARAFLAG_HOLDDEPTH;
144 SetText( rText, pPara );
145 ImplBlockInsertionCallbacks( sal_False );
146 pEditEngine->SetUpdateMode( bUpdate );
147 }
148 bFirstParaIsEmpty = sal_False;

--- 117 unchanged lines hidden (view full) ---

266void Outliner::SetMaxDepth( sal_Int16 nDepth, sal_Bool bCheckParagraphs )
267{
268 if( nMaxDepth != nDepth )
269 {
270 nMaxDepth = Min( nDepth, (sal_Int16)(SVX_MAX_NUM-1) );
271
272 if( bCheckParagraphs )
273 {
274 sal_uInt16 nParagraphs = (sal_uInt16)pParaList->GetParagraphCount();
275 for ( sal_uInt16 nPara = 0; nPara < nParagraphs; nPara++ )
274 sal_uInt32 nParagraphs = pParaList->GetParagraphCount();
275 for ( sal_uInt32 nPara = 0; nPara < nParagraphs; nPara++ )
276 {
277 Paragraph* pPara = pParaList->GetParagraph( nPara );
278 if( pPara && pPara->GetDepth() > nMaxDepth )
279 {
280 SetDepth( pPara, nMaxDepth );
281 }
282 }
283 }

--- 14 unchanged lines hidden (view full) ---

298 ImplCheckDepth( nNewDepth );
299
300 if ( nNewDepth != pPara->GetDepth() )
301 {
302 nDepthChangedHdlPrevDepth = pPara->GetDepth();
303 mnDepthChangeHdlPrevFlags = pPara->nFlags;
304 pHdlParagraph = pPara;
305
276 {
277 Paragraph* pPara = pParaList->GetParagraph( nPara );
278 if( pPara && pPara->GetDepth() > nMaxDepth )
279 {
280 SetDepth( pPara, nMaxDepth );
281 }
282 }
283 }

--- 14 unchanged lines hidden (view full) ---

298 ImplCheckDepth( nNewDepth );
299
300 if ( nNewDepth != pPara->GetDepth() )
301 {
302 nDepthChangedHdlPrevDepth = pPara->GetDepth();
303 mnDepthChangeHdlPrevFlags = pPara->nFlags;
304 pHdlParagraph = pPara;
305
306 sal_uInt16 nPara = (sal_uInt16)GetAbsPos( pPara );
306 sal_uInt32 nPara = (sal_uInt32)GetAbsPos( pPara );
307 ImplInitDepth( nPara, nNewDepth, sal_True );
308 ImplCalcBulletText( nPara, sal_False, sal_False );
309
310 if ( ImplGetOutlinerMode() == OUTLINERMODE_OUTLINEOBJECT )
311 ImplSetLevelDependendStyleSheet( nPara );
312
313 DepthChangedHdl();
314 }

--- 112 unchanged lines hidden (view full) ---

427}
428
429OutlinerParaObject* Outliner::CreateParaObject( sal_uInt32 nStartPara, sal_uInt32 nCount ) const
430{
431 DBG_CHKTHIS(Outliner,0);
432
433 if ( sal::static_int_cast< sal_uLong >( nStartPara + nCount ) >
434 pParaList->GetParagraphCount() )
307 ImplInitDepth( nPara, nNewDepth, sal_True );
308 ImplCalcBulletText( nPara, sal_False, sal_False );
309
310 if ( ImplGetOutlinerMode() == OUTLINERMODE_OUTLINEOBJECT )
311 ImplSetLevelDependendStyleSheet( nPara );
312
313 DepthChangedHdl();
314 }

--- 112 unchanged lines hidden (view full) ---

427}
428
429OutlinerParaObject* Outliner::CreateParaObject( sal_uInt32 nStartPara, sal_uInt32 nCount ) const
430{
431 DBG_CHKTHIS(Outliner,0);
432
433 if ( sal::static_int_cast< sal_uLong >( nStartPara + nCount ) >
434 pParaList->GetParagraphCount() )
435 nCount = sal::static_int_cast< sal_uInt16 >(
435 nCount = sal::static_int_cast< sal_uInt32 >(
436 pParaList->GetParagraphCount() - nStartPara );
437
438 // When a new OutlinerParaObject is created because a paragraph is just being deleted,
439 // it can happen that the ParaList is not updated yet...
440 if ( ( nStartPara + nCount ) > pEditEngine->GetParagraphCount() )
441 nCount = pEditEngine->GetParagraphCount() - nStartPara;
442
443 if( !nCount )
444 return NULL;
445
446 EditTextObject* pText = pEditEngine->CreateTextObject( nStartPara, nCount );
447 const bool bIsEditDoc(OUTLINERMODE_TEXTOBJECT == ImplGetOutlinerMode());
448 ParagraphDataVector aParagraphDataVector(nCount);
436 pParaList->GetParagraphCount() - nStartPara );
437
438 // When a new OutlinerParaObject is created because a paragraph is just being deleted,
439 // it can happen that the ParaList is not updated yet...
440 if ( ( nStartPara + nCount ) > pEditEngine->GetParagraphCount() )
441 nCount = pEditEngine->GetParagraphCount() - nStartPara;
442
443 if( !nCount )
444 return NULL;
445
446 EditTextObject* pText = pEditEngine->CreateTextObject( nStartPara, nCount );
447 const bool bIsEditDoc(OUTLINERMODE_TEXTOBJECT == ImplGetOutlinerMode());
448 ParagraphDataVector aParagraphDataVector(nCount);
449 const sal_uInt16 nLastPara(nStartPara + nCount - 1);
449 const sal_uInt32 nLastPara(nStartPara + nCount - 1);
450
450
451 for(sal_uInt16 nPara(nStartPara); nPara <= nLastPara; nPara++)
451 for(sal_uInt32 nPara(nStartPara); nPara <= nLastPara; nPara++)
452 {
453 aParagraphDataVector[nPara-nStartPara] = *GetParagraph(nPara);
454 }
455
456 OutlinerParaObject* pPObj = new OutlinerParaObject(*pText, aParagraphDataVector, bIsEditDoc);
457 pPObj->SetOutlinerMode(GetMode());
458 delete pText;
459

--- 4 unchanged lines hidden (view full) ---

464{
465 DBG_CHKTHIS(Outliner,0);
466 DBG_ASSERT(pPara,"SetText:No Para");
467
468 sal_Bool bUpdate = pEditEngine->GetUpdateMode();
469 pEditEngine->SetUpdateMode( sal_False );
470 ImplBlockInsertionCallbacks( sal_True );
471
452 {
453 aParagraphDataVector[nPara-nStartPara] = *GetParagraph(nPara);
454 }
455
456 OutlinerParaObject* pPObj = new OutlinerParaObject(*pText, aParagraphDataVector, bIsEditDoc);
457 pPObj->SetOutlinerMode(GetMode());
458 delete pText;
459

--- 4 unchanged lines hidden (view full) ---

464{
465 DBG_CHKTHIS(Outliner,0);
466 DBG_ASSERT(pPara,"SetText:No Para");
467
468 sal_Bool bUpdate = pEditEngine->GetUpdateMode();
469 pEditEngine->SetUpdateMode( sal_False );
470 ImplBlockInsertionCallbacks( sal_True );
471
472 sal_uInt16 nPara = (sal_uInt16)pParaList->GetAbsPos( pPara );
472 sal_uInt32 nPara = (sal_uInt32)pParaList->GetAbsPos( pPara );
473
474 if( !rText.Len() )
475 {
476 pEditEngine->SetText( nPara, rText );
477 ImplInitDepth( nPara, pPara->GetDepth(), sal_False );
478 }
479 else
480 {
481 XubString aText( rText );
482 aText.ConvertLineEnd( LINEEND_LF );
483
484 if( aText.GetChar( aText.Len()-1 ) == '\x0A' )
485 aText.Erase( aText.Len()-1, 1 ); // letzten Umbruch loeschen
486
487 sal_uInt16 nCount = aText.GetTokenCount( '\x0A' );
488 sal_uInt16 nPos = 0;
473
474 if( !rText.Len() )
475 {
476 pEditEngine->SetText( nPara, rText );
477 ImplInitDepth( nPara, pPara->GetDepth(), sal_False );
478 }
479 else
480 {
481 XubString aText( rText );
482 aText.ConvertLineEnd( LINEEND_LF );
483
484 if( aText.GetChar( aText.Len()-1 ) == '\x0A' )
485 aText.Erase( aText.Len()-1, 1 ); // letzten Umbruch loeschen
486
487 sal_uInt16 nCount = aText.GetTokenCount( '\x0A' );
488 sal_uInt16 nPos = 0;
489 sal_uInt16 nInsPos = nPara+1;
489 sal_uInt32 nInsPos = nPara+1;
490 while( nCount > nPos )
491 {
492 XubString aStr = aText.GetToken( nPos, '\x0A' );
493
494 sal_Int16 nCurDepth;
495 if( nPos )
496 {
497 pPara = new Paragraph( -1 );

--- 53 unchanged lines hidden (view full) ---

551bool Outliner::ImpConvertEdtToOut( sal_uInt32 nPara,EditView* pView)
552{
553 DBG_CHKTHIS(Outliner,0);
554
555 bool bConverted = false;
556 sal_uInt16 nTabs = 0;
557 ESelection aDelSel;
558
490 while( nCount > nPos )
491 {
492 XubString aStr = aText.GetToken( nPos, '\x0A' );
493
494 sal_Int16 nCurDepth;
495 if( nPos )
496 {
497 pPara = new Paragraph( -1 );

--- 53 unchanged lines hidden (view full) ---

551bool Outliner::ImpConvertEdtToOut( sal_uInt32 nPara,EditView* pView)
552{
553 DBG_CHKTHIS(Outliner,0);
554
555 bool bConverted = false;
556 sal_uInt16 nTabs = 0;
557 ESelection aDelSel;
558
559// const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( (sal_uInt16)nPara );
559// const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( nPara );
560// bool bAlreadyOutliner = rAttrs.GetItemState( EE_PARA_OUTLLRSPACE ) == SFX_ITEM_ON ? true : false;
561
562 XubString aName;
563 XubString aHeading_US( RTL_CONSTASCII_USTRINGPARAM( "heading" ) );
564 XubString aNumber_US( RTL_CONSTASCII_USTRINGPARAM( "Numbering" ) );
565
560// bool bAlreadyOutliner = rAttrs.GetItemState( EE_PARA_OUTLLRSPACE ) == SFX_ITEM_ON ? true : false;
561
562 XubString aName;
563 XubString aHeading_US( RTL_CONSTASCII_USTRINGPARAM( "heading" ) );
564 XubString aNumber_US( RTL_CONSTASCII_USTRINGPARAM( "Numbering" ) );
565
566 XubString aStr( pEditEngine->GetText( (sal_uInt16)nPara ) );
566 XubString aStr( pEditEngine->GetText( nPara ) );
567 xub_Unicode* pPtr = (xub_Unicode*)aStr.GetBuffer();
568
569 sal_uInt16 nHeadingNumberStart = 0;
570 sal_uInt16 nNumberingNumberStart = 0;
567 xub_Unicode* pPtr = (xub_Unicode*)aStr.GetBuffer();
568
569 sal_uInt16 nHeadingNumberStart = 0;
570 sal_uInt16 nNumberingNumberStart = 0;
571 SfxStyleSheet* pStyle= pEditEngine->GetStyleSheet( (sal_uInt16)nPara );
571 SfxStyleSheet* pStyle= pEditEngine->GetStyleSheet( nPara );
572 if( pStyle )
573 {
574 aName = pStyle->GetName();
575 sal_uInt16 nSearch;
576 if ( ( nSearch = aName.Search( aHeading_US ) ) != STRING_NOTFOUND )
577 nHeadingNumberStart = nSearch + aHeading_US.Len();
578 else if ( ( nSearch = aName.Search( aNumber_US ) ) != STRING_NOTFOUND )
579 nNumberingNumberStart = nSearch + aNumber_US.Len();
580 }
581
582 if ( nHeadingNumberStart || nNumberingNumberStart )
583 {
584 // PowerPoint-Import ?
585 if( nHeadingNumberStart && ( aStr.Len() >= 2 ) &&
586 ( pPtr[0] != '\t' ) && ( pPtr[1] == '\t' ) )
587 {
588 // Bullet & Tab raus
572 if( pStyle )
573 {
574 aName = pStyle->GetName();
575 sal_uInt16 nSearch;
576 if ( ( nSearch = aName.Search( aHeading_US ) ) != STRING_NOTFOUND )
577 nHeadingNumberStart = nSearch + aHeading_US.Len();
578 else if ( ( nSearch = aName.Search( aNumber_US ) ) != STRING_NOTFOUND )
579 nNumberingNumberStart = nSearch + aNumber_US.Len();
580 }
581
582 if ( nHeadingNumberStart || nNumberingNumberStart )
583 {
584 // PowerPoint-Import ?
585 if( nHeadingNumberStart && ( aStr.Len() >= 2 ) &&
586 ( pPtr[0] != '\t' ) && ( pPtr[1] == '\t' ) )
587 {
588 // Bullet & Tab raus
589 aDelSel = ESelection( (sal_uInt16)nPara, 0, (sal_uInt16)nPara, 2 );
589 aDelSel = ESelection( nPara, 0, nPara, 2 );
590 }
591
592 sal_uInt16 nPos = nHeadingNumberStart ? nHeadingNumberStart : nNumberingNumberStart;
593 String aLevel = aName.Copy( nPos );
594 aLevel.EraseLeadingChars( ' ' );
595 nTabs = sal::static_int_cast< sal_uInt16 >(aLevel.ToInt32());
596 if( nTabs )
597 nTabs--; // ebene 0 = "heading 1"

--- 4 unchanged lines hidden (view full) ---

602 // Fuehrende Tabulatoren filtern
603 while( *pPtr == '\t' )
604 {
605 pPtr++;
606 nTabs++;
607 }
608 // Tabulatoren aus dem Text entfernen
609 if( nTabs )
590 }
591
592 sal_uInt16 nPos = nHeadingNumberStart ? nHeadingNumberStart : nNumberingNumberStart;
593 String aLevel = aName.Copy( nPos );
594 aLevel.EraseLeadingChars( ' ' );
595 nTabs = sal::static_int_cast< sal_uInt16 >(aLevel.ToInt32());
596 if( nTabs )
597 nTabs--; // ebene 0 = "heading 1"

--- 4 unchanged lines hidden (view full) ---

602 // Fuehrende Tabulatoren filtern
603 while( *pPtr == '\t' )
604 {
605 pPtr++;
606 nTabs++;
607 }
608 // Tabulatoren aus dem Text entfernen
609 if( nTabs )
610 aDelSel = ESelection( (sal_uInt16)nPara, 0, (sal_uInt16)nPara, nTabs );
610 aDelSel = ESelection( nPara, 0, nPara, nTabs );
611 }
612
613 if ( aDelSel.HasRange() )
614 {
615 if ( pView )
616 {
617 pView->SetSelection( aDelSel );
618 pView->DeleteSelected();
619 }
620 else
621 pEditEngine->QuickDelete( aDelSel );
622 }
623
611 }
612
613 if ( aDelSel.HasRange() )
614 {
615 if ( pView )
616 {
617 pView->SetSelection( aDelSel );
618 pView->DeleteSelected();
619 }
620 else
621 pEditEngine->QuickDelete( aDelSel );
622 }
623
624 const SfxInt16Item& rLevel = (const SfxInt16Item&) pEditEngine->GetParaAttrib( sal::static_int_cast< sal_uInt16 >(nPara), EE_PARA_OUTLLEVEL );
624 const SfxInt16Item& rLevel = (const SfxInt16Item&) pEditEngine->GetParaAttrib( nPara, EE_PARA_OUTLLEVEL );
625 sal_Int16 nOutlLevel = rLevel.GetValue();
626
627 ImplCheckDepth( nOutlLevel );
625 sal_Int16 nOutlLevel = rLevel.GetValue();
626
627 ImplCheckDepth( nOutlLevel );
628 ImplInitDepth( sal::static_int_cast< sal_uInt16 >(nPara), nOutlLevel, sal_False );
628 ImplInitDepth( nPara, nOutlLevel, sal_False );
629
630 return bConverted;
631}
632
633void Outliner::SetText( const OutlinerParaObject& rPObj )
634{
635 DBG_CHKTHIS(Outliner,0);
636

--- 10 unchanged lines hidden (view full) ---

647 if( rPObj.Count() != pEditEngine->GetParagraphCount() )
648 {
649 int nop=0;nop++;
650 }
651
652 bFirstParaIsEmpty = sal_False;
653
654 pParaList->Clear( sal_True );
629
630 return bConverted;
631}
632
633void Outliner::SetText( const OutlinerParaObject& rPObj )
634{
635 DBG_CHKTHIS(Outliner,0);
636

--- 10 unchanged lines hidden (view full) ---

647 if( rPObj.Count() != pEditEngine->GetParagraphCount() )
648 {
649 int nop=0;nop++;
650 }
651
652 bFirstParaIsEmpty = sal_False;
653
654 pParaList->Clear( sal_True );
655 for( sal_uInt16 nCurPara = 0; nCurPara < rPObj.Count(); nCurPara++ )
655 for( sal_uInt32 nCurPara = 0; nCurPara < rPObj.Count(); nCurPara++ )
656 {
657 Paragraph* pPara = new Paragraph( rPObj.GetParagraphData(nCurPara));
658 ImplCheckDepth( pPara->nDepth );
659
660 pParaList->Insert( pPara, LIST_APPEND );
661 ImplCheckNumBulletItem( nCurPara );
662 }
663

--- 104 unchanged lines hidden (view full) ---

768}
769
770void Outliner::SetStyleSheet( sal_uLong nPara, SfxStyleSheet* pStyle )
771{
772 DBG_CHKTHIS(Outliner,0);
773 Paragraph* pPara = pParaList->GetParagraph( nPara );
774 if (pPara)
775 {
656 {
657 Paragraph* pPara = new Paragraph( rPObj.GetParagraphData(nCurPara));
658 ImplCheckDepth( pPara->nDepth );
659
660 pParaList->Insert( pPara, LIST_APPEND );
661 ImplCheckNumBulletItem( nCurPara );
662 }
663

--- 104 unchanged lines hidden (view full) ---

768}
769
770void Outliner::SetStyleSheet( sal_uLong nPara, SfxStyleSheet* pStyle )
771{
772 DBG_CHKTHIS(Outliner,0);
773 Paragraph* pPara = pParaList->GetParagraph( nPara );
774 if (pPara)
775 {
776 pEditEngine->SetStyleSheet( (sal_uInt16)nPara, pStyle );
776 pEditEngine->SetStyleSheet( nPara, pStyle );
777 pPara->nFlags |= PARAFLAG_SETBULLETTEXT;
777 pPara->nFlags |= PARAFLAG_SETBULLETTEXT;
778 ImplCheckNumBulletItem( (sal_uInt16) nPara );
778 ImplCheckNumBulletItem( nPara );
779 }
780}
781
782void Outliner::SetVisible( Paragraph* pPara, sal_Bool bVisible )
783{
784 DBG_CHKTHIS(Outliner,0);
785 DBG_ASSERT( pPara, "SetVisible: pPara = NULL" );
786
787 if (pPara)
788 {
789 pPara->bVisible = bVisible;
790 sal_uLong nPara = pParaList->GetAbsPos( pPara );
779 }
780}
781
782void Outliner::SetVisible( Paragraph* pPara, sal_Bool bVisible )
783{
784 DBG_CHKTHIS(Outliner,0);
785 DBG_ASSERT( pPara, "SetVisible: pPara = NULL" );
786
787 if (pPara)
788 {
789 pPara->bVisible = bVisible;
790 sal_uLong nPara = pParaList->GetAbsPos( pPara );
791 pEditEngine->ShowParagraph( (sal_uInt16)nPara, bVisible );
791 pEditEngine->ShowParagraph( nPara, bVisible );
792 }
793}
794
795void Outliner::ImplCheckNumBulletItem( sal_uInt32 nPara )
796{
797 Paragraph* pPara = pParaList->GetParagraph( nPara );
798 if (pPara)
799 pPara->aBulSize.Width() = -1;

--- 90 unchanged lines hidden (view full) ---

890 {
891 OLUndoExpand* pUndo = 0;
892 sal_Bool bUndo = IsUndoEnabled() && !IsInUndo();
893 if( bUndo )
894 {
895 UndoActionStart( OLUNDO_EXPAND );
896 pUndo = new OLUndoExpand( this, OLUNDO_EXPAND );
897 pUndo->pParas = 0;
792 }
793}
794
795void Outliner::ImplCheckNumBulletItem( sal_uInt32 nPara )
796{
797 Paragraph* pPara = pParaList->GetParagraph( nPara );
798 if (pPara)
799 pPara->aBulSize.Width() = -1;

--- 90 unchanged lines hidden (view full) ---

890 {
891 OLUndoExpand* pUndo = 0;
892 sal_Bool bUndo = IsUndoEnabled() && !IsInUndo();
893 if( bUndo )
894 {
895 UndoActionStart( OLUNDO_EXPAND );
896 pUndo = new OLUndoExpand( this, OLUNDO_EXPAND );
897 pUndo->pParas = 0;
898 pUndo->nCount = (sal_uInt16)pParaList->GetAbsPos( pPara );
898 pUndo->nCount = pParaList->GetAbsPos( pPara );
899 }
900 pHdlParagraph = pPara;
901 bIsExpanding = sal_True;
902 pParaList->Expand( pPara );
903 ExpandHdl();
904 InvalidateBullet( pPara, pParaList->GetAbsPos(pPara) );
905 if( bUndo )
906 {

--- 16 unchanged lines hidden (view full) ---

923
924 if( !IsInUndo() && IsUndoEnabled() )
925 bUndo = sal_True;
926 if( bUndo )
927 {
928 UndoActionStart( OLUNDO_COLLAPSE );
929 pUndo = new OLUndoExpand( this, OLUNDO_COLLAPSE );
930 pUndo->pParas = 0;
899 }
900 pHdlParagraph = pPara;
901 bIsExpanding = sal_True;
902 pParaList->Expand( pPara );
903 ExpandHdl();
904 InvalidateBullet( pPara, pParaList->GetAbsPos(pPara) );
905 if( bUndo )
906 {

--- 16 unchanged lines hidden (view full) ---

923
924 if( !IsInUndo() && IsUndoEnabled() )
925 bUndo = sal_True;
926 if( bUndo )
927 {
928 UndoActionStart( OLUNDO_COLLAPSE );
929 pUndo = new OLUndoExpand( this, OLUNDO_COLLAPSE );
930 pUndo->pParas = 0;
931 pUndo->nCount = (sal_uInt16)pParaList->GetAbsPos( pPara );
931 pUndo->nCount = pParaList->GetAbsPos( pPara );
932 }
933
934 pHdlParagraph = pPara;
935 bIsExpanding = sal_False;
936 pParaList->Collapse( pPara );
937 ExpandHdl();
938 InvalidateBullet( pPara, pParaList->GetAbsPos(pPara) );
939 if( bUndo )

--- 243 unchanged lines hidden (view full) ---

1183 }
1184 }
1185}
1186
1187void Outliner::InvalidateBullet( Paragraph* /*pPara*/, sal_uLong nPara )
1188{
1189 DBG_CHKTHIS(Outliner,0);
1190
932 }
933
934 pHdlParagraph = pPara;
935 bIsExpanding = sal_False;
936 pParaList->Collapse( pPara );
937 ExpandHdl();
938 InvalidateBullet( pPara, pParaList->GetAbsPos(pPara) );
939 if( bUndo )

--- 243 unchanged lines hidden (view full) ---

1183 }
1184 }
1185}
1186
1187void Outliner::InvalidateBullet( Paragraph* /*pPara*/, sal_uLong nPara )
1188{
1189 DBG_CHKTHIS(Outliner,0);
1190
1191 long nLineHeight = (long)pEditEngine->GetLineHeight((sal_uInt16)nPara );
1191 long nLineHeight = (long)pEditEngine->GetLineHeight(nPara );
1192 OutlinerView* pView = aViewList.First();
1193 while( pView )
1194 {
1192 OutlinerView* pView = aViewList.First();
1193 while( pView )
1194 {
1195 Point aPos( pView->pEditView->GetWindowPosTopLeft((sal_uInt16)nPara ) );
1195 Point aPos( pView->pEditView->GetWindowPosTopLeft( nPara ) );
1196 Rectangle aRect( pView->GetOutputArea() );
1197 aRect.Right() = aPos.X();
1198 aRect.Top() = aPos.Y();
1199 aRect.Bottom() = aPos.Y();
1200 aRect.Bottom() += nLineHeight;
1201
1202 pView->GetWindow()->Invalidate( aRect );
1203 pView = aViewList.Next();

--- 12 unchanged lines hidden (view full) ---

1216
1217 Clear();
1218
1219 ImplBlockInsertionCallbacks( sal_True );
1220 sal_uLong nRet = pEditEngine->Read( rInput, rBaseURL, (EETextFormat)eFormat, pHTTPHeaderAttrs );
1221
1222 bFirstParaIsEmpty = sal_False;
1223
1196 Rectangle aRect( pView->GetOutputArea() );
1197 aRect.Right() = aPos.X();
1198 aRect.Top() = aPos.Y();
1199 aRect.Bottom() = aPos.Y();
1200 aRect.Bottom() += nLineHeight;
1201
1202 pView->GetWindow()->Invalidate( aRect );
1203 pView = aViewList.Next();

--- 12 unchanged lines hidden (view full) ---

1216
1217 Clear();
1218
1219 ImplBlockInsertionCallbacks( sal_True );
1220 sal_uLong nRet = pEditEngine->Read( rInput, rBaseURL, (EETextFormat)eFormat, pHTTPHeaderAttrs );
1221
1222 bFirstParaIsEmpty = sal_False;
1223
1224 sal_uInt16 nParas = pEditEngine->GetParagraphCount();
1224 sal_uInt32 nParas = pEditEngine->GetParagraphCount();
1225 pParaList->Clear( sal_True );
1225 pParaList->Clear( sal_True );
1226 sal_uInt16 n;
1226 sal_uInt32 n;
1227 for ( n = 0; n < nParas; n++ )
1228 {
1229 Paragraph* pPara = new Paragraph( 0 );
1230 pParaList->Insert( pPara, LIST_APPEND );
1231
1232 if ( eFormat == EE_FORMAT_BIN )
1233 {
1234 const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( n );

--- 34 unchanged lines hidden (view full) ---

1269 pLastConverted = pPara;
1270 }
1271 else if ( pLastConverted )
1272 {
1273 // Normale Absaetze unter der Ueberschrift anordnen...
1274 pPara->SetDepth( pLastConverted->GetDepth() );
1275 }
1276
1227 for ( n = 0; n < nParas; n++ )
1228 {
1229 Paragraph* pPara = new Paragraph( 0 );
1230 pParaList->Insert( pPara, LIST_APPEND );
1231
1232 if ( eFormat == EE_FORMAT_BIN )
1233 {
1234 const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( n );

--- 34 unchanged lines hidden (view full) ---

1269 pLastConverted = pPara;
1270 }
1271 else if ( pLastConverted )
1272 {
1273 // Normale Absaetze unter der Ueberschrift anordnen...
1274 pPara->SetDepth( pLastConverted->GetDepth() );
1275 }
1276
1277 ImplInitDepth( (sal_uInt16)nPara, pPara->GetDepth(), sal_False );
1277 ImplInitDepth( nPara, pPara->GetDepth(), sal_False );
1278 }
1279 }
1280
1281 pEditEngine->SetUpdateMode( bUpdate );
1282}
1283
1284::svl::IUndoManager& Outliner::GetUndoManager()
1285{

--- 36 unchanged lines hidden (view full) ---

1322 // the existing paragraph has changed depth or flags
1323 if( (pPara->GetDepth() != nDepthChangedHdlPrevDepth) || (pPara->nFlags != mnDepthChangeHdlPrevFlags) )
1324 DepthChangedHdl();
1325 }
1326 }
1327 else // EditEngine-Modus
1328 {
1329 sal_Int16 nDepth = -1;
1278 }
1279 }
1280
1281 pEditEngine->SetUpdateMode( bUpdate );
1282}
1283
1284::svl::IUndoManager& Outliner::GetUndoManager()
1285{

--- 36 unchanged lines hidden (view full) ---

1322 // the existing paragraph has changed depth or flags
1323 if( (pPara->GetDepth() != nDepthChangedHdlPrevDepth) || (pPara->nFlags != mnDepthChangeHdlPrevFlags) )
1324 DepthChangedHdl();
1325 }
1326 }
1327 else // EditEngine-Modus
1328 {
1329 sal_Int16 nDepth = -1;
1330 const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( (sal_uInt16)nStartPara );
1330 const SfxItemSet& rAttrs = pEditEngine->GetParaAttribs( nStartPara );
1331 if ( rAttrs.GetItemState( EE_PARA_OUTLLEVEL ) == SFX_ITEM_ON )
1332 {
1333 const SfxInt16Item& rLevel = (const SfxInt16Item&) rAttrs.Get( EE_PARA_OUTLLEVEL );
1334 nDepth = rLevel.GetValue();
1335 }
1336 if ( nDepth != GetDepth( nStartPara ) )
1331 if ( rAttrs.GetItemState( EE_PARA_OUTLLEVEL ) == SFX_ITEM_ON )
1332 {
1333 const SfxInt16Item& rLevel = (const SfxInt16Item&) rAttrs.Get( EE_PARA_OUTLLEVEL );
1334 nDepth = rLevel.GetValue();
1335 }
1336 if ( nDepth != GetDepth( nStartPara ) )
1337 ImplInitDepth( (sal_uInt16)nStartPara, nDepth, sal_False );
1337 ImplInitDepth( nStartPara, nDepth, sal_False );
1338 }
1339
1340 nCount--;
1341 nStartPara++;
1342 pPara = pParaList->GetParagraph( nStartPara );
1343 }
1344
1345 pEditEngine->SetUpdateMode( bUpdate );

--- 254 unchanged lines hidden (view full) ---

1600 }
1601 }
1602}
1603
1604void Outliner::SetRefDevice( OutputDevice* pRefDev )
1605{
1606 DBG_CHKTHIS(Outliner,0);
1607 pEditEngine->SetRefDevice( pRefDev );
1338 }
1339
1340 nCount--;
1341 nStartPara++;
1342 pPara = pParaList->GetParagraph( nStartPara );
1343 }
1344
1345 pEditEngine->SetUpdateMode( bUpdate );

--- 254 unchanged lines hidden (view full) ---

1600 }
1601 }
1602}
1603
1604void Outliner::SetRefDevice( OutputDevice* pRefDev )
1605{
1606 DBG_CHKTHIS(Outliner,0);
1607 pEditEngine->SetRefDevice( pRefDev );
1608 for ( sal_uInt16 n = (sal_uInt16) pParaList->GetParagraphCount(); n; )
1608 for ( sal_uInt32 n = pParaList->GetParagraphCount(); n; )
1609 {
1610 Paragraph* pPara = pParaList->GetParagraph( --n );
1611 pPara->Invalidate();
1612 }
1613}
1614
1615void Outliner::ParaAttribsChanged( sal_uInt32 nPara )
1616{

--- 23 unchanged lines hidden (view full) ---

1640{
1641 DBG_CHKTHIS(Outliner,0);
1642
1643 // Die EditEngine ruft StyleSheetChanged auch fuer abgeleitete Styles.
1644 // MT: Hier wurde frueher alle Absaetze durch ein ImpRecalcParaAttribs
1645 // gejagt, die die besagte Vorlage haben, warum?
1646 // => Eigentlich kann sich nur die Bullet-Repraesentation aendern...
1647
1609 {
1610 Paragraph* pPara = pParaList->GetParagraph( --n );
1611 pPara->Invalidate();
1612 }
1613}
1614
1615void Outliner::ParaAttribsChanged( sal_uInt32 nPara )
1616{

--- 23 unchanged lines hidden (view full) ---

1640{
1641 DBG_CHKTHIS(Outliner,0);
1642
1643 // Die EditEngine ruft StyleSheetChanged auch fuer abgeleitete Styles.
1644 // MT: Hier wurde frueher alle Absaetze durch ein ImpRecalcParaAttribs
1645 // gejagt, die die besagte Vorlage haben, warum?
1646 // => Eigentlich kann sich nur die Bullet-Repraesentation aendern...
1647
1648 sal_uInt16 nParas = (sal_uInt16)pParaList->GetParagraphCount();
1649 for( sal_uInt16 nPara = 0; nPara < nParas; nPara++ )
1648 sal_uInt32 nParas = pParaList->GetParagraphCount();
1649 for( sal_uInt32 nPara = 0; nPara < nParas; nPara++ )
1650 {
1651 if ( pEditEngine->GetStyleSheet( nPara ) == pStyle )
1652 {
1653 ImplCheckNumBulletItem( nPara );
1654 ImplCalcBulletText( nPara, sal_False, sal_False );
1655 // #97333# EditEngine formats changed paragraphs before calling this method,
1656 // so they are not reformatted now and use wrong bullet indent
1657 pEditEngine->QuickMarkInvalid( ESelection( nPara, 0, nPara, 0 ) );

--- 142 unchanged lines hidden (view full) ---

1800 return aInfo;
1801}
1802
1803XubString Outliner::GetText( Paragraph* pParagraph, sal_uLong nCount ) const
1804{
1805 DBG_CHKTHIS(Outliner,0);
1806
1807 XubString aText;
1650 {
1651 if ( pEditEngine->GetStyleSheet( nPara ) == pStyle )
1652 {
1653 ImplCheckNumBulletItem( nPara );
1654 ImplCalcBulletText( nPara, sal_False, sal_False );
1655 // #97333# EditEngine formats changed paragraphs before calling this method,
1656 // so they are not reformatted now and use wrong bullet indent
1657 pEditEngine->QuickMarkInvalid( ESelection( nPara, 0, nPara, 0 ) );

--- 142 unchanged lines hidden (view full) ---

1800 return aInfo;
1801}
1802
1803XubString Outliner::GetText( Paragraph* pParagraph, sal_uLong nCount ) const
1804{
1805 DBG_CHKTHIS(Outliner,0);
1806
1807 XubString aText;
1808 sal_uInt16 nStartPara = (sal_uInt16) pParaList->GetAbsPos( pParagraph );
1809 for ( sal_uInt16 n = 0; n < nCount; n++ )
1808 sal_uInt32 nStartPara = pParaList->GetAbsPos( pParagraph );
1809 for ( sal_uInt32 n = 0; n < nCount; n++ )
1810 {
1811 aText += pEditEngine->GetText( nStartPara + n );
1812 if ( (n+1) < (sal_uInt16)nCount )
1813 aText += '\n';
1814 }
1815 return aText;
1816}
1817
1818void Outliner::Remove( Paragraph* pPara, sal_uLong nParaCount )
1819{
1820 DBG_CHKTHIS(Outliner,0);
1821
1822 sal_uLong nPos = pParaList->GetAbsPos( pPara );
1823 if( !nPos && ( nParaCount >= pParaList->GetParagraphCount() ) )
1824 {
1825 Clear();
1826 }
1827 else
1828 {
1810 {
1811 aText += pEditEngine->GetText( nStartPara + n );
1812 if ( (n+1) < (sal_uInt16)nCount )
1813 aText += '\n';
1814 }
1815 return aText;
1816}
1817
1818void Outliner::Remove( Paragraph* pPara, sal_uLong nParaCount )
1819{
1820 DBG_CHKTHIS(Outliner,0);
1821
1822 sal_uLong nPos = pParaList->GetAbsPos( pPara );
1823 if( !nPos && ( nParaCount >= pParaList->GetParagraphCount() ) )
1824 {
1825 Clear();
1826 }
1827 else
1828 {
1829 for( sal_uInt16 n = 0; n < (sal_uInt16)nParaCount; n++ )
1830 pEditEngine->RemoveParagraph( (sal_uInt16) nPos );
1829 for( sal_uInt32 n = 0; n < nParaCount; n++ )
1830 pEditEngine->RemoveParagraph( nPos );
1831 }
1832}
1833
1834void Outliner::StripPortions()
1835{
1836 DBG_CHKTHIS(Outliner,0);
1837 bStrippingPortions = sal_True;
1838 pEditEngine->StripPortions();

--- 45 unchanged lines hidden (view full) ---

1884 DBG_CHKTHIS(Outliner,0);
1885 return pEditEngine->GetParaAttribs( nPara );
1886}
1887
1888IMPL_LINK( Outliner, ParaVisibleStateChangedHdl, Paragraph*, pPara )
1889{
1890 DBG_CHKTHIS(Outliner,0);
1891
1831 }
1832}
1833
1834void Outliner::StripPortions()
1835{
1836 DBG_CHKTHIS(Outliner,0);
1837 bStrippingPortions = sal_True;
1838 pEditEngine->StripPortions();

--- 45 unchanged lines hidden (view full) ---

1884 DBG_CHKTHIS(Outliner,0);
1885 return pEditEngine->GetParaAttribs( nPara );
1886}
1887
1888IMPL_LINK( Outliner, ParaVisibleStateChangedHdl, Paragraph*, pPara )
1889{
1890 DBG_CHKTHIS(Outliner,0);
1891
1892 sal_uLong nPara = pParaList->GetAbsPos( pPara );
1893 pEditEngine->ShowParagraph( (sal_uInt16)nPara, pPara->IsVisible() );
1892 sal_uInt32 nPara = pParaList->GetAbsPos( pPara );
1893 pEditEngine->ShowParagraph( nPara, pPara->IsVisible() );
1894
1895 return 0;
1896}
1897
1898IMPL_LINK( Outliner, BeginMovingParagraphsHdl, MoveParagraphsInfo*, EMPTYARG )
1899{
1900 DBG_CHKTHIS(Outliner,0);
1901

--- 19 unchanged lines hidden (view full) ---

1921 return 0;
1922}
1923
1924IMPL_LINK( Outliner, EndMovingParagraphsHdl, MoveParagraphsInfo*, pInfos )
1925{
1926 DBG_CHKTHIS(Outliner,0);
1927
1928 pParaList->MoveParagraphs( pInfos->nStartPara, pInfos->nDestPara, pInfos->nEndPara - pInfos->nStartPara + 1 );
1894
1895 return 0;
1896}
1897
1898IMPL_LINK( Outliner, BeginMovingParagraphsHdl, MoveParagraphsInfo*, EMPTYARG )
1899{
1900 DBG_CHKTHIS(Outliner,0);
1901

--- 19 unchanged lines hidden (view full) ---

1921 return 0;
1922}
1923
1924IMPL_LINK( Outliner, EndMovingParagraphsHdl, MoveParagraphsInfo*, pInfos )
1925{
1926 DBG_CHKTHIS(Outliner,0);
1927
1928 pParaList->MoveParagraphs( pInfos->nStartPara, pInfos->nDestPara, pInfos->nEndPara - pInfos->nStartPara + 1 );
1929 sal_uInt16 nChangesStart = Min( pInfos->nStartPara, pInfos->nDestPara );
1930 sal_uInt16 nParas = (sal_uInt16)pParaList->GetParagraphCount();
1931 for ( sal_uInt16 n = nChangesStart; n < nParas; n++ )
1929 sal_uInt32 nChangesStart = Min( pInfos->nStartPara, pInfos->nDestPara );
1930 sal_uInt32 nParas = pParaList->GetParagraphCount();
1931 for ( sal_uInt32 n = nChangesStart; n < nParas; n++ )
1932 ImplCalcBulletText( n, sal_False, sal_False );
1933
1934 if( !IsInUndo() )
1935 aEndMovingHdl.Call( this );
1936
1937 return 0;
1938}
1939

--- 140 unchanged lines hidden (view full) ---

2080}
2081
2082void Outliner::SetFlatMode( sal_Bool bFlat )
2083{
2084 DBG_CHKTHIS(Outliner,0);
2085
2086 if( bFlat != pEditEngine->IsFlatMode() )
2087 {
1932 ImplCalcBulletText( n, sal_False, sal_False );
1933
1934 if( !IsInUndo() )
1935 aEndMovingHdl.Call( this );
1936
1937 return 0;
1938}
1939

--- 140 unchanged lines hidden (view full) ---

2080}
2081
2082void Outliner::SetFlatMode( sal_Bool bFlat )
2083{
2084 DBG_CHKTHIS(Outliner,0);
2085
2086 if( bFlat != pEditEngine->IsFlatMode() )
2087 {
2088 for ( sal_uInt16 nPara = (sal_uInt16)pParaList->GetParagraphCount(); nPara; )
2088 for ( sal_uInt32 nPara = pParaList->GetParagraphCount(); nPara; )
2089 pParaList->GetParagraph( --nPara )->aBulSize.Width() = -1;
2090
2091 pEditEngine->SetFlatMode( bFlat );
2092 }
2093}
2094
2095String Outliner::ImplGetBulletText( sal_uInt32 nPara )
2096{

--- 93 unchanged lines hidden (view full) ---

2190 maEndPasteOrDropHdl = rLink;
2191}
2192
2193void Outliner::SetParaFlag( Paragraph* pPara, sal_uInt16 nFlag )
2194{
2195 if( pPara && !pPara->HasFlag( nFlag ) )
2196 {
2197 if( IsUndoEnabled() && !IsInUndo() )
2089 pParaList->GetParagraph( --nPara )->aBulSize.Width() = -1;
2090
2091 pEditEngine->SetFlatMode( bFlat );
2092 }
2093}
2094
2095String Outliner::ImplGetBulletText( sal_uInt32 nPara )
2096{

--- 93 unchanged lines hidden (view full) ---

2190 maEndPasteOrDropHdl = rLink;
2191}
2192
2193void Outliner::SetParaFlag( Paragraph* pPara, sal_uInt16 nFlag )
2194{
2195 if( pPara && !pPara->HasFlag( nFlag ) )
2196 {
2197 if( IsUndoEnabled() && !IsInUndo() )
2198 InsertUndo( new OutlinerUndoChangeParaFlags( this, (sal_uInt16)GetAbsPos( pPara ), pPara->nFlags, pPara->nFlags|nFlag ) );
2198 InsertUndo( new OutlinerUndoChangeParaFlags( this, GetAbsPos( pPara ), pPara->nFlags, pPara->nFlags|nFlag ) );
2199
2200 pPara->SetFlag( nFlag );
2201 }
2202}
2203
2204void Outliner::RemoveParaFlag( Paragraph* pPara, sal_uInt16 nFlag )
2205{
2206 if( pPara && pPara->HasFlag( nFlag ) )
2207 {
2208 if( IsUndoEnabled() && !IsInUndo() )
2199
2200 pPara->SetFlag( nFlag );
2201 }
2202}
2203
2204void Outliner::RemoveParaFlag( Paragraph* pPara, sal_uInt16 nFlag )
2205{
2206 if( pPara && pPara->HasFlag( nFlag ) )
2207 {
2208 if( IsUndoEnabled() && !IsInUndo() )
2209 InsertUndo( new OutlinerUndoChangeParaFlags( this, (sal_uInt16)GetAbsPos( pPara ), pPara->nFlags, pPara->nFlags & ~nFlag ) );
2209 InsertUndo( new OutlinerUndoChangeParaFlags( this, GetAbsPos( pPara ), pPara->nFlags, pPara->nFlags & ~nFlag ) );
2210
2211 pPara->RemoveFlag( nFlag );
2212 }
2213}
2214
2215bool Outliner::HasParaFlag( const Paragraph* pPara, sal_uInt16 nFlag ) const
2216{
2217 return pPara && pPara->HasFlag( nFlag );

--- 37 unchanged lines hidden ---
2210
2211 pPara->RemoveFlag( nFlag );
2212 }
2213}
2214
2215bool Outliner::HasParaFlag( const Paragraph* pPara, sal_uInt16 nFlag ) const
2216{
2217 return pPara && pPara->HasFlag( nFlag );

--- 37 unchanged lines hidden ---