rubberBand->show();
}
}
+
+ setConViewStatus(CONVIEW_PRESSED);
}
void DockingConView::mouseReleaseEvent(QMouseEvent *event)
rubberBand->hide();
}
- /* toggle */
- MainWindow *win = ((MainWindow *)parent->parent());
- win->getUIState()->conState.recentlyFloatPos = event->globalPos() - eventPos;
-
- win->openController(win->getUIState()->conState.conFormIndex, -1);
- return;
+ if (getConViewStatus() != CONVIEW_PRESSED) {
+ /* toggle */
+ MainWindow *win = ((MainWindow *)parent->parent());
+ win->getUIState()->conState.recentlyFloatPos = event->globalPos() - eventPos;
+ win->openController(win->getUIState()->conState.conFormIndex, -1);
+ }
}
}
+
+ setConViewStatus(CONVIEW_RELEASED);
}
void DockingConView::mouseMoveEvent(QMouseEvent *event)
rubberBand->setGeometry(
QRect(rubberPos + (event->globalPos() - grabPos), size()));
}
+
+ setConViewStatus(CONVIEW_MOVED);
+}
+
+void DockingConView::setConViewStatus(conViewStatus status)
+{
+ if (conViewStat == CONVIEW_PRESSED && status == CONVIEW_MOVED) {
+ conViewStat = CONVIEW_DRAGGED;
+ } else {
+ conViewStat = status;
+ }
+}
+
+int DockingConView::getConViewStatus()
+{
+ return conViewStat;
}
QList<HardwareKey *> DockingConView::getKeyList()
class DockingConView : public QGraphicsView
{
+ Q_ENUMS(conViewStatus)
+
public:
DockingConView(ControllerForm *conForm, QGraphicsScene *scene, QWidget *parent = 0);
~DockingConView();
QList<HardwareKey *> getKeyList();
+ enum conViewStatus {
+ CONVIEW_PRESSED,
+ CONVIEW_RELEASED,
+ CONVIEW_MOVED,
+ CONVIEW_DRAGGED
+ };
+ void setConViewStatus(conViewStatus status);
+ int getConViewStatus();
+
protected:
void resizeEvent(QResizeEvent *event);
void mousePressEvent(QMouseEvent *event);
SkinBezelItem *bezelItem;
QRubberBand *rubberBand;
QList<HardwareKey *> keyList;
+
+ conViewStatus conViewStat;
};
#endif // DOCKINGCONVIEW_H