diff options
author | Fabian Bumberger <fbumberger@rim.com> | 2014-01-17 20:45:57 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-28 19:32:53 +0100 |
commit | b8103a4e8174446584caf80c0bf1a006b25d9905 (patch) | |
tree | 465a99e8d15a6037e48dccbb7a7aba5530b332ea /src/plugins/platforms/qnx/qqnxglobal.cpp | |
parent | a4ff400e25c76a32ec8252285dda043f07b19c15 (diff) |
[QNX] Introduce proper screen error handling
This patch adds a new function which does the error handling for libscreen calls.
The patch introduces following changes:
- Libscreen errors will not crash (qFatal)the application any more but rather post a
warning message.
-With the "flush-screen-context" option the screen_context is always
flushed when a screen function is called. This enables better correlation between the
time an error happens and the time it is logged.
Change-Id: Ie2456e5b746dcf917d786f3b832847d2ebbe5f1e
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Roger Maclean <rmaclean@qnx.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxglobal.cpp')
-rw-r--r-- | src/plugins/platforms/qnx/qqnxglobal.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/plugins/platforms/qnx/qqnxglobal.cpp b/src/plugins/platforms/qnx/qqnxglobal.cpp new file mode 100644 index 0000000000..cef37af84e --- /dev/null +++ b/src/plugins/platforms/qnx/qqnxglobal.cpp @@ -0,0 +1,63 @@ +/*************************************************************************** +** +** Copyright (C) 2011 - 2014 BlackBerry Limited. All rights reserved. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the plugins of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include <errno.h> + +#include <QDebug> +#include "qqnxintegration.h" + +QT_BEGIN_NAMESPACE + +void qScreenCheckError(int rc, const char *funcInfo, const char *message, bool critical) +{ + if (!rc && (QQnxIntegration::options() & QQnxIntegration::AlwaysFlushScreenContext) + && QQnxIntegration::screenContext() != 0) { + rc = screen_flush_context(QQnxIntegration::screenContext(), 0); + } + + if (rc) { + if (critical) + qCritical("%s - Screen: %s - Error: %s (%i)", funcInfo, message, strerror(errno), errno); + else + qWarning("%s - Screen: %s - Error: %s (%i)", funcInfo, message, strerror(errno), errno); + } +} + +QT_END_NAMESPACE |