Remove BlackBerry PlayBook support.
Reasons: - the PlayBook NDK is old and its compiler does not keep up with newest C++11 improvements inside Qt code. - the PlayBook NDK diverges considerably from the standard BB10 NDK, making it non-trivial to keep a common codebase. - It's a defunct platform. - Maintenance time is limited. [ChangeLog][Platform Specific Changes] Removed BlackBerry PlayBook support. Change-Id: Ia338aff55f4e4b747ebdecb0e1463a369a656c03 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Bernd Weimer <bernd.weimer@pelagicore.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
This commit is contained in:
parent
d3893d8054
commit
7e2ef1fd21
@ -1,8 +0,0 @@
|
||||
#
|
||||
# qmake configuration for the Blackberry Playbook armle-v7
|
||||
#
|
||||
|
||||
include(../../blackberry-armle-v7-qcc/qmake.conf)
|
||||
|
||||
DEFINES += Q_OS_BLACKBERRY_TABLET
|
||||
CONFIG += blackberry-playbook
|
@ -1,34 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Klarälvdalens Datakonsult AB <info@kdab.com>
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL21$
|
||||
** 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 http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://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 2.1 or version 3 as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
||||
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
||||
** following information to ensure the GNU Lesser General Public License
|
||||
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** As a special exception, The Qt Company gives you certain additional
|
||||
** rights. These rights are described in The Qt Company LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "../../blackberry-armle-v7-qcc/qplatformdefs.h"
|
@ -1,8 +0,0 @@
|
||||
#
|
||||
# qmake configuration for the Blackberry Playbook x86
|
||||
#
|
||||
|
||||
include(../../blackberry-x86-qcc/qmake.conf)
|
||||
|
||||
DEFINES += Q_OS_BLACKBERRY_TABLET
|
||||
CONFIG += blackberry-playbook
|
@ -1,34 +0,0 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2013 Klarälvdalens Datakonsult AB <info@kdab.com>
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL21$
|
||||
** 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 http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://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 2.1 or version 3 as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
||||
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
||||
** following information to ensure the GNU Lesser General Public License
|
||||
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** As a special exception, The Qt Company gives you certain additional
|
||||
** rights. These rights are described in The Qt Company LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "../../blackberry-x86-qcc/qplatformdefs.h"
|
@ -175,7 +175,7 @@ blackberry {
|
||||
kernel/qeventdispatcher_blackberry_p.h
|
||||
}
|
||||
|
||||
qqnx_pps:!blackberry-playbook {
|
||||
qqnx_pps {
|
||||
LIBS_PRIVATE += -lpps
|
||||
SOURCES += \
|
||||
kernel/qppsattribute.cpp \
|
||||
|
@ -205,13 +205,6 @@ QT_BEGIN_NAMESPACE
|
||||
#ifdef Q_OS_BLACKBERRY
|
||||
static const char cellularStatusFile[] = "/pps/services/radioctrl/modem0/status_public";
|
||||
|
||||
#ifdef Q_OS_BLACKBERRY_TABLET
|
||||
static bool pps_decoder_is_integer(pps_decoder_t *decoder, const char *name)
|
||||
{
|
||||
return (pps_decoder_type(decoder, name) == PPS_TYPE_NUMBER);
|
||||
}
|
||||
#endif // Q_OS_BLACKBERRY_TABLET
|
||||
|
||||
static QNetworkConfiguration::BearerType cellularStatus()
|
||||
{
|
||||
QNetworkConfiguration::BearerType ret = QNetworkConfiguration::BearerUnknown;
|
||||
|
@ -2668,7 +2668,6 @@ QList<QByteArray> QSslSocketPrivate::unixRootCertDirectories()
|
||||
<< "/usr/local/ssl/" // Normal OpenSSL Tarball
|
||||
<< "/var/ssl/certs/" // AIX
|
||||
<< "/usr/local/ssl/certs/" // Solaris
|
||||
<< "/var/certmgr/web/user_trusted/" // BlackBerry Playbook
|
||||
<< "/etc/openssl/certs/" // BlackBerry
|
||||
<< "/opt/openssl/certs/"; // HP-UX
|
||||
}
|
||||
|
@ -105,17 +105,13 @@ CONFIG(blackberry) {
|
||||
LIBS += -lbps
|
||||
}
|
||||
|
||||
CONFIG(blackberry-playbook) {
|
||||
SOURCES += qqnxfiledialoghelper_playbook.cpp
|
||||
} else {
|
||||
CONFIG(blackberry) {
|
||||
SOURCES += qqnxfiledialoghelper_bb10.cpp \
|
||||
qqnxfilepicker.cpp \
|
||||
qqnxnavigatorcover.cpp
|
||||
CONFIG(blackberry) {
|
||||
SOURCES += qqnxfiledialoghelper_bb10.cpp \
|
||||
qqnxfilepicker.cpp \
|
||||
qqnxnavigatorcover.cpp
|
||||
|
||||
HEADERS += qqnxfilepicker.h \
|
||||
qqnxnavigatorcover.h
|
||||
}
|
||||
HEADERS += qqnxfilepicker.h \
|
||||
qqnxnavigatorcover.h
|
||||
}
|
||||
|
||||
CONFIG(qqnx_pps) {
|
||||
|
@ -119,24 +119,6 @@ void QQnxBpsEventFilter::unregisterForScreenEvents(QQnxScreen *screen)
|
||||
qWarning("QQNX: failed to unregister for screen events on screen %p", screen->nativeContext());
|
||||
}
|
||||
|
||||
#if defined(Q_OS_BLACKBERRY_TABLET)
|
||||
void QQnxBpsEventFilter::registerForDialogEvents(QQnxFileDialogHelper *dialog)
|
||||
{
|
||||
if (dialog_request_events(0) != BPS_SUCCESS)
|
||||
qWarning("QQNX: failed to register for dialog events");
|
||||
dialog_instance_t nativeDialog = dialog->nativeDialog();
|
||||
if (!m_dialogMapper.contains(nativeDialog))
|
||||
m_dialogMapper.insert(nativeDialog, dialog);
|
||||
}
|
||||
|
||||
void QQnxBpsEventFilter::unregisterForDialogEvents(QQnxFileDialogHelper *dialog)
|
||||
{
|
||||
int count = m_dialogMapper.remove(dialog->nativeDialog());
|
||||
if (count == 0)
|
||||
qWarning("QQNX: attempting to unregister dialog that was not registered");
|
||||
}
|
||||
#endif // Q_OS_BLACKBERRY_TABLET
|
||||
|
||||
bool QQnxBpsEventFilter::nativeEventFilter(const QByteArray &eventType, void *message, long *result)
|
||||
{
|
||||
Q_UNUSED(eventType);
|
||||
@ -155,15 +137,6 @@ bool QQnxBpsEventFilter::nativeEventFilter(const QByteArray &eventType, void *me
|
||||
return m_screenEventHandler->handleEvent(screenEvent);
|
||||
}
|
||||
|
||||
#if defined(Q_OS_BLACKBERRY_TABLET)
|
||||
if (eventDomain == dialog_get_domain()) {
|
||||
dialog_instance_t nativeDialog = dialog_event_get_dialog_instance(event);
|
||||
QQnxFileDialogHelper *dialog = m_dialogMapper.value(nativeDialog, 0);
|
||||
if (dialog)
|
||||
return dialog->handleEvent(event);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (eventDomain == navigator_get_domain())
|
||||
return handleNavigatorEvent(event);
|
||||
|
||||
@ -218,14 +191,8 @@ bool QQnxBpsEventFilter::handleNavigatorEvent(bps_event_t *event)
|
||||
break;
|
||||
case NAVIGATOR_WINDOW_THUMBNAIL:
|
||||
m_navigatorEventHandler->handleWindowGroupStateChanged(id, Qt::WindowMinimized);
|
||||
#if defined(Q_OS_BLACKBERRY_TABLET)
|
||||
m_navigatorEventHandler->handleWindowGroupActivated(id);
|
||||
#endif
|
||||
break;
|
||||
case NAVIGATOR_WINDOW_INVISIBLE:
|
||||
#if defined(Q_OS_BLACKBERRY_TABLET)
|
||||
m_navigatorEventHandler->handleWindowGroupDeactivated(id);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -65,11 +65,6 @@ public:
|
||||
void registerForScreenEvents(QQnxScreen *screen);
|
||||
void unregisterForScreenEvents(QQnxScreen *screen);
|
||||
|
||||
#ifdef Q_OS_BLACKBERRY_TABLET
|
||||
void registerForDialogEvents(QQnxFileDialogHelper *dialog);
|
||||
void unregisterForDialogEvents(QQnxFileDialogHelper *dialog);
|
||||
#endif
|
||||
|
||||
private:
|
||||
bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) Q_DECL_OVERRIDE;
|
||||
|
||||
|
@ -41,13 +41,7 @@ QT_BEGIN_NAMESPACE
|
||||
|
||||
class QQnxIntegration;
|
||||
|
||||
#if defined(Q_OS_BLACKBERRY_TABLET)
|
||||
#include <bps/dialog.h>
|
||||
#define NativeDialogPtr dialog_instance_t
|
||||
#else
|
||||
class QQnxFilePicker;
|
||||
#define NativeDialogPtr QQnxFilePicker *
|
||||
#endif
|
||||
|
||||
class QQnxFileDialogHelper : public QPlatformFileDialogHelper
|
||||
{
|
||||
@ -56,10 +50,6 @@ public:
|
||||
explicit QQnxFileDialogHelper(const QQnxIntegration *);
|
||||
~QQnxFileDialogHelper();
|
||||
|
||||
#if defined(Q_OS_BLACKBERRY_TABLET)
|
||||
bool handleEvent(bps_event_t *event);
|
||||
#endif
|
||||
|
||||
void exec();
|
||||
|
||||
bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent);
|
||||
@ -74,29 +64,22 @@ public:
|
||||
void selectNameFilter(const QString &filter);
|
||||
QString selectedNameFilter() const;
|
||||
|
||||
NativeDialogPtr nativeDialog() const { return m_dialog; }
|
||||
QQnxFilePicker *nativeDialog() const { return m_dialog; }
|
||||
|
||||
Q_SIGNALS:
|
||||
void dialogClosed();
|
||||
|
||||
private Q_SLOTS:
|
||||
#if !defined(Q_OS_BLACKBERRY_TABLET)
|
||||
void emitSignals();
|
||||
#endif
|
||||
|
||||
private:
|
||||
void setNameFilter(const QString &filter);
|
||||
void setNameFilters(const QStringList &filters);
|
||||
|
||||
const QQnxIntegration *m_integration;
|
||||
NativeDialogPtr m_dialog;
|
||||
QQnxFilePicker *m_dialog;
|
||||
QFileDialogOptions::AcceptMode m_acceptMode;
|
||||
QString m_selectedFilter;
|
||||
|
||||
#if defined(Q_OS_BLACKBERRY_TABLET)
|
||||
QPlatformDialogHelper::DialogCode m_result;
|
||||
QList<QUrl> m_paths;
|
||||
#endif
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -1,312 +0,0 @@
|
||||
/***************************************************************************
|
||||
**
|
||||
** Copyright (C) 2012 Research In Motion
|
||||
** Contact: http://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the plugins of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:LGPL21$
|
||||
** 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 http://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at http://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 2.1 or version 3 as published by the Free
|
||||
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
||||
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
||||
** following information to ensure the GNU Lesser General Public License
|
||||
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** As a special exception, The Qt Company gives you certain additional
|
||||
** rights. These rights are described in The Qt Company LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "qqnxfiledialoghelper.h"
|
||||
|
||||
#include "qqnxbpseventfilter.h"
|
||||
#include "qqnxscreen.h"
|
||||
#include "qqnxintegration.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QEventLoop>
|
||||
#include <QScreen>
|
||||
#include <QTimer>
|
||||
#include <QWindow>
|
||||
|
||||
#if defined(QQNXFILEDIALOGHELPER_DEBUG)
|
||||
#define qFileDialogHelperDebug qDebug
|
||||
#else
|
||||
#define qFileDialogHelperDebug QT_NO_QDEBUG_MACRO
|
||||
#endif
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
QQnxFileDialogHelper::QQnxFileDialogHelper(const QQnxIntegration *integration)
|
||||
: QPlatformFileDialogHelper(),
|
||||
m_integration(integration),
|
||||
m_dialog(0),
|
||||
m_acceptMode(QFileDialogOptions::AcceptOpen),
|
||||
m_selectedFilter(),
|
||||
m_result(QPlatformDialogHelper::Rejected),
|
||||
m_paths()
|
||||
{
|
||||
}
|
||||
|
||||
QQnxFileDialogHelper::~QQnxFileDialogHelper()
|
||||
{
|
||||
if (m_dialog)
|
||||
dialog_destroy(m_dialog);
|
||||
}
|
||||
|
||||
bool QQnxFileDialogHelper::handleEvent(bps_event_t *event)
|
||||
{
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO;
|
||||
|
||||
// Check dialog event response type (OK vs CANCEL)
|
||||
// CANCEL => index = 0
|
||||
// OK => index = 1
|
||||
int index = dialog_event_get_selected_index(event);
|
||||
qFileDialogHelperDebug() << "Index =" << index;
|
||||
if (index == 1) {
|
||||
m_result = QPlatformDialogHelper::Accepted;
|
||||
|
||||
if (m_acceptMode == QFileDialogOptions::AcceptOpen) {
|
||||
// File open dialog
|
||||
|
||||
// ###TODO Check that this actually gets multiple paths and cleans up properly
|
||||
char **filePaths = 0;
|
||||
int pathCount = 0;
|
||||
int result = dialog_event_get_filebrowse_filepaths(event, &filePaths, &pathCount);
|
||||
if (result != BPS_SUCCESS) {
|
||||
qWarning() << "Could not get paths from native file dialog";
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < pathCount; ++i) {
|
||||
QString path = QFile::decodeName(filePaths[i]);
|
||||
m_paths.append(QUrl::fromLocalFile(path));
|
||||
qFileDialogHelperDebug() << "path =" << path;
|
||||
}
|
||||
|
||||
bps_free(filePaths);
|
||||
} else {
|
||||
// File save dialog
|
||||
const char *filePath = dialog_event_get_filesave_filepath(event);
|
||||
QString path = QFile::decodeName(filePath);
|
||||
qFileDialogHelperDebug() << "path =" << path;
|
||||
m_paths.append(QUrl::fromLocalFile(path));
|
||||
}
|
||||
} else { // Cancel
|
||||
m_result = QPlatformDialogHelper::Rejected;
|
||||
}
|
||||
|
||||
Q_EMIT dialogClosed();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void QQnxFileDialogHelper::exec()
|
||||
{
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO;
|
||||
|
||||
// Clear any previous results
|
||||
m_paths.clear();
|
||||
|
||||
QEventLoop loop;
|
||||
connect(this, SIGNAL(dialogClosed()), &loop, SLOT(quit()));
|
||||
loop.exec();
|
||||
|
||||
if (m_result == QPlatformDialogHelper::Accepted)
|
||||
Q_EMIT accept();
|
||||
else
|
||||
Q_EMIT reject();
|
||||
}
|
||||
|
||||
bool QQnxFileDialogHelper::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent)
|
||||
{
|
||||
Q_UNUSED(flags);
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO;
|
||||
|
||||
QQnxBpsEventFilter *eventFilter = m_integration->bpsEventFilter();
|
||||
// We *really* need the bps event filter ;)
|
||||
if (!eventFilter)
|
||||
return false;
|
||||
|
||||
// Native dialogs can only handle application modal use cases so far
|
||||
if (modality != Qt::ApplicationModal)
|
||||
return false;
|
||||
|
||||
// Tear down any existing dialog and start again as dialog mode may have changed
|
||||
if (m_dialog) {
|
||||
dialog_destroy(m_dialog);
|
||||
m_dialog = 0;
|
||||
}
|
||||
|
||||
// Create dialog
|
||||
const QSharedPointer<QFileDialogOptions> &opts = options();
|
||||
if (opts->acceptMode() == QFileDialogOptions::AcceptOpen) {
|
||||
if (dialog_create_filebrowse(&m_dialog) != BPS_SUCCESS) {
|
||||
qWarning("dialog_create_filebrowse failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Select one or many files?
|
||||
bool multiSelect = (opts->fileMode() == QFileDialogOptions::ExistingFiles);
|
||||
dialog_set_filebrowse_multiselect(m_dialog, multiSelect);
|
||||
|
||||
// Set the actual list of extensions
|
||||
if (!opts->nameFilters().isEmpty()) {
|
||||
qFileDialogHelperDebug() << "nameFilters =" << opts->nameFilters();
|
||||
setNameFilter(opts->nameFilters().first());
|
||||
} else {
|
||||
QString defaultNameFilter = QStringLiteral("*.*");
|
||||
setNameFilter(defaultNameFilter);
|
||||
}
|
||||
} else {
|
||||
if (dialog_create_filesave(&m_dialog) != BPS_SUCCESS) {
|
||||
qWarning("dialog_create_filesave failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Maybe pre-select a filename
|
||||
if (!opts->initiallySelectedFiles().isEmpty()) {
|
||||
QString fileName = opts->initiallySelectedFiles().first().toLocalFile();
|
||||
dialog_set_filesave_filename(m_dialog, QFile::encodeName(fileName).constData());
|
||||
}
|
||||
|
||||
// Add OK and Cancel buttons. We add the buttons in the order "CANCEL" followed by "OK
|
||||
// such that they have indices matching the buttons on the file open dialog which
|
||||
// is automatically populated with buttons.
|
||||
if (dialog_add_button(m_dialog, tr("CANCEL").toLocal8Bit().constData(), true, 0, true) != BPS_SUCCESS) {
|
||||
qWarning("dialog_add_button failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (dialog_add_button(m_dialog, tr("OK").toLocal8Bit().constData(), true, 0, true) != BPS_SUCCESS) {
|
||||
qWarning("dialog_add_button failed");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Cache the accept mode so we know which functions to use to get the results back
|
||||
m_acceptMode = opts->acceptMode();
|
||||
|
||||
// Set the libscreen window group and common properties
|
||||
|
||||
QQnxScreen *nativeScreen = parent ? static_cast<QQnxScreen *>(parent->screen()->handle()) :
|
||||
m_integration->primaryDisplay();
|
||||
Q_ASSERT(nativeScreen);
|
||||
dialog_set_group_id(m_dialog, nativeScreen->windowGroupName());
|
||||
dialog_set_title_text(m_dialog, opts->windowTitle().toLocal8Bit().constData());
|
||||
|
||||
// Register ourselves for dialog domain events from bps
|
||||
eventFilter->registerForDialogEvents(this);
|
||||
|
||||
// Show the dialog
|
||||
dialog_show(m_dialog);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void QQnxFileDialogHelper::hide()
|
||||
{
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO;
|
||||
if (!m_dialog)
|
||||
return;
|
||||
dialog_cancel(m_dialog);
|
||||
}
|
||||
|
||||
bool QQnxFileDialogHelper::defaultNameFilterDisables() const
|
||||
{
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO;
|
||||
return false;
|
||||
}
|
||||
|
||||
void QQnxFileDialogHelper::setDirectory(const QUrl &directory)
|
||||
{
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO << "directory =" << directory;
|
||||
// No native API for setting the directory(!). The best we can do is to
|
||||
// set it as the file name but even then only with a file save dialog.
|
||||
if (m_dialog && m_acceptMode == QFileDialogOptions::AcceptSave)
|
||||
dialog_set_filesave_filename(m_dialog, QFile::encodeName(directory.toLocalFile()).constData());
|
||||
}
|
||||
|
||||
QUrl QQnxFileDialogHelper::directory() const
|
||||
{
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO;
|
||||
return m_paths.first();
|
||||
}
|
||||
|
||||
void QQnxFileDialogHelper::selectFile(const QUrl &fileName)
|
||||
{
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO << "filename =" << fileName;
|
||||
if (m_dialog && m_acceptMode == QFileDialogOptions::AcceptSave)
|
||||
dialog_set_filesave_filename(m_dialog, QFile::encodeName(fileName.toLocalFile()).constData());
|
||||
}
|
||||
|
||||
QList<QUrl> QQnxFileDialogHelper::selectedFiles() const
|
||||
{
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO;
|
||||
return m_paths;
|
||||
}
|
||||
|
||||
void QQnxFileDialogHelper::setFilter()
|
||||
{
|
||||
// No native api to support setting a filter from QDir::Filters
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO;
|
||||
}
|
||||
|
||||
void QQnxFileDialogHelper::selectNameFilter(const QString &filter)
|
||||
{
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO << "filter =" << filter;
|
||||
setNameFilter(filter);
|
||||
}
|
||||
|
||||
QString QQnxFileDialogHelper::selectedNameFilter() const
|
||||
{
|
||||
// For now there is no way for the user to change the selected filter
|
||||
// so this just reflects what the developer has set programmatically.
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO;
|
||||
return m_selectedFilter;
|
||||
}
|
||||
|
||||
void QQnxFileDialogHelper::setNameFilter(const QString &filter)
|
||||
{
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO << "filter =" << filter;
|
||||
setNameFilters(QPlatformFileDialogHelper::cleanFilterList(filter));
|
||||
}
|
||||
|
||||
void QQnxFileDialogHelper::setNameFilters(const QStringList &filters)
|
||||
{
|
||||
qFileDialogHelperDebug() << Q_FUNC_INFO << "filters =" << filters;
|
||||
|
||||
Q_ASSERT(!filters.isEmpty());
|
||||
|
||||
char **globs = new char*[filters.size()];
|
||||
for (int i = 0; i < filters.size(); ++i) {
|
||||
QByteArray glob = filters.at(i).toLocal8Bit();
|
||||
globs[i] = new char[glob.length()];
|
||||
strcpy(globs[i], glob.constData());
|
||||
}
|
||||
|
||||
// Set the filters
|
||||
dialog_set_filebrowse_filter(m_dialog, const_cast<const char**>(globs), filters.size());
|
||||
m_selectedFilter = filters.first();
|
||||
|
||||
// Cleanup
|
||||
for (int i = 0; i < filters.size(); ++i)
|
||||
delete[] globs[i];
|
||||
delete[] globs;
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
@ -127,13 +127,7 @@ void QQnxFilePicker::open()
|
||||
map[QStringLiteral("Filter")] = m_filters.join(QLatin1Char(';'));
|
||||
|
||||
QByteArray ppsData;
|
||||
#if defined(Q_OS_BLACKBERRY_TABLET)
|
||||
QJsonDocument document;
|
||||
document.setObject(QJsonObject::fromVariantMap(map));
|
||||
ppsData = document.toJson(QJsonDocument::Compact);
|
||||
#else
|
||||
ppsData = QPpsObject::encode(map);
|
||||
#endif
|
||||
|
||||
errorCode = navigator_invoke_invocation_set_data(m_invocationHandle, ppsData.constData(), ppsData.size());
|
||||
if (errorCode != BPS_SUCCESS) {
|
||||
|
@ -585,7 +585,7 @@ void QQnxScreen::addWindow(QQnxWindow *window)
|
||||
m_childWindows.push_back(window);
|
||||
updateHierarchy();
|
||||
} else {
|
||||
#if defined(Q_OS_BLACKBERRY) && !defined(Q_OS_BLACKBERRY_TABLET)
|
||||
#if defined(Q_OS_BLACKBERRY)
|
||||
m_coverWindow = window;
|
||||
#endif
|
||||
}
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include <bps/event.h>
|
||||
#include <bps/locale.h>
|
||||
#include <bps/virtualkeyboard.h>
|
||||
#if defined(Q_OS_BLACKBERRY) && !defined(Q_OS_BLACKBERRY_TABLET)
|
||||
#if defined(Q_OS_BLACKBERRY)
|
||||
#include <bbndk.h>
|
||||
#endif
|
||||
|
||||
@ -118,21 +118,17 @@ virtualkeyboard_layout_t QQnxVirtualKeyboardBps::keyboardLayout() const
|
||||
return VIRTUALKEYBOARD_LAYOUT_WEB;
|
||||
case NumPunc:
|
||||
return VIRTUALKEYBOARD_LAYOUT_NUM_PUNC;
|
||||
#ifndef Q_OS_BLACKBERRY_TABLET
|
||||
case Number:
|
||||
return VIRTUALKEYBOARD_LAYOUT_NUMBER;
|
||||
#endif
|
||||
case Symbol:
|
||||
return VIRTUALKEYBOARD_LAYOUT_SYMBOL;
|
||||
case Phone:
|
||||
return VIRTUALKEYBOARD_LAYOUT_PHONE;
|
||||
case Pin:
|
||||
return VIRTUALKEYBOARD_LAYOUT_PIN;
|
||||
#ifndef Q_OS_BLACKBERRY_TABLET
|
||||
case Password:
|
||||
return VIRTUALKEYBOARD_LAYOUT_PASSWORD;
|
||||
#endif
|
||||
#if defined(Q_OS_BLACKBERRY) && !defined(Q_OS_BLACKBERRY_TABLET)
|
||||
#if defined(Q_OS_BLACKBERRY)
|
||||
#if BBNDK_VERSION_AT_LEAST(10, 2, 1)
|
||||
case Alphanumeric:
|
||||
return VIRTUALKEYBOARD_LAYOUT_ALPHANUMERIC;
|
||||
|
@ -48,9 +48,7 @@
|
||||
#include <QtCore/QDebug>
|
||||
|
||||
#if defined(Q_OS_BLACKBERRY)
|
||||
#if !defined(Q_OS_BLACKBERRY_TABLET)
|
||||
#include "qqnxnavigatorcover.h"
|
||||
#endif
|
||||
#include <sys/pps.h>
|
||||
#include <bps/navigator.h>
|
||||
#endif
|
||||
@ -635,7 +633,7 @@ QQnxWindow *QQnxWindow::findWindow(screen_window_t windowHandle)
|
||||
|
||||
void QQnxWindow::minimize()
|
||||
{
|
||||
#if defined(Q_OS_BLACKBERRY) && !defined(Q_OS_BLACKBERRY_TABLET)
|
||||
#if defined(Q_OS_BLACKBERRY)
|
||||
qWindowDebug() << Q_FUNC_INFO;
|
||||
|
||||
pps_encoder_t encoder;
|
||||
@ -689,7 +687,7 @@ void QQnxWindow::initWindow()
|
||||
setScreen(platformScreen);
|
||||
|
||||
if (window()->type() == Qt::CoverWindow) {
|
||||
#if defined(Q_OS_BLACKBERRY) && !defined(Q_OS_BLACKBERRY_TABLET)
|
||||
#if defined(Q_OS_BLACKBERRY)
|
||||
if (platformScreen->rootWindow()) {
|
||||
screen_set_window_property_pv(m_screen->rootWindow()->nativeHandle(),
|
||||
SCREEN_PROPERTY_ALTERNATE_WINDOW, (void**)&m_window);
|
||||
|
@ -1498,8 +1498,7 @@ void tst_QWidget::mapFromAndTo()
|
||||
subWindow2->setGeometry(75, 75, 100, 100);
|
||||
subSubWindow->setGeometry(10, 10, 10, 10);
|
||||
|
||||
#if !defined(Q_OS_WINCE) && !defined(Q_OS_QNX) \
|
||||
|| (defined(Q_OS_BLACKBERRY) && !defined(Q_OS_BLACKBERRY_TABLET))
|
||||
#if !defined(Q_OS_WINCE) && !defined(Q_OS_QNX) || defined(Q_OS_BLACKBERRY)
|
||||
//update visibility
|
||||
if (windowMinimized) {
|
||||
if (!windowHidden) {
|
||||
@ -7342,7 +7341,7 @@ void tst_QWidget::updateWhileMinimized()
|
||||
{
|
||||
if (m_platform == QStringLiteral("wayland"))
|
||||
QSKIP("Wayland: This fails. Figure out why.");
|
||||
#if defined(Q_OS_QNX) && (!defined(Q_OS_BLACKBERRY) || defined(Q_OS_BLACKBERRY_TABLET))
|
||||
#if defined(Q_OS_QNX) && !defined(Q_OS_BLACKBERRY)
|
||||
QSKIP("Platform does not support showMinimized()");
|
||||
#endif
|
||||
UpdateWidget widget;
|
||||
@ -7897,7 +7896,7 @@ void tst_QWidget::doubleRepaint()
|
||||
// Minmize: Should not trigger a repaint.
|
||||
widget.showMinimized();
|
||||
QTest::qWait(10);
|
||||
#if defined(Q_OS_QNX) && (!defined(Q_OS_BLACKBERRY) || defined(Q_OS_BLACKBERRY_TABLET))
|
||||
#if defined(Q_OS_QNX) && !defined(Q_OS_BLACKBERRY)
|
||||
QEXPECT_FAIL("", "Platform does not support showMinimized()", Continue);
|
||||
#endif
|
||||
QCOMPARE(widget.numPaintEvents, 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user