[PATCH] related to fdo#63546.

navin patidar (via Code Review) gerrit at gerrit.libreoffice.org
Mon Apr 22 00:40:28 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/3549

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/49/3549/1

related to fdo#63546.

set appropriate alignment when wrt direction of selected cells is changed.

Change-Id: Ie98a46af97236ab4303d030f11bd167939dde32b
---
M sc/source/ui/view/formatsh.cxx
1 file changed, 41 insertions(+), 13 deletions(-)



diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx
index 3f2b26d..3f54bcb 100644
--- a/sc/source/ui/view/formatsh.cxx
+++ b/sc/source/ui/view/formatsh.cxx
@@ -2086,26 +2086,54 @@
 
             pTabViewShell->ApplyAttr( SvxFrameDirectionItem( eDirection, ATTR_WRITINGDIR ) );
 
-            const SfxItemSet& rAttrSet = pTabViewShell->GetSelectionPattern()->GetItemSet();
             const SfxPoolItem* pItem = NULL;
             const SvxHorJustifyItem* pHorJustify = NULL;
             SvxCellHorJustify eHorJustify = SVX_HOR_JUSTIFY_STANDARD;
-
-            if( rAttrSet.GetItemState(ATTR_HOR_JUSTIFY, sal_True, &pItem) == SFX_ITEM_SET )
+            ScRange aRange;
+            GetViewData()->GetMarkData().GetMarkArea(aRange);
+            ScMarkData  aMark = GetViewData()->GetMarkData();
+            ScDocument * pDoc = GetViewData()->GetDocument();
+            if (aMark.IsMultiMarked())
             {
-                pHorJustify = (const SvxHorJustifyItem*)pItem;
-                eHorJustify = SvxCellHorJustify( pHorJustify->GetValue() );
+                int i = 0, j = 0;
+                for ( ; aRange.aStart.Col()+i <= aRange.aEnd.Col() ; i++ )
+                {
+                    for ( ; aRange.aStart.Row()+j <= aRange.aEnd.Row() ; j++ )
+                    {
+                        pItem = pDoc->GetAttr( aRange.aStart.Col()+i, aRange.aStart.Row()+j, aMark.GetFirstSelected(), ATTR_HOR_JUSTIFY );
+                        pHorJustify = (const SvxHorJustifyItem*)pItem;
+                        eHorJustify = SvxCellHorJustify( pHorJustify->GetValue() );
+
+                        if( eHorJustify != SVX_HOR_JUSTIFY_CENTER && eHorJustify != SVX_HOR_JUSTIFY_BLOCK )
+                        {
+                            if( nSlot == SID_ATTR_PARA_LEFT_TO_RIGHT )
+                                pDoc->ApplyAttr( aRange.aStart.Col()+i, aRange.aStart.Row()+j, aMark.GetFirstSelected(), SvxHorJustifyItem( SVX_HOR_JUSTIFY_LEFT, ATTR_HOR_JUSTIFY ) );
+                            else
+                                pDoc->ApplyAttr( aRange.aStart.Col()+i, aRange.aStart.Row()+j, aMark.GetFirstSelected(), SvxHorJustifyItem( SVX_HOR_JUSTIFY_RIGHT, ATTR_HOR_JUSTIFY ) );
+                        }
+                    }
+                    j = 0;
+                }
             }
-
-            if( eHorJustify != SVX_HOR_JUSTIFY_CENTER && eHorJustify != SVX_HOR_JUSTIFY_BLOCK )
+            else
             {
-                if( nSlot == SID_ATTR_PARA_LEFT_TO_RIGHT )
-                     rReq.AppendItem( SvxHorJustifyItem( SVX_HOR_JUSTIFY_LEFT, SID_H_ALIGNCELL ) );
-                else
-                     rReq.AppendItem( SvxHorJustifyItem( SVX_HOR_JUSTIFY_RIGHT, SID_H_ALIGNCELL ) );
+                const SfxItemSet& rAttrSet = pTabViewShell->GetSelectionPattern()->GetItemSet();
+                if( rAttrSet.GetItemState(ATTR_HOR_JUSTIFY, sal_True, &pItem) == SFX_ITEM_SET )
+                {
+                    pHorJustify = (const SvxHorJustifyItem*)pItem;
+                    eHorJustify = SvxCellHorJustify( pHorJustify->GetValue() );
+                }
 
-                rReq.SetSlot( SID_H_ALIGNCELL );
-                ExecuteSlot( rReq, GetInterface() );
+                if( eHorJustify != SVX_HOR_JUSTIFY_CENTER && eHorJustify != SVX_HOR_JUSTIFY_BLOCK )
+                {
+                    if( nSlot == SID_ATTR_PARA_LEFT_TO_RIGHT )
+                         rReq.AppendItem( SvxHorJustifyItem( SVX_HOR_JUSTIFY_LEFT, SID_H_ALIGNCELL ) );
+                    else
+                         rReq.AppendItem( SvxHorJustifyItem( SVX_HOR_JUSTIFY_RIGHT, SID_H_ALIGNCELL ) );
+
+                    rReq.SetSlot( SID_H_ALIGNCELL );
+                    ExecuteSlot( rReq, GetInterface() );
+                }
             }
 
             pDocSh->GetUndoManager()->LeaveListAction();

-- 
To view, visit https://gerrit.libreoffice.org/3549
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie98a46af97236ab4303d030f11bd167939dde32b
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: navin patidar <patidar at kacst.edu.sa>



More information about the LibreOffice mailing list