void KeyCompDlg::keyPressEvent(QKeyEvent* event) { m_hotkey.clear(); Qt::KeyboardModifiers mods = event->modifiers(); if(mods & Qt::CTRL) m_activekeys.insert(Qt::CTRL); if(mods & Qt::ALT) m_activekeys.insert(Qt::ALT); if(mods & Qt::SHIFT) m_activekeys.insert(Qt::SHIFT); if(mods & Qt::META) m_activekeys.insert(Qt::META); switch(event->key()) { case Qt::Key_Control : case Qt::Key_Alt : case Qt::Key_Shift : case Qt::Key_Meta : break; default: m_activekeys.insert(event->key()); } QSet<INT32>::const_iterator ite = m_activekeys.begin(); for(;ite != m_activekeys.end();ite++) m_hotkey.push_back(*ite); ui.keycompEdit->setText(getHotKeyText(m_hotkey)); }
void GenerateTTFileDlg::slotSetupHotkey() { KeyCompDlg dlg(this); if(!dlg.exec()) return; m_hostentry.hotkey = dlg.m_hotkey; ui.keycompEdit->setText(getHotKeyText(dlg.m_hotkey)); }
void KeyCompDlg::keyPressEvent(QKeyEvent* event) { qDebug() << "KeyCompDlg::keyPressEvent"; qDebug() << "Native: " << QString("%1").arg(event->nativeModifiers(), 0, 16) << "modifiers: " << QString("%1").arg(event->modifiers(), 0, 16) << "key: " << QString("%1").arg(event->key(), 0, 16); if(m_hotkey.isEmpty()) { for(int i=0;i<MAC_HOTKEY_SIZE;i++) m_hotkey.push_back(MAC_NO_KEY); } switch(event->key()) { case 0 : break; case Qt::Key_Control : m_hotkey[0] = m_hotkey[0] == (INT32)MAC_NO_KEY? 0 : m_hotkey[0]; m_hotkey[0] |= cmdKey; qDebug() << "Ctrl"; break; case Qt::Key_Alt : m_hotkey[0] = m_hotkey[0] == (INT32)MAC_NO_KEY? 0 : m_hotkey[0]; m_hotkey[0] |= optionKey; qDebug() << "Alt"; break; case Qt::Key_Shift : m_hotkey[0] = m_hotkey[0] == (INT32)MAC_NO_KEY? 0 : m_hotkey[0]; m_hotkey[0] |= shiftKey; qDebug() << "Shift"; break; case Qt::Key_Meta : m_hotkey[0] = m_hotkey[0] == (INT32)MAC_NO_KEY? 0 : m_hotkey[0]; m_hotkey[0] |= controlKey; qDebug() << "MEta"; break; default: m_hotkey[1] = event->nativeVirtualKey(); qDebug() << "VK " << event->nativeVirtualKey(); break; } m_activekeys.insert(event->key()); Q_ASSERT(m_hotkey.size() == 2); ui.keycompEdit->setText(getHotKeyText(m_hotkey)); }
bool KeyCompDlg::winEvent(MSG *message, long *result) { if(message->message == WM_TEAMTALK_HOTKEYEVENT) { if(message->lParam) { m_hotkey.push_back(message->wParam); ui.keycompEdit->setText(getHotKeyText(m_hotkey)); m_activekeys.insert(message->wParam); } else m_activekeys.remove(message->wParam); if(m_activekeys.size() == 0) this->accept(); } return QDialog::winEvent(message, result); }
bool KeyCompDlg::nativeEvent(const QByteArray& eventType, void* message, long* result) { MSG* msg = reinterpret_cast<MSG*>(message); if(msg->message == WM_TEAMTALK_HOTKEYEVENT) { if(msg->lParam) { m_hotkey.push_back(msg->wParam); ui.keycompEdit->setText(getHotKeyText(m_hotkey)); m_activekeys.insert(msg->wParam); } else m_activekeys.remove(msg->wParam); if(m_activekeys.size() == 0) this->accept(); } return QDialog::nativeEvent(eventType, message, result); }