Skip to content

Commit c4c638c

Browse files
committed
fix: sync customize keymap when reverting invalid shortcut
When a shortcut is set to an invalid key (e.g. Ctrl+Shift+L), the revert uses the visible option's current value and syncs it to the hidden customize keymap, preventing stale data from overwriting on keymap switch. 修复快捷键设为无效组合键后恢复值不正确的问题,同步更新customize keymap避免后续keymap切换时用脏数据覆盖。 Log: 修复无效快捷键恢复时使用了旧值的问题 PMS: BUG-353289 Influence: 用户设置无效快捷键后,快捷键将正确恢复为当前有效值而非之前的自定义值。
1 parent 29f76ff commit c4c638c

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/common/settings.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-FileCopyrightText: 2011-2023 UnionTech Software Technology Co., Ltd.
1+
// SPDX-FileCopyrightText: 2011-2026 UnionTech Software Technology Co., Ltd.
22
//
33
// SPDX-License-Identifier: GPL-3.0-or-later
44

@@ -371,7 +371,10 @@ QPair<QWidget *, QWidget *> Settings::createKeySequenceEditHandle(QObject *obj)
371371
instance()->m_pDialog = instance()->createDialog(reason, "", bIsConflicts);
372372
instance()->m_pDialog->exec();
373373
// 恢复组合键序列
374-
shortCutLineEdit->setKeySequence(instance()->settings->value(keySplitList.join(".")).toString());
374+
QString currentValidValue = instance()->settings->value(checkName).toString();
375+
QStringList customizeKeySplitList = option->key().split(".");
376+
customizeKeySplitList[1] = QString("%1_keymap_customize").arg(customizeKeySplitList[1]);
377+
instance()->settings->option(customizeKeySplitList.join("."))->setValue(currentValidValue);
375378
keymap->setValue("emacs");
376379
keymap->setValue("customize");
377380
qDebug() << "Leaving createKeySequenceEditHandle";

0 commit comments

Comments
 (0)