+void PrefShortcuts::deactivateShortcuts(QList<QTreeWidgetItem*> const & items)
+{
+ for (int i = 0; i < items.size(); ++i) {
+ if (!items[i])
+ continue;
+ string shortcut = fromqstr(items[i]->data(1, Qt::UserRole).toString());
+ string lfun = fromqstr(items[i]->text(0));
+ FuncRequest func = lyxaction.lookupFunc(lfun);
+ KeyMap::ItemType tag =
+ static_cast<KeyMap::ItemType>(items[i]->data(0, Qt::UserRole).toInt());
+
+ switch (tag) {
+ case KeyMap::System:
+ // for system bind, we do not touch the item
+ // but add an user unbind item
+ user_unbind_.bind(shortcut, func);
+ setItemType(items[i], KeyMap::UserUnbind);
+ break;
+
+ case KeyMap::UserBind: {
+ // for user_bind, we remove this bind
+ QTreeWidgetItem * parent = items[i]->parent();
+ int itemIdx = parent->indexOfChild(items[i]);
+ parent->takeChild(itemIdx);
+ user_bind_.unbind(shortcut, func);
+ break;
+ }
+ default:
+ break;
+ }
+ }
+}
+
+