Files
0417_QT_code/APP/APP_KeypadModel.cpp

107 lines
3.6 KiB
C++
Raw Permalink Normal View History

2026-03-26 10:45:29 +08:00
#include "APP/APP_KeypadModel.h"
namespace APP {
APP_KeypadModel::APP_KeypadModel()
{
appKeyList = {
2026-04-17 16:25:19 +08:00
{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},
2026-03-26 10:45:29 +08:00
{QStringLiteral("7"), QStringLiteral("7"), QStringLiteral("Home"), 0x005F, 1, 0, 1, 1, APP_KeyTone::Normal},
2026-04-17 16:25:19 +08:00
{QStringLiteral("8"), QStringLiteral("8"), QStringLiteral("Up"), 0x0060, 1, 1, 1, 1, APP_KeyTone::Normal},
2026-03-26 10:45:29 +08:00
{QStringLiteral("9"), QStringLiteral("9"), QStringLiteral("PgUp"), 0x0061, 1, 2, 1, 1, APP_KeyTone::Normal},
2026-04-17 16:25:19 +08:00
{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},
2026-03-26 10:45:29 +08:00
{QStringLiteral("1"), QStringLiteral("1"), QStringLiteral("End"), 0x0059, 3, 0, 1, 1, APP_KeyTone::Normal},
2026-04-17 16:25:19 +08:00
{QStringLiteral("2"), QStringLiteral("2"), QStringLiteral("Down"), 0x005A, 3, 1, 1, 1, APP_KeyTone::Normal},
2026-03-26 10:45:29 +08:00
{QStringLiteral("3"), QStringLiteral("3"), QStringLiteral("PgDn"), 0x005B, 3, 2, 1, 1, APP_KeyTone::Normal},
2026-04-17 16:25:19 +08:00
{QStringLiteral("enter"), QStringLiteral("Enter"), QString(), 0x0058, 3, 3, 2, 1, APP_KeyTone::Blue},
2026-03-26 10:45:29 +08:00
{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_KeyInfo>& 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;
}
2026-04-17 16:25:19 +08:00
QString APP_KeypadModel::App_Func_GetKeyIdFromUsage(quint16 Usage) const
2026-03-26 10:45:29 +08:00
{
2026-04-17 16:25:19 +08:00
for (const APP_KeyInfo& KeyInfo : appKeyList)
{
if (KeyInfo.usage == Usage)
{
return KeyInfo.id;
}
}
2026-03-26 10:45:29 +08:00
2026-04-17 16:25:19 +08:00
return QString();
2026-03-26 10:45:29 +08:00
}
2026-04-17 16:25:19 +08:00
QString APP_KeypadModel::App_Func_GetDefaultHint(const QString& KeyId) const
2026-03-26 10:45:29 +08:00
{
2026-04-17 16:25:19 +08:00
for (const APP_KeyInfo& KeyInfo : appKeyList)
2026-03-26 10:45:29 +08:00
{
2026-04-17 16:25:19 +08:00
if (KeyInfo.id == KeyId)
2026-03-26 10:45:29 +08:00
{
2026-04-17 16:25:19 +08:00
return KeyInfo.hint;
2026-03-26 10:45:29 +08:00
}
}
2026-04-17 16:25:19 +08:00
return QString();
2026-03-26 10:45:29 +08:00
}
2026-04-17 16:25:19 +08:00
void APP_KeypadModel::App_Func_SetNumLockOn(bool IsOn)
2026-03-26 10:45:29 +08:00
{
2026-04-17 16:25:19 +08:00
appNumLockOn = IsOn;
2026-03-26 10:45:29 +08:00
}
2026-04-17 16:25:19 +08:00
void APP_KeypadModel::App_Func_ClearPressedKeys()
2026-03-26 10:45:29 +08:00
{
2026-04-17 16:25:19 +08:00
appPressedKeyIdList.clear();
2026-03-26 10:45:29 +08:00
}
2026-04-17 16:25:19 +08:00
void APP_KeypadModel::App_Func_SetPressedKeysFromUsageList(const QVector<quint16>& UsageList)
2026-03-26 10:45:29 +08:00
{
2026-04-17 16:25:19 +08:00
appPressedKeyIdList.clear();
for (quint16 Usage : UsageList)
2026-03-26 10:45:29 +08:00
{
2026-04-17 16:25:19 +08:00
const QString KeyId = App_Func_GetKeyIdFromUsage(Usage);
if (!KeyId.isEmpty() && !appPressedKeyIdList.contains(KeyId))
2026-03-26 10:45:29 +08:00
{
2026-04-17 16:25:19 +08:00
appPressedKeyIdList.append(KeyId);
2026-03-26 10:45:29 +08:00
}
}
}
} // namespace APP