From d0fd682035d6227b103adb84d4931b494bc555d8 Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Mon, 15 Feb 2010 13:35:45 +0100 Subject: Make popups work. --- qgraphicssystem_dd.cpp | 60 ++++++++++---------------------------------------- qgraphicssystem_dd.h | 8 +++---- 2 files changed, 15 insertions(+), 53 deletions(-) diff --git a/qgraphicssystem_dd.cpp b/qgraphicssystem_dd.cpp index e48d078..637e6e6 100644 --- a/qgraphicssystem_dd.cpp +++ b/qgraphicssystem_dd.cpp @@ -143,6 +143,15 @@ void QDevDaysWindowSurface::setVisible(bool visible) m_system->sendRequest(request); } +Qt::WindowFlags QDevDaysWindowSurface::setWindowFlags(Qt::WindowFlags type) +{ + return window_flags = type; +} + +Qt::WindowFlags QDevDaysWindowSurface::windowFlags() const +{ + return window_flags; +} void QDevDaysWindowSurface::raise() @@ -162,51 +171,6 @@ void QDevDaysWindowSurface::lower() } - -/* -void QDevDaysWindowSurface::handleMouseEvent(const Event &event) -{ - QEvent::Type type = QEvent::None; - QPoint position = event.rect.topLeft().toPoint(); - switch (event.type) { - case Event::MousePressEvent: - type = QEvent::MouseButtonPress; - break; - case Event::MouseReleaseEvent: - type = QEvent::MouseButtonPress; - break; - case Event::MouseMoveEvent: - type = QEvent::MouseMove; - break; - default: - break; - } - QMouseEvent mouseEvent(type, position, Qt::LeftButton, Qt::NoButton, Qt::NoModifier); - QApplicationPrivate::handleMouseEvent(window(), mouseEvent); -} - -void QDevDaysWindowSurface::handleKeyEvent(const Event &event) -{ - QEvent::Type type = QEvent::None; - quint32 key = 0; - - switch (event.type) { - case Event::KeyPressEvent: - type = QEvent::KeyPress; - break; - case Event::KeyReleaseEvent: - type = QEvent::KeyRelease; - break; - } - QKeyEvent keyEvent(type, key, Qt::NoModifier, QString(), true, 0); - QApplicationPrivate::handleKeyEvent(window(), keyEvent); -} - -void QDevDaysWindowSurface::handleGeometryChanged(const Event &event) -{ - QApplicationPrivate::handleGeometryChange(window(), event.rect.toRect()); -} -*/ // // graphics system // @@ -237,7 +201,7 @@ QWindowSurface *QDevDaysGraphicsSystem::createWindowSurface(QWidget *widget) con QList QDevDaysGraphicsSystem::screens() const { - qDebug() << "SYSTEM: screens"; +// qDebug() << "SYSTEM: screens"; return QList() << &m_screen; } @@ -301,14 +265,14 @@ void QDevDaysGraphicsSystem::eventDispatcher() // ### we don't support multiple buttons or any keyboard modifiers // ### and we don't support mouse tracking QPoint pos = m_message.rect.topLeft().toPoint(); - qDebug() << "=====> Mouse press/move event" << pos; + qDebug() << "=====> Mouse press/move event" << pos << window; Qt::MouseButtons b = Qt::LeftButton; QWindowSystemInterface::handleMouseEvent(window, pos, pos+window->pos(), b); break; } case Event::MouseReleaseEvent: { // ### we don't support multiple buttons or any keyboard modifiers QPoint pos = m_message.rect.topLeft().toPoint(); - qDebug() << "======> Mouse release event" << pos; + qDebug() << "======> Mouse release event" << pos << window; Qt::MouseButtons b = Qt::NoButton; QWindowSystemInterface::handleMouseEvent(window, pos, pos + window->pos(), b); break; } diff --git a/qgraphicssystem_dd.h b/qgraphicssystem_dd.h index c17224d..4abbcb2 100644 --- a/qgraphicssystem_dd.h +++ b/qgraphicssystem_dd.h @@ -52,17 +52,15 @@ public: void setVisible(bool visible); void raise(); void lower(); - - // event handlers - //void handleMouseEvent(const Event &event); - //void handleKeyEvent(const Event &event); - //void handleGeometryChanged(const Event &event); + Qt::WindowFlags setWindowFlags(Qt::WindowFlags type); + Qt::WindowFlags windowFlags() const; private: QDevDaysGraphicsSystem *m_system; quint32 m_id; QSharedMemory m_shared; QImage m_image; + Qt::WindowFlags window_flags; }; class QDevDaysGraphicsSystemScreen : public QGraphicsSystemScreen -- cgit v1.2.3