summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2019-08-26 19:44:14 +0900
committerTomaž Vajngerl <quikee@gmail.com>2019-08-26 23:20:18 +0200
commit19d88b15ec52a0560b96c5e71b5a328952ba7f28 (patch)
tree64a57cd62da29d93737273b1cd9d43f9c078ce0a
parente53c81a54d2cc2a0f05151ab9be8fce29c0b843d (diff)
lok: change table border position param. from new pos. to offset
To implement table border position changing for Impress requires that instead of parameter with new absolute position, we use offset from the previous position. It's easy to change the code for Writer to do this instead of Impress so this commit does this. Change-Id: I2d3ebe5ba0dc30fb8b4a58cc9ca820cc8330204b Reviewed-on: https://gerrit.libreoffice.org/78121 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
-rw-r--r--include/sfx2/sfxsids.hrc2
-rw-r--r--include/svx/svxids.hrc3
-rw-r--r--svx/sdi/svx.sdi2
-rw-r--r--sw/source/uibase/uiview/viewtab.cxx42
4 files changed, 25 insertions, 24 deletions
diff --git a/include/sfx2/sfxsids.hrc b/include/sfx2/sfxsids.hrc
index b535f26e7489..1dcc40fc8ee4 100644
--- a/include/sfx2/sfxsids.hrc
+++ b/include/sfx2/sfxsids.hrc
@@ -567,7 +567,7 @@ class SvxSearchItem;
#define SID_RULER_MARGIN2 (SID_SVX_START + 1064)
#define SID_TABLE_BORDER_TYPE (SID_SVX_START + 1065)
#define SID_TABLE_BORDER_INDEX (SID_SVX_START + 1066)
-#define SID_TABLE_BORDER_NEW_POSITION (SID_SVX_START + 1067)
+#define SID_TABLE_BORDER_OFFSET (SID_SVX_START + 1067)
#define FID_SVX_START (SID_LIB_START + 500)
#define FID_SEARCH_NOW (FID_SVX_START + 2)
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index e4851b4f2fb5..cd7a1698b987 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -241,12 +241,13 @@ class SvxSetItem;
#define SID_ATTR_TRANSFORM_ROT_Y TypedWhichId<SfxInt32Item>( SID_SVX_START + 94 )
#define SID_ATTR_TRANSFORM_ANGLE TypedWhichId<SfxInt32Item>( SID_SVX_START + 95 )
#define SID_ATTR_TRANSFORM_DELTA_ANGLE TypedWhichId<SfxInt32Item>( SID_SVX_START + 96 )
-#define SID_TABLE_CHANGE_CURRENT_BORDER_POSITION ( SID_SVX_START + 100 )
+// CAUTION! Range <96..100> used by SFX2 (!)
#define SID_SIZE_ALL ( SID_SVX_START + 101 )
#define SID_DRAW_LINE ( SID_SVX_START + 102 )
#define SID_DRAW_XLINE ( SID_SVX_START + 103 )
#define SID_DRAW_RECT ( SID_SVX_START + 104 )
#define SID_DRAW_RECT_ROUND ( SID_SVX_START + 105 )
+#define SID_TABLE_CHANGE_CURRENT_BORDER_POSITION ( SID_SVX_START + 106 )
#define SID_DRAW_ELLIPSE ( SID_SVX_START + 110 )
#define SID_DRAW_PIE ( SID_SVX_START + 112 )
#define SID_DRAW_ARC ( SID_SVX_START + 114 )
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 48810a0f2002..8e977c82173c 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -7209,7 +7209,7 @@ SfxVoidItem RulerChangeState SID_RULER_CHANGE_STATE
SfxVoidItem TableChangeCurrentBorderPosition SID_TABLE_CHANGE_CURRENT_BORDER_POSITION
(SfxStringItem BorderType SID_TABLE_BORDER_TYPE,
SfxUInt16Item Index SID_TABLE_BORDER_INDEX,
- SfxInt32Item NewPosition SID_TABLE_BORDER_NEW_POSITION)
+ SfxInt32Item Offset SID_TABLE_BORDER_OFFSET)
[
AutoUpdate = FALSE,
FastCall = TRUE,
diff --git a/sw/source/uibase/uiview/viewtab.cxx b/sw/source/uibase/uiview/viewtab.cxx
index 5a13260040d3..378070794a53 100644
--- a/sw/source/uibase/uiview/viewtab.cxx
+++ b/sw/source/uibase/uiview/viewtab.cxx
@@ -1015,16 +1015,16 @@ void SwView::ExecTabWin( SfxRequest const & rReq )
{
const SfxPoolItem *pBorderType;
const SfxPoolItem *pIndex;
- const SfxPoolItem *pNewPosition;
+ const SfxPoolItem *pOffset;
constexpr long constDistanceOffset = 40;
if (pReqArgs->GetItemState(SID_TABLE_BORDER_TYPE, true, &pBorderType) == SfxItemState::SET
&& pReqArgs->GetItemState(SID_TABLE_BORDER_INDEX, true, &pIndex) == SfxItemState::SET
- && pReqArgs->GetItemState(SID_TABLE_BORDER_NEW_POSITION, true, &pNewPosition) == SfxItemState::SET)
+ && pReqArgs->GetItemState(SID_TABLE_BORDER_OFFSET, true, &pOffset) == SfxItemState::SET)
{
const OUString sType = static_cast<const SfxStringItem*>(pBorderType)->GetValue();
const sal_uInt16 nIndex = static_cast<const SfxUInt16Item*>(pIndex)->GetValue();
- const sal_Int32 nNewPosition = static_cast<const SfxInt32Item*>(pNewPosition)->GetValue();
+ const sal_Int32 nOffset = static_cast<const SfxInt32Item*>(pOffset)->GetValue();
if (sType.startsWith("column"))
{
@@ -1034,23 +1034,23 @@ void SwView::ExecTabWin( SfxRequest const & rReq )
if (sType == "column-left")
{
auto & rEntry = aTabCols.GetEntry(0);
- long nPosition = std::min(long(nNewPosition), rEntry.nPos - constDistanceOffset);
+ long nNewPosition = aTabCols.GetLeft() + long(nOffset);
+ long nPosition = std::min(nNewPosition, rEntry.nPos - constDistanceOffset);
aTabCols.SetLeft(nPosition);
}
else if (sType == "column-right")
{
auto & rEntry = aTabCols.GetEntry(aTabCols.Count() - 1);
- long nPosition = std::max(long(nNewPosition), rEntry.nPos + constDistanceOffset);
+ long nNewPosition = aTabCols.GetRight() + long(nOffset);
+ long nPosition = std::max(nNewPosition, rEntry.nPos + constDistanceOffset);
aTabCols.SetRight(nPosition);
}
- else if (sType == "column-middle")
+ else if (sType == "column-middle" && nIndex < aTabCols.Count())
{
- if (nIndex < aTabCols.Count())
- {
- auto & rEntry = aTabCols.GetEntry(nIndex);
- long nPosition = std::clamp(long(nNewPosition), rEntry.nMin, rEntry.nMax - constDistanceOffset);
- rEntry.nPos = nPosition;
- }
+ auto & rEntry = aTabCols.GetEntry(nIndex);
+ long nNewPosition = rEntry.nPos + long(nOffset);
+ long nPosition = std::clamp(nNewPosition, rEntry.nMin, rEntry.nMax - constDistanceOffset);
+ rEntry.nPos = nPosition;
}
rSh.SetTabCols(aTabCols, false);
@@ -1063,23 +1063,23 @@ void SwView::ExecTabWin( SfxRequest const & rReq )
if (sType == "row-left")
{
auto & rEntry = aTabRows.GetEntry(0);
- long nPosition = std::min(long(nNewPosition), rEntry.nPos - constDistanceOffset);
+ long nNewPosition = aTabRows.GetLeft() + long(nOffset);
+ long nPosition = std::min(nNewPosition, rEntry.nPos - constDistanceOffset);
aTabRows.SetLeft(nPosition);
}
else if (sType == "row-right")
{
auto & rEntry = aTabRows.GetEntry(aTabRows.Count() - 1);
- long nPosition = std::max(long(nNewPosition), rEntry.nPos + constDistanceOffset);
+ long nNewPosition = aTabRows.GetRight() + long(nOffset);
+ long nPosition = std::max(nNewPosition, rEntry.nPos + constDistanceOffset);
aTabRows.SetRight(nPosition);
}
- else if (sType == "row-middle")
+ else if (sType == "row-middle" && nIndex < aTabRows.Count())
{
- if (nIndex < aTabRows.Count())
- {
- auto & rEntry = aTabRows.GetEntry(nIndex);
- long nPosition = std::clamp(long(nNewPosition), rEntry.nMin, rEntry.nMax - constDistanceOffset);
- rEntry.nPos = nPosition;
- }
+ auto & rEntry = aTabRows.GetEntry(nIndex);
+ long nNewPosition = rEntry.nPos + long(nOffset);
+ long nPosition = std::clamp(nNewPosition, rEntry.nMin, rEntry.nMax - constDistanceOffset);
+ rEntry.nPos = nPosition;
}
rSh.SetTabRows(aTabRows, false);