+ fixes #0001674: Allow clearing keyboard shortcuts for actions

This commit is contained in:
wmayer 2016-05-06 19:04:26 +02:00
parent 7e01d0128b
commit 237bf8332c
3 changed files with 45 additions and 0 deletions

View File

@ -194,6 +194,13 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="buttonClear">
<property name="text">
<string>Clear</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="buttonReset">
<property name="text">

View File

@ -260,6 +260,43 @@ void DlgCustomKeyboardImp::on_buttonAssign_clicked()
}
}
/** Clears the accelerator of the selected command. */
void DlgCustomKeyboardImp::on_buttonClear_clicked()
{
QTreeWidgetItem* item = commandTreeWidget->currentItem();
if (!item)
return;
QVariant data = item->data(1, Qt::UserRole);
QByteArray name = data.toByteArray(); // command name
CommandManager & cCmdMgr = Application::Instance->commandManager();
Command* cmd = cCmdMgr.getCommandByName(name.constData());
if (cmd && cmd->getAction()) {
Action* action = cmd->getAction();
action->setShortcut(QString());
accelLineEditShortcut->clear();
editShortcut->clear();
// update the tool tip
QString toolTip = QCoreApplication::translate(cmd->className(),
cmd->getToolTipText(), 0, QCoreApplication::UnicodeUTF8);
action->setToolTip(toolTip);
// update the status tip
QString statusTip = QCoreApplication::translate(cmd->className(),
cmd->getStatusTip(), 0, QCoreApplication::UnicodeUTF8);
if (statusTip.isEmpty())
statusTip = toolTip;
action->setStatusTip(statusTip);
ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("Shortcut");
hGrp->SetASCII(name.constData(), accelLineEditShortcut->text().toUtf8());
buttonAssign->setEnabled(false);
buttonReset->setEnabled(true);
}
}
/** Resets the accelerator of the selected command to the default. */
void DlgCustomKeyboardImp::on_buttonReset_clicked()
{

View File

@ -52,6 +52,7 @@ protected Q_SLOTS:
void on_categoryBox_activated(int index);
void on_commandTreeWidget_currentItemChanged(QTreeWidgetItem*);
void on_buttonAssign_clicked();
void on_buttonClear_clicked();
void on_buttonReset_clicked();
void on_buttonResetAll_clicked();
void on_editShortcut_textChanged(const QString&);