QString TabletWidget::buttonsToString(Qt::MouseButtons bs) { QStringList ret; for (int i = 0; (uint)(1 << i) <= Qt::MaxMouseButton; ++i) { Qt::MouseButton b = static_cast<Qt::MouseButton>(1 << i); if (bs.testFlag(b)) ret << buttonToString(b); } return ret.join("|"); }
void ButtonMap::refreshButtonMap(int player) { QVariantMap map; buttonDataModel->clear(); for (int i=0; i<16; ++i) { QString desc = QString(input_config_bind_map[i].desc); int index = desc.indexOf("("); if(index != -1) { desc.truncate(index); } map.insert("label",QVariant(desc)); map.insert("button", buttonToString(player, g_settings.input.binds[player][i].joykey)); map.insert("type", QVariant("item")); map.insert("index", QVariant(i)); buttonDataModel->append(map); } map.insert("label",QVariant("RetroArch Menu")); map.insert("button", buttonToString(player, g_settings.input.binds[player][RARCH_MENU_TOGGLE].joykey)); map.insert("type", QVariant("item")); map.insert("index", QVariant(RARCH_MENU_TOGGLE)); buttonDataModel->append(map); //Update device dropdown if (deviceSelection) { if(port_device[player]) deviceSelection->setSelectedIndex(port_device[player]->index); else deviceSelection->resetSelectedIndex(); } }
void TabletWidget::paintEvent(QPaintEvent *) { QPainter painter(this); QStringList eventInfo; QString typeString("Event type: "); switch (mType) { case QEvent::TabletEnterProximity: typeString += "QEvent::TabletEnterProximity"; break; case QEvent::TabletLeaveProximity: typeString += "QEvent::TabletLeaveProximity"; break; case QEvent::TabletMove: typeString += "QEvent::TabletMove"; break; case QEvent::TabletPress: typeString += "QEvent::TabletPress"; break; case QEvent::TabletRelease: typeString += "QEvent::TabletRelease"; break; case QEvent::MouseMove: typeString += "QEvent::MouseMove"; break; } eventInfo << typeString; eventInfo << QString("Global position: %1 %2").arg(QString::number(mGPos.x()), QString::number(mGPos.y())); eventInfo << QString("Local position: %1 %2").arg(QString::number(mPos.x()), QString::number(mPos.y())); if (mType == QEvent::TabletEnterProximity || mType == QEvent::TabletLeaveProximity || mType == QEvent::TabletMove || mType == QEvent::TabletPress || mType == QEvent::TabletRelease) { eventInfo << QString("High res global position: %1 %2").arg(QString::number(mHiResGlobalPos.x()), QString::number(mHiResGlobalPos.y())); QString pointerType("Pointer type: "); switch (mPointerType) { case QTabletEvent::UnknownPointer: pointerType += "QTabletEvent::UnknownPointer"; break; case QTabletEvent::Pen: pointerType += "QTabletEvent::Pen"; break; case QTabletEvent::Cursor: pointerType += "QTabletEvent::Cursor"; break; case QTabletEvent::Eraser: pointerType += "QTabletEvent::Eraser"; break; } eventInfo << pointerType; QString deviceString = "Device type: "; switch (mDev) { case QTabletEvent::NoDevice: deviceString += "QTabletEvent::NoDevice"; break; case QTabletEvent::Puck: deviceString += "QTabletEvent::Puck"; break; case QTabletEvent::Stylus: deviceString += "QTabletEvent::Stylus"; break; case QTabletEvent::Airbrush: deviceString += "QTabletEvent::Airbrush"; break; case QTabletEvent::FourDMouse: deviceString += "QTabletEvent::FourDMouse"; break; case QTabletEvent::RotationStylus: deviceString += "QTabletEvent::RotationStylus"; break; } eventInfo << deviceString; eventInfo << QString("Button: %1 (0x%2)").arg(buttonToString(mButton)).arg(mButton, 0, 16); eventInfo << QString("Buttons currently pressed: %1 (0x%2)").arg(buttonsToString(mButtons)).arg(mButtons, 0, 16); eventInfo << QString("Pressure: %1").arg(QString::number(mPress)); eventInfo << QString("Tangential pressure: %1").arg(QString::number(mTangential)); eventInfo << QString("Rotation: %1").arg(QString::number(mRot)); eventInfo << QString("xTilt: %1").arg(QString::number(mXT)); eventInfo << QString("yTilt: %1").arg(QString::number(mYT)); eventInfo << QString("z: %1").arg(QString::number(mZ)); eventInfo << QString("Unique Id: %1").arg(QString::number(mUnique)); } QString text = eventInfo.join("\n"); painter.drawText(rect(), text); }