QGraphicsView(scene, parent)
{
setStyleSheet("background: transparent");
- //setAttribute(Qt::WA_TranslucentBackground);
setStyleSheet("border-style: none");
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
void DockingConView::createItems(ControllerForm *conForm)
{
/* bezel */
- SkinBezelItem *bezelItem = new SkinBezelItem(conForm->conImg[ControllerForm::normal]);
+ bezelItem = new SkinBezelItem(conForm->conImg[ControllerForm::normal]);
scene()->addItem(bezelItem);
/* HW keys */
void DockingConView::mousePressEvent(QMouseEvent *event)
{
+ QGraphicsView::mousePressEvent(event);
+
+ if (bezelItem->isKeyHandling() == true) {
+ return;
+ }
+
if (event->button() == Qt::LeftButton) {
QWidget *win = ((QWidget *) this->parent());
rubberBand->show();
}
}
-
- QGraphicsView::mousePressEvent(event);
}
void DockingConView::mouseReleaseEvent(QMouseEvent *event)
{
+ QGraphicsView::mouseReleaseEvent(event);
+
+ if (bezelItem->isKeyHandling() == true) {
+ return;
+ }
+
if (event->button() == Qt::LeftButton) {
if (grabPos != QPoint(-1, -1)) {
if (rubberBand != NULL) {
return;
}
}
-
- QGraphicsView::mouseReleaseEvent(event);
}
void DockingConView::mouseMoveEvent(QMouseEvent *event)
{
+ QGraphicsView::mouseMoveEvent(event);
+
+ if (bezelItem->isKeyHandling() == true) {
+ return;
+ }
+
if (grabPos != QPoint(-1, -1)) {
rubberBand->setGeometry(
QRect(rubberPos + (event->globalPos() - grabPos), size()));
}
-
- QGraphicsView::mouseMoveEvent(event);
}
DockingConView::~DockingConView()
#include <QRubberBand>
#include "skinview.h"
+#include "skinbezelitem.h"
#include "controllerform.h"
class DockingConView : public QGraphicsView
private:
void createItems(ControllerForm *conForm);
+ SkinBezelItem *bezelItem;
QRubberBand *rubberBand;
};
void FloatingConView::createItems(ControllerForm *conForm)
{
/* bezel */
- SkinBezelItem *bezelItem = new SkinBezelItem(conForm->conImg[ControllerForm::normal]);
+ bezelItem = new SkinBezelItem(conForm->conImg[ControllerForm::normal]);
scene()->addItem(bezelItem);
/* HW keys */
void FloatingConView::mousePressEvent(QMouseEvent *event)
{
+ QGraphicsView::mousePressEvent(event);
+
+ if (bezelItem->isKeyHandling() == true) {
+ return;
+ }
+
if (event->button() == Qt::LeftButton) {
QWidget *con = ((QWidget *) this->parent());
grabPos = event->globalPos();
conPos = con->pos();
}
-
- QGraphicsView::mousePressEvent(event);
}
void FloatingConView::mouseReleaseEvent(QMouseEvent *event)
{
+ QGraphicsView::mouseReleaseEvent(event);
+
+ if (bezelItem->isKeyHandling() == true) {
+ return;
+ }
+
if (event->button() == Qt::LeftButton) {
grabPos = QPoint(-1, -1);
}
win->openController(win->getUIState()->conState.conFormIndex, true);
return;
}
-
- QGraphicsView::mouseReleaseEvent(event);
}
void FloatingConView::mouseMoveEvent(QMouseEvent *event)
{
- QWidget *con = ((QWidget *)this->parent());
+ QGraphicsView::mouseMoveEvent(event);
+ if (bezelItem->isKeyHandling() == true) {
+ return;
+ }
+
+ QWidget *con = ((QWidget *)this->parent());
if (grabPos != QPoint(-1, -1)) {
con->move(conPos + (event->globalPos() - grabPos));
}
-
- QGraphicsView::mouseMoveEvent(event);
}
FloatingConView::~FloatingConView()
#define FLOATINGCONVIEW_H
#include "skinview.h"
+#include "skinbezelitem.h"
#include "controllerform.h"
class FloatingConView : public QGraphicsView
private:
void createItems(ControllerForm *conForm);
+
+ SkinBezelItem *bezelItem;
};
#endif // FLOATINGCONVIEW_H
SkinBezelItem::SkinBezelItem(QImage bezelImg, QGraphicsItem *parent) :
QGraphicsPixmapItem(QPixmap::fromImage(bezelImg), parent)
{
+ keyHandling = false;
+}
+
+void SkinBezelItem::setKeyHandling(bool doing)
+{
+ keyHandling = doing;
+}
+
+bool SkinBezelItem::isKeyHandling()
+{
+ return keyHandling;
}
SkinBezelItem::~SkinBezelItem()
SkinBezelItem(QImage bezelImg, QGraphicsItem *parent = 0);
~SkinBezelItem();
+ void setKeyHandling(bool doing);
+ bool isKeyHandling();
+
protected:
private:
+ bool keyHandling;
};
#endif // SKINBEZELITEM_H
#include "skinkeyitem.h"
-SkinKeyItem::SkinKeyItem(QImage pressedImg, HardwareKey *key, QGraphicsItem *parent) :
- QGraphicsRectItem(key->region, parent)
+SkinKeyItem::SkinKeyItem(QImage pressedImg, HardwareKey *key, SkinBezelItem *parent) :
+ QGraphicsRectItem(key->region, (QGraphicsItem *)parent)
{
+ this->bezelParent = parent;
this->pressedImg = pressedImg;
this->key = key;
isPressed = false;
hoverColor = Qt::white; // TODO:
pen.setColor(Qt::transparent);
+
longPressTimer = new QTimer();
longPressTimer->setInterval(3 * 1000);
longPressTimer->setSingleShot(true);
Q_UNUSED(event)
isPressed = true;
+ bezelParent->setKeyHandling(true);
pen.setColor(Qt::transparent);
update();
Q_UNUSED(event)
int keyCode = 0;
isPressed = false;
+ bezelParent->setKeyHandling(false);
update();
#include <QPainter>
#include <QTimer>
+#include "skinbezelitem.h"
#include "hardwarekey.h"
extern "C" {
Q_OBJECT
public:
- SkinKeyItem(QImage pressedImg, HardwareKey *key, QGraphicsItem *parent = 0);
+ SkinKeyItem(QImage pressedImg, HardwareKey *key, SkinBezelItem *parent = 0);
~SkinKeyItem();
HardwareKey *key;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
private:
+ SkinBezelItem *bezelParent;
bool isPressed;
QColor hoverColor;
QPen pen;