void ShortcutDialog::processKey(int key, int mods) { m_shortcut = QKeySequence(mods | key); // WORKAROUND: Qt has convert some keys to upper case which // breaks some shortcuts on some keyboard layouts. m_shortcut = QKeySequence(portableShortcutText(m_shortcut)); const QString shortcut = m_shortcut.toString(); COPYQ_LOG(QString("Shortcut: %1").arg(shortcut)); ui->lineEditShortcut->setText(shortcut); }
void ClipboardServer::shortcutActivated(QxtGlobalShortcut *shortcut) { #ifdef NO_GLOBAL_SHORTCUTS Q_UNUSED(shortcut); #else m_ignoreKeysTimer.start(); const QMap<QxtGlobalShortcut*, Command>::const_iterator it = m_shortcutActions.constFind(shortcut); if ( it != m_shortcutActions.constEnd() ) { QVariantMap data; const QString shortcutText = portableShortcutText(shortcut->shortcut()); data.insert(mimeShortcut, shortcutText.toUtf8()); m_wnd->action(data, it.value(), QModelIndex()); } #endif }
void ShortcutsWidget::saveShortcuts(QSettings *settings) { auto commands = loadAllCommands(); bool needSaveCommands = false; for (const auto &action : m_actions) { QStringList shortcutNames; for (const auto &shortcut : action.shortcutButton->shortcuts()) shortcutNames.append(portableShortcutText(shortcut)); if ( action.settingsKey.isEmpty() ) { auto savedCommand = findShortcutCommand(action.command.name, commands); const bool enable = !shortcutNames.isEmpty(); if (savedCommand) { if ( savedCommand->enable != enable || (enable && shortcuts(*savedCommand) != shortcutNames) ) { needSaveCommands = true; savedCommand->enable = enable; if (enable) setShortcuts(savedCommand, shortcutNames); } } else if ( !shortcutNames.isEmpty() ) { needSaveCommands = true; auto command = action.command; setShortcuts(&command, shortcutNames); commands.append(command); } } else { // Workaround for QTBUG-51237 (saving empty list results in invalid value). if (shortcutNames.isEmpty()) settings->setValue(action.settingsKey, QString()); else settings->setValue(action.settingsKey, shortcutNames); } } if (needSaveCommands) { saveCommands(commands); emit commandsSaved(); } }