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 <[email protected]>
_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice