return action;
}
+/* override */
bool ContextMenu::eventFilter(QObject *obj, QEvent *event)
{
ContextMenu *menu = dynamic_cast<ContextMenu *>(obj);
- if (menu != NULL &&
- (event->type() == QEvent::MouseButtonPress ||
- event->type() == QEvent::MouseButtonRelease)) {
- QMouseEvent *mouseEvent = dynamic_cast<QMouseEvent *>(event);
+ if (menu != NULL) {
+ if (event->type() == QEvent::MouseButtonPress ||
+ event->type() == QEvent::MouseButtonRelease) {
+ QMouseEvent *mouseEvent = dynamic_cast<QMouseEvent *>(event);
- if (mouseEvent != NULL && mouseEvent->button() == Qt::RightButton) {
- mouseEvent->ignore(); /* filtering */
- return true;
+ if (mouseEvent != NULL && mouseEvent->button() == Qt::RightButton) {
+ mouseEvent->ignore(); /* filtering */
+ return true;
+ }
+ } else if (event->type() == QEvent::Show) {
+ if (parent->getSkinView()->isGrabWindow() == true) {
+ parent->getSkinView()->releaseWindow();
+ }
}
}
return kbdHelper;
}
+bool SkinView::isGrabWindow()
+{
+ return (grabPos != QPoint(-1, -1));
+}
+
+void SkinView::grabWindow(QPoint globalPos)
+{
+ grabWinPos = parentWidget()->pos();
+ grabPos = globalPos;
+}
+
+void SkinView::releaseWindow()
+{
+ grabPos = QPoint(-1, -1);
+}
+
void SkinView::updateLayout()
{
qDebug("update skin view layout");
/* override */
void SkinView::mousePressEvent(QMouseEvent *event)
{
- //qDebug("pressed %dx%d", event->x(), event->y());
-
if (event->button() == Qt::LeftButton) {
- grabWinPos = parentWidget()->pos();
- grabPos = event->globalPos();
+ grabWindow(event->globalPos());
}
QGraphicsView::mousePressEvent(event);
/* override */
void SkinView::mouseReleaseEvent(QMouseEvent *event)
{
- //qDebug("released %dx%d", event->x(), event->y());
-
if (event->button() == Qt::LeftButton) {
- grabPos = QPoint(-1, -1);
+ releaseWindow();
}
QGraphicsView::mouseReleaseEvent(event);
/* override */
void SkinView::mouseMoveEvent(QMouseEvent *event)
{
- if (grabPos != QPoint(-1, -1)) {
+ if (isGrabWindow() == true) {
win->move(grabWinPos + (event->globalPos() - grabPos));
}