#include "APP/APP_KeypadModel.h" namespace APP { APP_KeypadModel::APP_KeypadModel() { appKeyList = { {QStringLiteral("num"), QStringLiteral("Num"), QString(), 0x0053, 0, 0, 1, 1, APP_KeyTone::Aqua}, {QStringLiteral("divide"), QStringLiteral("/"), QString(), 0x0054, 0, 1, 1, 1, APP_KeyTone::Normal}, {QStringLiteral("multiply"), QStringLiteral("*"), QString(), 0x0055, 0, 2, 1, 1, APP_KeyTone::Normal}, {QStringLiteral("minus"), QStringLiteral("-"), QString(), 0x0056, 0, 3, 1, 1, APP_KeyTone::Amber}, {QStringLiteral("7"), QStringLiteral("7"), QStringLiteral("Home"), 0x005F, 1, 0, 1, 1, APP_KeyTone::Normal}, {QStringLiteral("8"), QStringLiteral("8"), QStringLiteral("Up"), 0x0060, 1, 1, 1, 1, APP_KeyTone::Normal}, {QStringLiteral("9"), QStringLiteral("9"), QStringLiteral("PgUp"), 0x0061, 1, 2, 1, 1, APP_KeyTone::Normal}, {QStringLiteral("plus"), QStringLiteral("+"), QString(), 0x0057, 1, 3, 2, 1, APP_KeyTone::Aqua}, {QStringLiteral("4"), QStringLiteral("4"), QStringLiteral("Left"), 0x005C, 2, 0, 1, 1, APP_KeyTone::Normal}, {QStringLiteral("5"), QStringLiteral("5"), QString(), 0x005D, 2, 1, 1, 1, APP_KeyTone::Normal}, {QStringLiteral("6"), QStringLiteral("6"), QStringLiteral("Right"), 0x005E, 2, 2, 1, 1, APP_KeyTone::Normal}, {QStringLiteral("1"), QStringLiteral("1"), QStringLiteral("End"), 0x0059, 3, 0, 1, 1, APP_KeyTone::Normal}, {QStringLiteral("2"), QStringLiteral("2"), QStringLiteral("Down"), 0x005A, 3, 1, 1, 1, APP_KeyTone::Normal}, {QStringLiteral("3"), QStringLiteral("3"), QStringLiteral("PgDn"), 0x005B, 3, 2, 1, 1, APP_KeyTone::Normal}, {QStringLiteral("enter"), QStringLiteral("Enter"), QString(), 0x0058, 3, 3, 2, 1, APP_KeyTone::Blue}, {QStringLiteral("0"), QStringLiteral("0"), QStringLiteral("Ins"), 0x0062, 4, 0, 1, 2, APP_KeyTone::Normal}, {QStringLiteral("dot"), QStringLiteral("."), QStringLiteral("Del"), 0x0063, 4, 2, 1, 1, APP_KeyTone::Normal} }; } const QVector& APP_KeypadModel::App_Func_GetKeyList() const { return appKeyList; } bool APP_KeypadModel::App_Func_IsLatched(const QString& KeyId) const { return (KeyId == QStringLiteral("num")) && appNumLockOn; } bool APP_KeypadModel::App_Func_IsPressed(const QString& KeyId) const { return appPressedKeyIdList.contains(KeyId); } quint16 APP_KeypadModel::App_Func_GetUsageFromKeyId(const QString& KeyId) const { for (const APP_KeyInfo& KeyInfo : appKeyList) { if (KeyInfo.id == KeyId) { return KeyInfo.usage; } } return 0; } QString APP_KeypadModel::App_Func_GetKeyIdFromUsage(quint16 Usage) const { for (const APP_KeyInfo& KeyInfo : appKeyList) { if (KeyInfo.usage == Usage) { return KeyInfo.id; } } return QString(); } QString APP_KeypadModel::App_Func_GetDefaultHint(const QString& KeyId) const { for (const APP_KeyInfo& KeyInfo : appKeyList) { if (KeyInfo.id == KeyId) { return KeyInfo.hint; } } return QString(); } void APP_KeypadModel::App_Func_SetNumLockOn(bool IsOn) { appNumLockOn = IsOn; } void APP_KeypadModel::App_Func_ClearPressedKeys() { appPressedKeyIdList.clear(); } void APP_KeypadModel::App_Func_SetPressedKeysFromUsageList(const QVector& UsageList) { appPressedKeyIdList.clear(); for (quint16 Usage : UsageList) { const QString KeyId = App_Func_GetKeyIdFromUsage(Usage); if (!KeyId.isEmpty() && !appPressedKeyIdList.contains(KeyId)) { appPressedKeyIdList.append(KeyId); } } } } // namespace APP