#include "util/ui_operations.h"
}
+#define LONG_PRESS_TIME (1800)
+
SkinKeyItem::SkinKeyItem(QGraphicsItem *parent, HardwareKey *hwKey,
QImage *pressedImg, bool reMasking, HoverType &hover) :
QGraphicsRectItem(hwKey->getRect(), parent)
hoverPen.setColor(Qt::transparent);
longPressTimer = new QTimer();
- longPressTimer->setInterval(2 * 1000);
+ longPressTimer->setInterval(LONG_PRESS_TIME);
longPressTimer->setSingleShot(true);
connect(longPressTimer, SIGNAL(timeout()), this, SLOT(longPressHook()));
target, hwKey->getRect(), LayoutForm::pressed));
}
+ /* HW key event */
if (hwKey->hasLongPressKeycode() == true) {
- qDebug() << "dual key pressed";
-
- /* long press checking first */
longPressTimer->start();
- return;
+
+ if (hwKey->getKeycodeType().getLongPressKeycode() ==
+ hwKey->getKeycodeType().getShortPressKeycode()) { /* double keycode key */
+ qDebug() << "double key pressed";
+ } else { /* dual keycode key */
+ qDebug() << "dual key pressed";
+
+ /* do nothig */
+ return;
+ }
}
const int keycode = hwKey->getKeycode();
const int keycode = hwKey->getKeycode();
if (hwKey->hasLongPressKeycode() == true) {
- if (longPressTimer->remainingTime() <= 0) {
- /* long press */
- qDebug() << "dual key released";
- return;
- } else {
- /* short press */
- longPressTimer->stop();
-
- qDebug() << hwKey->getName() << "key short pressed:" << keycode;
- do_hw_key_event(KEY_PRESSED, keycode);
+ if (hwKey->getKeycodeType().getLongPressKeycode() ==
+ hwKey->getKeycodeType().getShortPressKeycode()) { /* double keycode key */
+ if (longPressTimer->remainingTime() <= 0) {
+ // long press
+ qDebug() << "double key released";
+ } else {
+ // short press
+ longPressTimer->stop();
+ }
+ } else { /* dual keycode key */
+ if (longPressTimer->remainingTime() <= 0) {
+ // long press
+ qDebug() << "dual key released";
+ return;
+ } else {
+ // short press
+ longPressTimer->stop();
+
+ qDebug() << hwKey->getName() << "key short pressed:" << keycode;
+ do_hw_key_event(KEY_PRESSED, keycode);
+ }
}
}
const int keycode = hwKey->getKeycodeType().getLongPressKeycode();
qDebug() << hwKey->getName() << "key long pressed:" << keycode;
do_hw_key_event(KEY_PRESSED, keycode);
- qDebug() << hwKey->getName() << "key released:" << keycode;
- do_hw_key_event(KEY_RELEASED, keycode);
+
+ if (hwKey->getKeycodeType().getLongPressKeycode() !=
+ hwKey->getKeycodeType().getShortPressKeycode()) {
+ qDebug() << hwKey->getName() << "key released:" << keycode;
+ do_hw_key_event(KEY_RELEASED, keycode);
+ }
}
}