this->hwKey = hwKey;
this->pressedKeyImg = NULL;
this->reMasking = reMasking;
- this->hoverColor = hover.getColor();
this->isPressed = false;
+ this->isHovered = false;
if (pressedImg != NULL) {
pressedKeyImg = new QImage(*pressedImg);
}
- hoverPen.setColor(Qt::transparent);
-
longPressTimer = new QTimer();
longPressTimer->setInterval(LONG_PRESS_TIME);
longPressTimer->setSingleShot(true);
connect(longPressTimer, SIGNAL(timeout()), this, SLOT(longPressHook()));
+ hoverOutline.setColor(hover.getColor());
+ if (hover.getFill() == true) {
+ QColor fill = hoverOutline.color();
+ fill.setAlpha(128);
+ hoverFill = QBrush(fill);
+ }
+
setToolTip(hwKey->getTooltip());
setAcceptHoverEvents(true);
{
bezelParent->setHWKeyHandling(isPressed = true);
- hoverPen.setColor(Qt::transparent);
+ isHovered = false;
update();
if (reMasking == true && viewer != NULL) {
} else { /* dual keycode key */
qDebug() << "dual key pressed";
- /* do nothig */
+ /* do nothing */
return;
}
}
/* override */
void SkinKeyItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
- hoverPen.setColor(hoverColor);
+ isHovered = true;
/* default implementation calls update() */
QGraphicsRectItem::hoverEnterEvent(event);
/* override */
void SkinKeyItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
- hoverPen.setColor(Qt::transparent);
+ isHovered = false;
/* default implementation calls update() */
QGraphicsRectItem::hoverLeaveEvent(event);
Q_UNUSED(option)
Q_UNUSED(widget)
- if (hoverPen.color() != Qt::transparent) {
- painter->setPen(hoverPen);
+ if (isHovered == true) {
+ /* draw hover rectangle */
+ painter->setPen(hoverOutline);
+ painter->setBrush(hoverFill);
+
painter->drawRect(rect().x(), rect().y(),
rect().width() - 1, rect().height() - 1);
- }
-
- if (isPressed == true) {
+ } else if (isPressed == true) {
if (pressedKeyImg != NULL) {
painter->drawImage(rect().x(), rect().y(), *pressedKeyImg);
}
HoverType XmlLayoutParser::parseHover(QXmlStreamReader &xml, const int depth)
{
QColor color(255, 255, 255);
+ bool fill = false;
QDEBUG_INDENT(depth) << HOVER_KEYWORD << " {";
+ fill = xml.attributes().value(HOVER_FILL_ATTR_KEYWORD).compare("true") == 0;
+ QDEBUG_INDENT(depth + 1) << HOVER_FILL_ATTR_KEYWORD << ": " << fill;
+
QXmlStreamReader::TokenType token = xml.readNext();
while (xml.atEnd() == false && (xml.name() == HOVER_KEYWORD &&
QDEBUG_INDENT(depth) << "}";
- return HoverType(color);
+ return HoverType(color, fill);
}
QRect XmlLayoutParser::parseRegion(QXmlStreamReader &xml, const int depth)