diff options
Diffstat (limited to 'src/plugins/platforms/android/qandroidplatformfiledialoghelper.h')
-rw-r--r-- | src/plugins/platforms/android/qandroidplatformfiledialoghelper.h | 80 |
1 files changed, 29 insertions, 51 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformfiledialoghelper.h b/src/plugins/platforms/android/qandroidplatformfiledialoghelper.h index e445aa2fef..156eda9142 100644 --- a/src/plugins/platforms/android/qandroidplatformfiledialoghelper.h +++ b/src/plugins/platforms/android/qandroidplatformfiledialoghelper.h @@ -1,48 +1,16 @@ -/**************************************************************************** -** -** Copyright (C) 2019 Klaralvdalens Datakonsult AB (KDAB) -** Contact: https://www.qt.io/licensing/ -** -** 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 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) 2019 Klaralvdalens Datakonsult AB (KDAB) +// Copyright (C) 2021 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 #ifndef QANDROIDPLATFORMFILEDIALOGHELPER_H #define QANDROIDPLATFORMFILEDIALOGHELPER_H #include <jni.h> -#include <qpa/qplatformdialoghelper.h> + +#include <QEventLoop> +#include <QtCore/QJniObject> #include <QtCore/private/qjnihelpers_p.h> +#include <qpa/qplatformdialoghelper.h> QT_BEGIN_NAMESPACE @@ -54,25 +22,35 @@ class QAndroidPlatformFileDialogHelper: public QPlatformFileDialogHelper, public public: QAndroidPlatformFileDialogHelper(); - void exec() override; - bool show(Qt::WindowFlags windowFlags, - Qt::WindowModality windowModality, - QWindow *parent) override; + void exec() override; + bool show(Qt::WindowFlags windowFlags, Qt::WindowModality windowModality, QWindow *parent) override; void hide() override; - QString selectedNameFilter() const override; - void selectNameFilter(const QString &filter) override; - void setFilter() override; - QList<QUrl> selectedFiles() const override; - void selectFile(const QUrl &file) override; - QUrl directory() const override; + QString selectedNameFilter() const override { return QString(); } + void selectNameFilter(const QString &) override {} + void setFilter() override {} + QList<QUrl> selectedFiles() const override { return m_selectedFile; } + void selectFile(const QUrl &) override {} + QUrl directory() const override { return m_directory; } void setDirectory(const QUrl &directory) override; - bool defaultNameFilterDisables() const override; + bool defaultNameFilterDisables() const override { return false; } bool handleActivityResult(jint requestCode, jint resultCode, jobject data) override; private: - QUrl m_selectedFile; + QJniObject getFileDialogIntent(const QString &intentType); + void takePersistableUriPermission(const QJniObject &uri); + void setInitialFileName(const QString &title); + void setInitialDirectoryUri(const QString &directory); + void setOpenableCategory(); + void setAllowMultipleSelections(bool allowMultiple); + void setMimeTypes(); + + QEventLoop m_eventLoop; + QList<QUrl> m_selectedFile; + QUrl m_directory; + QJniObject m_intent; + const QJniObject m_activity; }; } |