diff options
author | Thomas McGuire <thomas.mcguire@kdab.com> | 2012-03-29 15:23:57 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-30 21:51:14 +0200 |
commit | b5f343b3677a7c7f09d91d7d60f310717325e840 (patch) | |
tree | 9c2bf3b9858f88ad3d2b7943686a75566c6fc9c2 /src/plugins/platforms/qnx/qqnxscreen.cpp | |
parent | 5d7f7e6559bb78795c0572a605c2e635d28ec017 (diff) |
Remove static methods in QQnxScreen
Change-Id: If0fd910848ba70d3b0a2d948065b09337f8e51c3
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxscreen.cpp')
-rw-r--r-- | src/plugins/platforms/qnx/qqnxscreen.cpp | 95 |
1 files changed, 32 insertions, 63 deletions
diff --git a/src/plugins/platforms/qnx/qqnxscreen.cpp b/src/plugins/platforms/qnx/qqnxscreen.cpp index 1fef0bc0a7..c9ac00339b 100644 --- a/src/plugins/platforms/qnx/qqnxscreen.cpp +++ b/src/plugins/platforms/qnx/qqnxscreen.cpp @@ -42,17 +42,15 @@ #include "qqnxscreen.h" #include "qqnxwindow.h" -#include <QtCore/QDebug> -#include <QtCore/QUuid> +#ifdef QQNXSCREEN_DEBUG +# include <QtCore/QDebug> +#endif #include <QtGui/QWindowSystemInterface> #include <errno.h> QT_BEGIN_NAMESPACE -QList<QPlatformScreen *> QQnxScreen::ms_screens; -QList<QQnxWindow*> QQnxScreen::ms_childWindows; - QQnxScreen::QQnxScreen(screen_context_t screenContext, screen_display_t display, bool primaryScreen) : m_screenContext(screenContext), m_display(display), @@ -115,52 +113,7 @@ QQnxScreen::~QQnxScreen() #endif } -/* static */ -void QQnxScreen::createDisplays(screen_context_t context) -{ -#if defined(QQNXSCREEN_DEBUG) - qDebug() << Q_FUNC_INFO; -#endif - // Query number of displays - errno = 0; - int displayCount; - int result = screen_get_context_property_iv(context, SCREEN_PROPERTY_DISPLAY_COUNT, &displayCount); - if (result != 0) { - qFatal("QQnxScreen: failed to query display count, errno=%d", errno); - } - - // Get all displays - errno = 0; - screen_display_t *displays = (screen_display_t *)alloca(sizeof(screen_display_t) * displayCount); - result = screen_get_context_property_pv(context, SCREEN_PROPERTY_DISPLAYS, (void **)displays); - if (result != 0) { - qFatal("QQnxScreen: failed to query displays, errno=%d", errno); - } - - for (int i=0; i<displayCount; i++) { -#if defined(QQNXSCREEN_DEBUG) - qDebug() << "QQnxScreen::Creating screen for display " << i; -#endif - QQnxScreen *screen = new QQnxScreen(context, displays[i], i==0); - ms_screens.append(screen); - } -} - -/* static */ -void QQnxScreen::destroyDisplays() -{ -#if defined(QQNXSCREEN_DEBUG) - qDebug() << Q_FUNC_INFO; -#endif - qDeleteAll(ms_screens); - ms_screens.clear(); - - // We're not managing the child windows anymore so we need to clear the list. - ms_childWindows.clear(); -} - -/* static */ -int QQnxScreen::defaultDepth() +static int defaultDepth() { #if defined(QQNXSCREEN_DEBUG) qDebug() << Q_FUNC_INFO; @@ -187,6 +140,11 @@ QRect QQnxScreen::availableGeometry() const m_currentGeometry.width(), m_currentGeometry.height() - m_keyboardHeight); } +int QQnxScreen::depth() const +{ + return defaultDepth(); +} + /*! Check if the supplied angles are perpendicular to each other. */ @@ -234,17 +192,28 @@ void QQnxScreen::setRotation(int rotation) } } +QQnxWindow *QQnxScreen::findWindow(screen_window_t windowHandle) +{ + Q_FOREACH (QQnxWindow *window, m_childWindows) { + QQnxWindow * const result = window->findWindow(windowHandle); + if (result) + return result; + } + + return 0; +} + void QQnxScreen::addWindow(QQnxWindow *window) { #if defined(QQNXSCREEN_DEBUG) qDebug() << Q_FUNC_INFO << "window =" << window; #endif - if (ms_childWindows.contains(window)) + if (m_childWindows.contains(window)) return; - ms_childWindows.push_back(window); - QQnxScreen::updateHierarchy(); + m_childWindows.push_back(window); + updateHierarchy(); } void QQnxScreen::removeWindow(QQnxWindow *window) @@ -253,8 +222,8 @@ void QQnxScreen::removeWindow(QQnxWindow *window) qDebug() << Q_FUNC_INFO << "window =" << window; #endif - ms_childWindows.removeAll(window); - QQnxScreen::updateHierarchy(); + m_childWindows.removeAll(window); + updateHierarchy(); } void QQnxScreen::raiseWindow(QQnxWindow *window) @@ -264,8 +233,8 @@ void QQnxScreen::raiseWindow(QQnxWindow *window) #endif removeWindow(window); - ms_childWindows.push_back(window); - QQnxScreen::updateHierarchy(); + m_childWindows.push_back(window); + updateHierarchy(); } void QQnxScreen::lowerWindow(QQnxWindow *window) @@ -275,8 +244,8 @@ void QQnxScreen::lowerWindow(QQnxWindow *window) #endif removeWindow(window); - ms_childWindows.push_front(window); - QQnxScreen::updateHierarchy(); + m_childWindows.push_front(window); + updateHierarchy(); } void QQnxScreen::updateHierarchy() @@ -285,15 +254,15 @@ void QQnxScreen::updateHierarchy() qDebug() << Q_FUNC_INFO; #endif - QList<QQnxWindow*>::iterator it; + QList<QQnxWindow*>::const_iterator it; int topZorder = 1; // root window is z-order 0, all "top" level windows are "above" it - for (it = ms_childWindows.begin(); it != ms_childWindows.end(); it++) + for (it = m_childWindows.constBegin(); it != m_childWindows.constEnd(); ++it) (*it)->updateZorder(topZorder); // After a hierarchy update, we need to force a flush on all screens. // Right now, all screens share a context. - screen_flush_context( primaryDisplay()->m_screenContext, 0 ); + screen_flush_context( m_screenContext, 0 ); } void QQnxScreen::onWindowPost(QQnxWindow *window) |