#include "hardwarekey.h"
-HardwareKey::HardwareKey(QString name, KeycodeType *keycodeType,
+HardwareKey::HardwareKey(QString name, const KeycodeType &keycodeType,
QRect region, QString tooltip, QKeySequence keySequence)
{
this->name = name;
this->region = region;
this->tooltip = tooltip;
this->keySequence = keySequence;
-
- if (keycodeType == NULL) {
- this->keycodeType = new KeycodeType(-1, -1);
- }
}
QString HardwareKey::getName()
return name;
}
-KeycodeType *HardwareKey::getKeycodeType()
+KeycodeType &HardwareKey::getKeycodeType()
{
return keycodeType;
}
int HardwareKey::getKeycode()
{
- return getKeycodeType()->getShortPressKeycode();
+ return keycodeType.getShortPressKeycode();
}
bool HardwareKey::hasLongPressKeycode()
{
- return (keycodeType->getLongPressKeycode() > 0);
+ return (keycodeType.getLongPressKeycode() > 0);
}
QRect &HardwareKey::getRect()
HardwareKey::~HardwareKey()
{
- if (keycodeType != NULL) {
- delete keycodeType;
- }
+ /* do nothing */
}
class HardwareKey
{
public:
- HardwareKey(QString name, KeycodeType *keycodeType,
+ HardwareKey(QString name, const KeycodeType &keycodeType,
QRect region, QString tooltip, QKeySequence keySequence);
~HardwareKey();
QString getName();
- KeycodeType *getKeycodeType();
+ KeycodeType &getKeycodeType();
int getKeycode();
bool hasLongPressKeycode();
QRect &getRect();
private:
QString name;
- KeycodeType *keycodeType;
+ KeycodeType keycodeType;
QRect region;
QString tooltip;
QKeySequence keySequence;
#include "hovertype.h"
+HoverType::HoverType()
+{
+ this->color = QColor(Qt::white);
+ this->fill = false;
+}
+
HoverType::HoverType(const QColor &color)
{
this->color = color;
class HoverType
{
public:
+ HoverType();
HoverType(const QColor &color);
~HoverType();
#include "keycodetype.h"
+KeycodeType::KeycodeType()
+{
+ this->shortPress = 0;
+ this->longPress = -1;
+}
+
KeycodeType::KeycodeType(int shortPress)
{
this->shortPress = shortPress;
class KeycodeType
{
public:
+ KeycodeType();
KeycodeType(int shortPress);
KeycodeType(int shortPress, int longPress);
~KeycodeType();
{
this->name = name;
this->generalPurpose = false;
- this->hoverType = NULL;
}
QString LayoutForm::getName()
return keyList;
}
-void LayoutForm::setHoverType(HoverType *hover)
+void LayoutForm::setHoverType(const HoverType &hover)
{
hoverType = hover;
}
-HoverType *LayoutForm::getHoverType()
+HoverType &LayoutForm::getHoverType()
{
return hoverType;
}
delete keyList.at(i);
}
keyList.clear();
-
- if (hoverType != NULL) {
- delete hoverType;
- }
}
bool isGeneralPurpose();
QList<HardwareKey *> &getKeyList();
- void setHoverType(HoverType *hover);
- HoverType *getHoverType();
+ void setHoverType(const HoverType &hover);
+ HoverType &getHoverType();
QImage skinImg[2];
enum SkinImgType {
bool generalPurpose;
QList<HardwareKey *> keyList;
- HoverType *hoverType;
+ HoverType hoverType;
};
#endif // LAYOUTFORM_H
}
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->hwKey = hwKey;
this->pressedImg = pressedImg;
this->reMasking = reMasking;
- this->isPressed = false;
-
- if (hover != NULL) {
- hoverColor = hover->getColor();
- } else {
- hoverColor = QColor(Qt::white);
- }
+ this->hoverColor = hover.getColor();
+ this->isPressed = false;
hoverPen.setColor(Qt::transparent);
longPressTimer = new QTimer();
/* long press detected */
if (hwKey->hasLongPressKeycode() == true) {
- const int keycode = hwKey->getKeycodeType()->getLongPressKeycode();
+ 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;
public:
SkinKeyItem(QGraphicsItem *parent, HardwareKey *hwKey,
- QImage pressedImg, bool reMasking, HoverType *hover);
+ QImage pressedImg, bool reMasking, HoverType &hover);
~SkinKeyItem();
protected:
return QColor(red, green, blue, 255);
}
-HoverType *XmlLayoutParser::parseHover(QXmlStreamReader &xml)
+HoverType XmlLayoutParser::parseHover(QXmlStreamReader &xml)
{
QColor color(255, 255, 255);
token = xml.readNext();
}
- return new HoverType(color);
+ return HoverType(color);
}
QRect XmlLayoutParser::parseRegion(QXmlStreamReader &xml)
return new DisplayType(displayRect, angle, maskImage);
}
-KeycodeType *XmlLayoutParser::parseKeycode(QXmlStreamReader &xml)
+KeycodeType XmlLayoutParser::parseKeycode(QXmlStreamReader &xml)
{
int longPress = -1, shortPress = 0;
shortPress = xml.readElementText().toInt();
- return new KeycodeType(shortPress, longPress);
+ return KeycodeType(shortPress, longPress);
}
HardwareKey *XmlLayoutParser::parseKey(QXmlStreamReader &xml)
{
QRect keyRegion;
- KeycodeType *keycodeType = NULL;
+ KeycodeType keycodeType;
QString keyTooptip;
QKeySequence keySequence;
private:
QColor parseColor(QXmlStreamReader &xml);
- HoverType *parseHover(QXmlStreamReader &xml);
+ HoverType parseHover(QXmlStreamReader &xml);
QRect parseRegion(QXmlStreamReader &xml);
DisplayType *parseDisplay(QXmlStreamReader &xml);
- KeycodeType *parseKeycode(QXmlStreamReader &xml);
+ KeycodeType parseKeycode(QXmlStreamReader &xml);
HardwareKey *parseKey(QXmlStreamReader &xml);
int parseKeyList(QXmlStreamReader &xml, QList<HardwareKey *> &list);
MainForm *parseMainForm(QXmlStreamReader &xml);