diff options
Diffstat (limited to 'src/gui/kernel/qplatformintegration.cpp')
-rw-r--r-- | src/gui/kernel/qplatformintegration.cpp | 93 |
1 files changed, 51 insertions, 42 deletions
diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp index c6382243b9..130b479c64 100644 --- a/src/gui/kernel/qplatformintegration.cpp +++ b/src/gui/kernel/qplatformintegration.cpp @@ -1,47 +1,12 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtGui module 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #include "qplatformintegration.h" #include <qpa/qplatformfontdatabase.h> #include <qpa/qplatformclipboard.h> #include <qpa/qplatformaccessibility.h> +#include <qpa/qplatformkeymapper.h> #include <qpa/qplatformtheme.h> #include <QtGui/private/qguiapplication_p.h> #include <QtGui/private/qpixmap_raster_p.h> @@ -187,7 +152,7 @@ QPlatformServices *QPlatformIntegration::services() const /*! \enum QPlatformIntegration::Capability - Capabilities are used to determing specific features of a platform integration + Capabilities are used to determine specific features of a platform integration \value ThreadedPixmaps The platform uses a pixmap implementation that is reentrant and can be used from multiple threads, like the raster paint engine and QImage based @@ -264,6 +229,11 @@ QPlatformServices *QPlatformIntegration::services() const \value ScreenWindowGrabbing The platform supports grabbing window on screen. On Wayland, this capability can be reported as \c false. The default implementation of hasCapability() returns \c true. + + \value BackingStoreStaticContents The platform backingstore supports static contents. + On resize of the backingstore the static contents region is provided, and the backing + store is expected to propagate the static content to the resized backing store, without + clients needing to repaint the static content region. */ /*! @@ -378,7 +348,22 @@ QPlatformInputContext *QPlatformIntegration::inputContext() const return nullptr; } -#ifndef QT_NO_ACCESSIBILITY +/*! + Accessor for the platform integration's key mapper. + + Default implementation returns a default QPlatformKeyMapper. + + \sa QPlatformKeyMapper +*/ +QPlatformKeyMapper *QPlatformIntegration::keyMapper() const +{ + static QPlatformKeyMapper *keyMapper = nullptr; + if (!keyMapper) + keyMapper = new QPlatformKeyMapper; + return keyMapper; +} + +#if QT_CONFIG(accessibility) /*! Returns the platforms accessibility. @@ -429,7 +414,7 @@ QVariant QPlatformIntegration::styleHint(StyleHint hint) const case UseRtlExtensions: return QVariant(false); case SetFocusOnTouchRelease: - return QVariant(false); + return QPlatformTheme::defaultThemeHint(QPlatformTheme::SetFocusOnTouchRelease); case MousePressAndHoldInterval: return QPlatformTheme::defaultThemeHint(QPlatformTheme::MousePressAndHoldInterval); case TabFocusBehavior: @@ -444,6 +429,16 @@ QVariant QPlatformIntegration::styleHint(StyleHint hint) const return QPlatformTheme::defaultThemeHint(QPlatformTheme::WheelScrollLines); case MouseQuickSelectionThreshold: return QPlatformTheme::defaultThemeHint(QPlatformTheme::MouseQuickSelectionThreshold); + case MouseDoubleClickDistance: + return QPlatformTheme::defaultThemeHint(QPlatformTheme::MouseDoubleClickDistance); + case FlickStartDistance: + return QPlatformTheme::defaultThemeHint(QPlatformTheme::FlickStartDistance); + case FlickMaximumVelocity: + return QPlatformTheme::defaultThemeHint(QPlatformTheme::FlickMaximumVelocity); + case FlickDeceleration: + return QPlatformTheme::defaultThemeHint(QPlatformTheme::FlickDeceleration); + case UnderlineShortcut: + return true; } return 0; @@ -597,7 +592,21 @@ void QPlatformIntegration::setApplicationIcon(const QIcon &icon) const Q_UNUSED(icon); } -#if QT_CONFIG(vulkan) || defined(Q_CLANG_QDOC) +/*! + \since 6.5 + + Should set the application's badge to \a number. + + If the number is 0 the badge should be cleared. + + \sa QGuiApplication::setBadge() +*/ +void QPlatformIntegration::setApplicationBadge(qint64 number) +{ + Q_UNUSED(number); +} + +#if QT_CONFIG(vulkan) || defined(Q_QDOC) /*! Factory function for QPlatformVulkanInstance. The \a instance parameter is a |