void ShortcutsPage::keyCapLineEditTextChanged() { QKeySequence keySeqence = ui->keySequenceEdit->keySequence(); if (!m_currentItemIndex.isValid()) { return; } int row = m_currentItemIndex.row(); QStandardItem* actionItem = m_treeModel->item(row, ACT_NAME_COLUMN); QStandardItem* keyseqItem = m_treeModel->item(row, KEY_SEQ_COLUMN); QString strCmdName = QString("Cmd%1").arg( actionItem->text() ); QString strKeySeq = keySeqence.toString( QKeySequence::PortableText ); QSettings setting( PENCIL2D, PENCIL2D ); setting.beginGroup("shortcuts"); if (isKeySequenceExist(setting, strCmdName, keySeqence)) { QMessageBox msgBox; msgBox.setText( tr("Shortcut Conflict!")); msgBox.setInformativeText( tr("%1 is already used, overwrite?").arg(keySeqence.toString(QKeySequence::NativeText)) ); msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); msgBox.setDefaultButton(QMessageBox::No); msgBox.setIcon( QMessageBox::Warning ); int result = msgBox.exec(); if ( result != QMessageBox::Yes ) { ui->keySequenceEdit->setKeySequence( keyseqItem->text() ); return; } removeDuplicateKeySequence(&setting, keySeqence); } setting.setValue(strCmdName, strKeySeq); setting.endGroup(); setting.sync(); treeModelLoadShortcutsSetting(); qDebug() << "Shortcut " << strCmdName << " = " << strKeySeq; }
void ShortcutsPage::keyCapLineEditTextChanged(QKeySequence keySeqence) { if ( m_currentActionItem == NULL || m_currentKeySeqItem == NULL ) { return; } QString strCmdName = QString("Cmd") + m_currentActionItem->text(); QString strKeySeq = keySeqence.toString( QKeySequence::PortableText ); QSettings setting("Pencil", "Pencil"); setting.beginGroup("shortcuts"); if (isKeySequenceExist(setting, strCmdName, keySeqence)) { QMessageBox msgBox; msgBox.setText("Shortcut Conflict!"); msgBox.setInformativeText(keySeqence.toString(QKeySequence::NativeText) + " is already used, overwrite?"); msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); msgBox.setDefaultButton(QMessageBox::No); msgBox.setIcon( QMessageBox::Warning ); int result = msgBox.exec(); if ( result != QMessageBox::Yes ) { ui->keySeqLineEdit->setText(""); return; } removeDuplicateKeySequence(&setting, keySeqence); } setting.setValue(strCmdName, strKeySeq); setting.endGroup(); setting.sync(); loadShortcutsFromSetting(); qDebug() << "Shortcut " << strCmdName << " = " << strKeySeq; }