View | Details | Raw Unified | Return to issue 101269
Collapse All | Expand All

(-)sd/source/ui/view/drviews3.cxx (-3 / +79 lines)
Lines 40-45 Link Here
40
#include <svx/protitem.hxx>
40
#include <svx/protitem.hxx>
41
#include <svx/frmdiritem.hxx>
41
#include <svx/frmdiritem.hxx>
42
#include <svx/ruler.hxx>
42
#include <svx/ruler.hxx>
43
#include <svx/numitem.hxx>
43
#ifndef _SVX_RULERITEM_HXX
44
#ifndef _SVX_RULERITEM_HXX
44
#include <svx/rulritem.hxx>
45
#include <svx/rulritem.hxx>
45
#endif
46
#endif
Lines 692-705 void DrawViewShell::ExecRuler(SfxRequest& rReq) Link Here
692
				const SvxLRSpaceItem& rItem = (const SvxLRSpaceItem&)
693
				const SvxLRSpaceItem& rItem = (const SvxLRSpaceItem&)
693
							pArgs->Get( nId );
694
							pArgs->Get( nId );
694
695
695
                SfxItemSet aEditAttr( GetPool(), EE_PARA_LRSPACE, EE_PARA_LRSPACE );
696
                static const USHORT aWhichTable[]=
697
                {
698
                    EE_PARA_OUTLLEVEL, EE_PARA_OUTLLEVEL,
699
                    EE_PARA_LRSPACE, EE_PARA_LRSPACE,
700
                    EE_PARA_NUMBULLET, EE_PARA_NUMBULLET,
701
                    0, 0
702
                };
703
704
				SfxItemSet aEditAttr( GetDoc()->GetPool(),
705
                                      aWhichTable );
706
				mpDrawView->GetAttributes( aEditAttr );
696
707
697
                nId = EE_PARA_LRSPACE;
708
                nId = EE_PARA_LRSPACE;
698
				SvxLRSpaceItem aLRSpaceItem( rItem.GetLeft(),
709
				SvxLRSpaceItem aLRSpaceItem( rItem.GetLeft(),
699
						rItem.GetRight(), rItem.GetTxtLeft(),
710
						rItem.GetRight(), rItem.GetTxtLeft(),
700
						rItem.GetTxtFirstLineOfst(), nId );
711
						rItem.GetTxtFirstLineOfst(), nId );
701
				aEditAttr.Put( aLRSpaceItem );
712
702
				mpDrawView->SetAttributes( aEditAttr );
713
                const INT16 nOutlineLevel = ((const SfxInt16Item&)aEditAttr.Get( EE_PARA_OUTLLEVEL )).GetValue();
714
                const SvxLRSpaceItem& rOrigLRSpaceItem = (const SvxLRSpaceItem&) aEditAttr.Get( EE_PARA_LRSPACE );
715
                const SvxNumBulletItem& rNumBulletItem = (const SvxNumBulletItem&) aEditAttr.Get( EE_PARA_NUMBULLET );
716
                if( nOutlineLevel != -1 && 
717
                    rNumBulletItem.GetNumRule() &&
718
                    rNumBulletItem.GetNumRule()->GetLevelCount() > nOutlineLevel )
719
                {
720
                    const SvxNumberFormat& rFormat = rNumBulletItem.GetNumRule()->GetLevel(nOutlineLevel);
721
                    SvxNumberFormat aFormat(rFormat);
722
723
                    // left margin always controls LRSpace item
724
                    aLRSpaceItem.SetTxtLeft(rItem.GetTxtLeft() - aFormat.GetAbsLSpace());
725
726
                    // negative first line indent goes to the number
727
                    // format, positive to the lrSpace item
728
                    if( rItem.GetTxtFirstLineOfst() < 0 )
729
                    {
730
                        aFormat.SetFirstLineOffset(
731
                            rItem.GetTxtFirstLineOfst() 
732
                            - rOrigLRSpaceItem.GetTxtFirstLineOfst() 
733
                            + aFormat.GetCharTextDistance());
734
                        aLRSpaceItem.SetTxtFirstLineOfst(0);
735
                    }
736
                    else
737
                    {
738
                        aFormat.SetFirstLineOffset(0);
739
                        aLRSpaceItem.SetTxtFirstLineOfst(
740
                            rItem.GetTxtFirstLineOfst()
741
                            - aFormat.GetFirstLineOffset()
742
                            + aFormat.GetCharTextDistance());
743
                    }
744
745
                    if( rFormat != aFormat )
746
                    {
747
                        // put all items
748
                        SvxNumBulletItem aNumBulletItem(rNumBulletItem);
749
                        aNumBulletItem.GetNumRule()->SetLevel(nOutlineLevel,aFormat);
750
                        aEditAttr.Put( aNumBulletItem );
751
                        aEditAttr.Put( aLRSpaceItem );
752
                        mpDrawView->SetAttributes( aEditAttr );
753
754
                        // #92557# Invalidate is missing here
755
                        Invalidate(SID_ATTR_PARA_LRSPACE);
756
                        break;
757
                    }
758
                }
759
760
                // only put lrSpace item
761
                SfxItemSet aEditAttrReduced( GetDoc()->GetPool(),
762
                                             EE_PARA_LRSPACE, EE_PARA_LRSPACE );
763
                aEditAttrReduced.Put( aLRSpaceItem );
764
                mpDrawView->SetAttributes( aEditAttrReduced );
703
765
704
				// #92557# Invalidate is missing here
766
				// #92557# Invalidate is missing here
705
				Invalidate(SID_ATTR_PARA_LRSPACE);
767
				Invalidate(SID_ATTR_PARA_LRSPACE);
Lines 785-790 void DrawViewShell::GetRulerState(SfxItemSet& rSet) Link Here
785
					SvxLRSpaceItem aLRSpaceItem( rLRSpaceItem.GetLeft(),
847
					SvxLRSpaceItem aLRSpaceItem( rLRSpaceItem.GetLeft(),
786
							rLRSpaceItem.GetRight(), rLRSpaceItem.GetTxtLeft(),
848
							rLRSpaceItem.GetRight(), rLRSpaceItem.GetTxtLeft(),
787
							rLRSpaceItem.GetTxtFirstLineOfst(), nId );
849
							rLRSpaceItem.GetTxtFirstLineOfst(), nId );
850
851
                    const INT16 nOutlineLevel = ((const SfxInt16Item&)aEditAttr.Get( EE_PARA_OUTLLEVEL )).GetValue();
852
                    const SvxNumBulletItem& rNumBulletItem = (const SvxNumBulletItem&) aEditAttr.Get( EE_PARA_NUMBULLET );
853
                    if( nOutlineLevel != -1 && 
854
                        rNumBulletItem.GetNumRule() &&
855
                        rNumBulletItem.GetNumRule()->GetLevelCount() > nOutlineLevel )
856
                    {
857
                        const SvxNumberFormat& rFormat = rNumBulletItem.GetNumRule()->GetLevel(nOutlineLevel);
858
                        aLRSpaceItem.SetTxtLeft(rFormat.GetAbsLSpace() + rLRSpaceItem.GetTxtLeft());
859
                        aLRSpaceItem.SetTxtFirstLineOfst(
860
                            rLRSpaceItem.GetTxtFirstLineOfst() + rFormat.GetFirstLineOffset() 
861
                            - rFormat.GetCharTextDistance());
862
                    }
863
788
					rSet.Put( aLRSpaceItem );
864
					rSet.Put( aLRSpaceItem );
789
865
790
					Point aPos( aPagePos + maMarkRect.TopLeft() );
866
					Point aPos( aPagePos + maMarkRect.TopLeft() );
(-)svx/source/outliner/outlvw.cxx (-1 / +3 lines)
Lines 530-536 void OutlinerView::SetAttribs( const SfxItemSet& rAttrs ) Link Here
530
	for( USHORT nPara= aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
530
	for( USHORT nPara= aSel.nStartPara; nPara <= aSel.nEndPara; nPara++ )
531
	{
531
	{
532
		pOwner->ImplCheckNumBulletItem( nPara );
532
		pOwner->ImplCheckNumBulletItem( nPara );
533
		pOwner->ImplCalcBulletText( nPara, FALSE, FALSE );
533
        // update following paras as well, numbering depends on
534
        // previous paras
535
		pOwner->ImplCalcBulletText( nPara, TRUE, FALSE );
534
536
535
		if( !pOwner->IsInUndo() && pOwner->IsUndoEnabled() )
537
		if( !pOwner->IsInUndo() && pOwner->IsUndoEnabled() )
536
			pOwner->InsertUndo( new OutlinerUndoCheckPara( pOwner, nPara ) );
538
			pOwner->InsertUndo( new OutlinerUndoCheckPara( pOwner, nPara ) );

Return to issue 101269