+ fixes #0001719: Show current shortcuts (S) in menus and hover text.

This commit is contained in:
wmayer
2014-08-31 14:28:33 +02:00
parent 80e80fef83
commit ce528d1c4a
13 changed files with 141 additions and 66 deletions

View File

@@ -198,11 +198,43 @@ void DlgCustomKeyboardImp::on_buttonAssign_clicked()
CommandManager & cCmdMgr = Application::Instance->commandManager();
Command* cmd = cCmdMgr.getCommandByName(name.constData());
if (cmd && cmd->getAction()) {
Action* action = cmd->getAction();
QKeySequence shortcut = editShortcut->text();
cmd->getAction()->setShortcut(shortcut);
action->setShortcut(shortcut);
accelLineEditShortcut->setText(editShortcut->text());
editShortcut->clear();
// update the tool tip
QString accel = shortcut.toString(QKeySequence::NativeText);
QString toolTip = QCoreApplication::translate(cmd->className(),
cmd->getToolTipText(), 0, QCoreApplication::UnicodeUTF8);
if (!accel.isEmpty()) {
if (!toolTip.isEmpty()) {
QString tip = QString::fromLatin1("%1 (%2)")
.arg(toolTip).arg(accel);
action->setToolTip(tip);
}
}
else {
action->setToolTip(toolTip);
}
// update the status tip
QString statusTip = QCoreApplication::translate(cmd->className(),
cmd->getStatusTip(), 0, QCoreApplication::UnicodeUTF8);
if (statusTip.isEmpty())
statusTip = toolTip;
if (!accel.isEmpty()) {
if (!statusTip.isEmpty()) {
QString tip = QString::fromLatin1("(%1)\t%2")
.arg(accel).arg(statusTip);
action->setStatusTip(tip);
}
}
else {
action->setStatusTip(statusTip);
}
ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("Shortcut");
hGrp->SetASCII(name.constData(), accelLineEditShortcut->text().toUtf8());
buttonAssign->setEnabled(false);