}
SkinKeyItem::SkinKeyItem(QGraphicsItem *parent, HardwareKey *hwKey,
- QImage pressedImg, bool reMasking, HoverType &hover) :
+ QImage *pressedImg, bool reMasking, HoverType &hover) :
QGraphicsRectItem(hwKey->getRect(), parent)
{
this->viewer = (SkinView *)scene()->views().at(0);
this->bezelParent = (SkinBezelItem *)parent;
this->hwKey = hwKey;
- this->pressedImg = pressedImg;
+ this->pressedKeyImg = NULL;
this->reMasking = reMasking;
this->hoverColor = hover.getColor();
-
this->isPressed = false;
+
+ if (pressedImg != NULL) {
+ pressedKeyImg = new QImage(*pressedImg);
+ }
+
hoverPen.setColor(Qt::transparent);
longPressTimer = new QTimer();
}
if (isPressed == true) {
- painter->drawImage(rect().x(), rect().y(), pressedImg);
+ if (pressedKeyImg != NULL) {
+ painter->drawImage(rect().x(), rect().y(), *pressedKeyImg);
+ }
}
}
SkinKeyItem::~SkinKeyItem()
{
+ if (pressedKeyImg != NULL) {
+ delete pressedKeyImg;
+ }
+
if (longPressTimer) {
delete longPressTimer;
longPressTimer = NULL;
public:
SkinKeyItem(QGraphicsItem *parent, HardwareKey *hwKey,
- QImage pressedImg, bool reMasking, HoverType &hover);
+ QImage *pressedImg, bool reMasking, HoverType &hover);
~SkinKeyItem();
protected:
SkinBezelItem *bezelParent;
HardwareKey *hwKey;
- QImage pressedImg;
+ QImage *pressedKeyImg;
bool reMasking;
bool isPressed;
QColor hoverColor;
{
bool reMasking = false;
+ if (form->skinImg[LayoutForm::pressed].size() == QSize(0, 0)) {
+ return new SkinKeyItem(parent, hwKey,
+ NULL, reMasking, form->getHoverType());
+ }
+
QImage normalKeyImg = form->skinImg[LayoutForm::normal].copy(hwKey->getRect());
QImage pressedKeyImg = form->skinImg[LayoutForm::pressed].copy(hwKey->getRect());
QImage normalMask = normalKeyImg.createAlphaMask();
}
return new SkinKeyItem(parent, hwKey,
- pressedKeyImg, reMasking, form->getHoverType());
+ &pressedKeyImg, reMasking, form->getHoverType());
}
SkinView::~SkinView()