include/svtools/ruler.hxx | 4 ++-- include/svx/strings.hrc | 11 ++++++++--- svtools/source/control/ruler.cxx | 9 +++++++++ svx/source/dialog/svxruler.cxx | 10 ++++++++++ 4 files changed, 29 insertions(+), 5 deletions(-)
New commits: commit d3568ad1fad269e326e922ab61f439fe51863bbf Author: Andreas Heinisch <andreas.heini...@yahoo.de> AuthorDate: Wed Aug 13 10:36:43 2025 +0200 Commit: Andreas Heinisch <andreas.heini...@yahoo.de> CommitDate: Thu Aug 21 12:14:43 2025 +0200 tdf#84949 - Show tooltip for left, center, right, and decimal tab Change-Id: Idf0ac686b5918a8941d20dbcde23162879acc1d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189496 Reviewed-by: Andreas Heinisch <andreas.heini...@yahoo.de> Tested-by: Jenkins diff --git a/include/svtools/ruler.hxx b/include/svtools/ruler.hxx index 046e02241a28..8f54fdc7713e 100644 --- a/include/svtools/ruler.hxx +++ b/include/svtools/ruler.hxx @@ -460,10 +460,10 @@ constexpr WinBits WB_EXTRAFIELD = 0x00004000; constexpr WinBits WB_RIGHT_ALIGNED = 0x00008000; constexpr auto WB_STDRULER = WB_HORZ; - +// tdf#84949 - TabAlign is used to identify the current tabulator alignment enum class RulerType { DontKnow, Outside, Margin1, Margin2, - Border, Indent, Tab }; + Border, Indent, Tab, TabAlign }; enum class RulerExtra { DontKnow, NullOffset, Tab }; diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc index 0aa190537145..011092678295 100644 --- a/include/svx/strings.hrc +++ b/include/svx/strings.hrc @@ -1314,11 +1314,16 @@ #define RID_SVXSTR_QUERY_EXIT_RECOVERY NC_("RID_SVXSTR_QUERY_EXIT_RECOVERY", "Are you sure you want to discard the %PRODUCTNAME document recovery data?") -#define RID_SVXSTR_RULER_TAB_LEFT NC_("RID_SVXSTR_RULER_TAB_LEFT", "Left") -#define RID_SVXSTR_RULER_TAB_RIGHT NC_("RID_SVXSTR_RULER_TAB_RIGHT", "Right") -#define RID_SVXSTR_RULER_TAB_CENTER NC_("RID_SVXSTR_RULER_TAB_CENTER", "Center") +#define RID_SVXSTR_RULER_TAB_LEFT NC_("RID_SVXSTR_RULER_TAB_LEFT", "Left/Top") +#define RID_SVXSTR_RULER_TAB_RIGHT NC_("RID_SVXSTR_RULER_TAB_RIGHT", "Right/Bottom") +#define RID_SVXSTR_RULER_TAB_CENTER NC_("RID_SVXSTR_RULER_TAB_CENTER", "Centered") #define RID_SVXSTR_RULER_TAB_DECIMAL NC_("RID_SVXSTR_RULER_TAB_DECIMAL", "Decimal") +#define RID_SVXSTR_RULER_TAB_POS_LEFT NC_("RID_SVXSTR_RULER_TAB_POS_LEFT", "Tab Position: Left/Top") +#define RID_SVXSTR_RULER_TAB_POS_RIGHT NC_("RID_SVXSTR_RULER_TAB_POS_RIGHT", "Tab Position: Right/Bottom") +#define RID_SVXSTR_RULER_TAB_POS_CENTER NC_("RID_SVXSTR_RULER_TAB_POS_CENTER", "Tab Position: Centered") +#define RID_SVXSTR_RULER_TAB_POS_DECIMAL NC_("RID_SVXSTR_RULER_TAB_POS_DECIMAL", "Tab Position: Decimal") + #define RID_SVXSTR_INSERT_HELPTEXT NC_("RID_SVXSTR_INSERT_HELPTEXT", "Insert mode. Click to change to overwrite mode.") #define RID_SVXSTR_OVERWRITE_HELPTEXT NC_("RID_SVXSTR_OVERWRITE_HELPTEXT", "Overwrite mode. Click to change to insert mode.") // To be shown in the status bar when in overwrite mode, please try to make it not longer than the word 'Overwrite'. diff --git a/svtools/source/control/ruler.cxx b/svtools/source/control/ruler.cxx index ebd4b1908dc5..3b16fa111b66 100644 --- a/svtools/source/control/ruler.cxx +++ b/svtools/source/control/ruler.cxx @@ -1469,6 +1469,15 @@ bool Ruler::ImplDoHitTest( const Point& rPos, RulerSelection* pHitTest, else nXExtraOff = 0; + // tdf#84949 - check if the mouse is moved over the extra field + // to show a tooltip for left, center, right, and decimal tab + if (maExtraRect.Contains(Point(nX, nY))) + { + pHitTest->nPos = nX; + pHitTest->eType = RulerType::TabAlign; + return true; + } + // test if outside nX -= mnVirOff; if ( (nX < mpData->nRulVirOff - nXExtraOff) || diff --git a/svx/source/dialog/svxruler.cxx b/svx/source/dialog/svxruler.cxx index b1c6fc8c4fa0..0da1b7246eff 100644 --- a/svx/source/dialog/svxruler.cxx +++ b/svx/source/dialog/svxruler.cxx @@ -523,6 +523,10 @@ void SvxRuler::UpdateFrame() } } +const TranslateId RID_SVXSTR_RULER_TAB_POS[] + = { RID_SVXSTR_RULER_TAB_POS_LEFT, RID_SVXSTR_RULER_TAB_POS_RIGHT, + RID_SVXSTR_RULER_TAB_POS_CENTER, RID_SVXSTR_RULER_TAB_POS_DECIMAL }; + void SvxRuler::MouseMove( const MouseEvent& rMEvt ) { if( bActive ) @@ -629,6 +633,12 @@ void SvxRuler::MouseMove( const MouseEvent& rMEvt ) break; } + // tdf#84949 - show tooltip for left, center, right, and decimal tab + case RulerType::TabAlign: + { + SetQuickHelpText(SvxResId(RID_SVXSTR_RULER_TAB_POS[nDefTabType])); + break; + } default: { SetQuickHelpText(u""_ustr);