From 072fc9f0fe2677eda2d733861e55384ae70ef4d5 Mon Sep 17 00:00:00 2001 From: carlopav Date: Thu, 19 Aug 2021 10:24:00 +0200 Subject: [PATCH] Gui: Improved tooltips Improved tooltips showing: - the command name as an

title, - the tooltip text, - the (What's this). the title is build from translated getMenuText() and can contain a "&" character. This commit search and remove the "&" characters. It should be better not to use the "&" character in the command name, but if it is necessary it has to be done with "&&". ref forum discussion: https://forum.freecadweb.org/viewtopic.php?f=34&t=58747 . --- src/Gui/Command.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/Gui/Command.cpp b/src/Gui/Command.cpp index 1647192f68..830ee3a236 100644 --- a/src/Gui/Command.cpp +++ b/src/Gui/Command.cpp @@ -856,8 +856,22 @@ void Command::applyCommandData(const char* context, Action* action) { action->setText(QCoreApplication::translate( context, getMenuText())); - action->setToolTip(QCoreApplication::translate( - context, getToolTipText())); + // build the tooltip + QString tooltip; + tooltip.append(QString::fromLatin1("

")); + tooltip.append(QCoreApplication::translate( + context, getMenuText())); + tooltip.append(QString::fromLatin1("

")); + QRegularExpression re(QString::fromLatin1("([^&])&([^&])")); + tooltip.replace(re, QString::fromLatin1("\\1\\2")); + tooltip.replace(QString::fromLatin1("&&"), QString::fromLatin1("&")); + tooltip.append(QCoreApplication::translate( + context, getToolTipText())); + tooltip.append(QString::fromLatin1("
(")); + tooltip.append(QCoreApplication::translate( + context, getWhatsThis())); + tooltip.append(QString::fromLatin1(") ")); + action->setToolTip(tooltip); action->setWhatsThis(QCoreApplication::translate( context, getWhatsThis())); if (sStatusTip)