include/svx/ruler.hxx | 2 ++ svx/source/dialog/svxruler.cxx | 14 ++++++++++++++ sw/inc/cmdid.h | 3 ++- sw/sdi/_textsh.sdi | 6 ++++++ sw/sdi/swriter.sdi | 17 +++++++++++++++++ sw/source/uibase/shells/textsh1.cxx | 11 +++++++++++ 6 files changed, 52 insertions(+), 1 deletion(-)
New commits: commit 6b56196094e063c3c30d1ec13b1d3f9d1927af9b Author: Tor Lillqvist <t...@collabora.com> AuthorDate: Tue Feb 4 15:38:46 2020 +0200 Commit: Tor Lillqvist <t...@iki.fi> CommitDate: Tue Apr 6 10:09:27 2021 +0300 tdf#128468: Add SvxRuler::MoveTabstop() and use it Change-Id: If223bde1ae5161da821530d36e50a971c62f6944 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87977 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Tor Lillqvist <t...@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94225 Tested-by: Tor Lillqvist <t...@collabora.com> diff --git a/include/svx/ruler.hxx b/include/svx/ruler.hxx index c0b587cdc583..7e116e6185d8 100644 --- a/include/svx/ruler.hxx +++ b/include/svx/ruler.hxx @@ -278,6 +278,8 @@ public: void SetTabsRelativeToIndent( bool bRel ); void SetValues(RulerChangeType type, tools::Long value); tools::Long GetPageWidth() const; + + void MoveTabstop(int nTabstop, int nAmount); }; #endif diff --git a/svx/source/dialog/svxruler.cxx b/svx/source/dialog/svxruler.cxx index 66457d3bca1e..c89b603abaad 100644 --- a/svx/source/dialog/svxruler.cxx +++ b/svx/source/dialog/svxruler.cxx @@ -1665,6 +1665,20 @@ void SvxRuler::UpdateParaContents_Impl( SetIndents(INDENT_COUNT, mpIndents.data() + INDENT_GAP); } +void SvxRuler::MoveTabstop(int nTabstop, int nAmount) +{ + SAL_INFO("svx", "MoveTabstop(" << nTabstop << "," << nAmount << ")"); + + if (nTabstop < 0 || nTabstop >= mxTabStopItem->Count()) + return; + + SvxTabStop aTabstop = mxTabStopItem->At(nTabstop); + mxTabStopItem->Remove(nTabstop); + aTabstop.GetTabPos() += nAmount; + mxTabStopItem->Insert(aTabstop); + pBindings->GetDispatcher()->ExecuteList(SID_ATTR_TABSTOP, SfxCallMode::RECORD, { mxTabStopItem.get() }); +} + void SvxRuler::DragBorders() { /* Dragging of Borders (Tables and other columns) */ diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx index f46567e66096..72068a2045c4 100644 --- a/sw/source/uibase/shells/textsh1.cxx +++ b/sw/source/uibase/shells/textsh1.cxx @@ -1578,8 +1578,9 @@ void SwTextShell::Execute(SfxRequest &rReq) const SfxInt32Item* pAmount = rReq.GetArg<SfxInt32Item>(FN_PARAM_2); if (!pIndex || !pAmount) break; - SAL_INFO("sw.ui", "MoveTabstop(" << pIndex->GetValue() << "," << pAmount->GetValue() << ")"); - // To be implemented + auto &rRuler = GetView().GetHRuler(); + rRuler.MoveTabstop(pIndex->GetValue(), pAmount->GetValue()); + rRuler.ForceUpdate(); } break; default: commit 5e8265667f2e271620010868532b676c0e82265f Author: Tor Lillqvist <t...@collabora.com> AuthorDate: Mon Feb 3 15:03:50 2020 +0200 Commit: Tor Lillqvist <t...@iki.fi> CommitDate: Tue Apr 6 10:06:24 2021 +0300 tdf#128468: Add new UNO command "MoveTabstop" Work in progress. Implementation still incomplete. The stuff I added in the .sdi files is mostly copy-paste without any deeper understanding. Change-Id: Iad36c20e963c9df19645a04ca4a0d9bf81f3839a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87873 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Tor Lillqvist <t...@collabora.com> (cherry picked from commit 00db5444b2126dbf48a7ef65e702dd4b10d4f941) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94223 Tested-by: Tor Lillqvist <t...@collabora.com> diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h index 49d6e607f943..27ac3ddd8f17 100644 --- a/sw/inc/cmdid.h +++ b/sw/inc/cmdid.h @@ -480,7 +480,8 @@ #define FN_FORMAT_APPLY_DEFAULT (FN_FORMAT2 + 157) #define FN_FORMAT_APPLY_TEXTBODY (FN_FORMAT2 + 158) #define FN_REMOVE_DIRECT_CHAR_FORMATS (FN_FORMAT2 + 159) -//free (160) + +#define FN_MOVE_TABSTOP (FN_FORMAT2 + 160) // Region: Extras #define FN_LINE_NUMBERING_DLG (FN_EXTRA + 2 ) /* */ diff --git a/sw/sdi/_textsh.sdi b/sw/sdi/_textsh.sdi index e0bcfff65360..25b14fe886f2 100644 --- a/sw/sdi/_textsh.sdi +++ b/sw/sdi/_textsh.sdi @@ -1554,6 +1554,12 @@ interface BaseText DisableFlags="SfxDisableFlags::SwOnProtectedCursor"; ] + FN_MOVE_TABSTOP + [ + ExecMethod = Execute ; + DisableFlags="SfxDisableFlags::SwOnProtectedCursor"; + ] + SID_TRANSLITERATE_SENTENCE_CASE [ ExecMethod = ExecTransliteration; diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi index 9a03663dc19d..f8445e8eba6d 100644 --- a/sw/sdi/swriter.sdi +++ b/sw/sdi/swriter.sdi @@ -8141,3 +8141,20 @@ SfxUInt32Item TableColumWidth SID_ATTR_TABLE_COLUMN_WIDTH ToolBoxConfig = FALSE, GroupId = SfxGroupId::Table; ] + +SfxVoidItem MoveTabstop FN_MOVE_TABSTOP +(SfxInt32Item Tabstop FN_PARAM_1, SfxInt32Item Amount FN_PARAM_2) +[ + AutoUpdate = FALSE, + FastCall = FALSE, + ReadOnlyDoc = TRUE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + + AccelConfig = TRUE, + MenuConfig = TRUE, + ToolBoxConfig = TRUE, + GroupId = SfxGroupId::Format; +] diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx index c5e7389be77c..f46567e66096 100644 --- a/sw/source/uibase/shells/textsh1.cxx +++ b/sw/source/uibase/shells/textsh1.cxx @@ -1572,6 +1572,16 @@ void SwTextShell::Execute(SfxRequest &rReq) rWrtSh.SetInsMode( bOldIns ); } break; + case FN_MOVE_TABSTOP: + { + const SfxInt32Item* pIndex = rReq.GetArg<SfxInt32Item>(FN_PARAM_1); + const SfxInt32Item* pAmount = rReq.GetArg<SfxInt32Item>(FN_PARAM_2); + if (!pIndex || !pAmount) + break; + SAL_INFO("sw.ui", "MoveTabstop(" << pIndex->GetValue() << "," << pAmount->GetValue() << ")"); + // To be implemented + } + break; default: OSL_ENSURE(false, "wrong dispatcher"); return; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits