2011-09-28 07:52:15 +00:00
|
|
|
/****************************************************************************
|
2012-01-24 07:03:14 +00:00
|
|
|
**
|
2013-01-02 11:13:29 +00:00
|
|
|
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
2012-09-19 12:28:29 +00:00
|
|
|
** Contact: http://www.qt-project.org/legal
|
2012-01-24 07:03:14 +00:00
|
|
|
**
|
|
|
|
** This file is part of the QtGui module of the Qt Toolkit.
|
|
|
|
**
|
|
|
|
** $QT_BEGIN_LICENSE:LGPL$
|
2012-09-19 12:28:29 +00:00
|
|
|
** 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.
|
|
|
|
**
|
2012-01-24 07:03:14 +00:00
|
|
|
** GNU Lesser General Public License Usage
|
2012-09-19 12:28:29 +00:00
|
|
|
** 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.
|
2012-01-24 07:03:14 +00:00
|
|
|
**
|
2012-09-19 12:28:29 +00:00
|
|
|
** In addition, as a special exception, Digia gives you certain additional
|
|
|
|
** rights. These rights are described in the Digia Qt LGPL Exception
|
2012-01-24 07:03:14 +00:00
|
|
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
|
|
|
**
|
|
|
|
** GNU General Public License Usage
|
2012-09-19 12:28:29 +00:00
|
|
|
** 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.
|
2012-01-24 07:03:14 +00:00
|
|
|
**
|
|
|
|
**
|
|
|
|
** $QT_END_LICENSE$
|
|
|
|
**
|
|
|
|
****************************************************************************/
|
2011-09-28 07:52:15 +00:00
|
|
|
|
Expose QPA API under qpa/*
The main reasons for doing this are:
1. _qpa.h end up in the master QtGui include file. QtGui is meant for
userland applications. qpa code is neither binary nor source compatible.
Inadvertant use of QPA api makes the user code binary-incompatible.
2. syncqt creates forwarding headers for non-private header files. This
gives people the impression that this is public API.
As discussed on the mailing list, even though QPA api is internal and subject
to change, it needs to treated differently from private headers since they
will be used by in-qtbase and out-of-qtbase plugins.
This commit does the following:
1. The _qpa in QPA header files is dropped.
2. syncqt now treats any file with qplatform prefix as a special file and
moves it to qpa/ directory. The recommended way of using QPA API in plugins
is: #include <qpa/qplatformfoo.h>. This allows the user include QPA API
from multiple modules (for example, qplatformfoo might be in QtPrintSupport)
3. The user needs to explicitly add QT += <module>-private to get access to
the qpa api.
4. Creates compat headers for the olden style qplatformfoo_qpa.h and QPlatformFoo
includes.
This commit does not change the cpp filenames. This requires a more careful
merging of existing non qpa cpp files and existing cpp files on a case by
case basis. This can be done at anytime.
The following files are not renamed as part of this changed but will be fixed
as part of a future change:
src/gui/kernel/qgenericpluginfactory_qpa.h
src/gui/kernel/qgenericplugin_qpa.h
src/gui/kernel/qwindowsysteminterface_qpa.h
files were renamed using
for x in `find . -name "qplatform*_qpa.h"`; do git mv $x "${x/_qpa.h/.h}"; done
for x in `find . -name "qplatform*_qpa_p.h"`; do git mv $x "${x/_qpa_p.h/_p.h}"; done
includes were renamed using script
for file in `find . -name "*.h" -or -name "*.cpp" -or -name "*.mm"`; do
sed -i -e 's,.*#.*include.*<\(Qt.*/\)\?\(QPlatform.*\)>,#include <qpa/\L\2.h>,g' \
-e 's,.*#.*include.*"\(Qt.*/\)\?\(QPlatform.*\)",#include <qpa/\L\2.h>,g' \
-e 's,.*#.*include.* "\(qplatform.*\)_qpa.h",#include <qpa/\L\1.h>,g' \
-e 's,.*#.*include.*"\(qplatform.*\)_qpa_p.h",#include <qpa/\L\1_p.h>,g' \
-e 's,.*#.*include.*<\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)>,#include <qpa/\2\3>,g' \
-e 's,.*#.*include.*"\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)",#include <qpa/\2\3>,g' \
$file
done
Change-Id: I04a350314a45746e3911f54b3b21ad03315afb67
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-04-26 23:33:35 +00:00
|
|
|
#include "qplatformdialoghelper.h"
|
2011-09-28 07:52:15 +00:00
|
|
|
|
2011-11-10 12:07:01 +00:00
|
|
|
#include <QtCore/QVariant>
|
2011-11-23 11:04:01 +00:00
|
|
|
#include <QtCore/QSharedData>
|
|
|
|
#include <QtCore/QSettings>
|
|
|
|
#include <QtCore/QHash>
|
|
|
|
#include <QtCore/QUrl>
|
|
|
|
#include <QtGui/QColor>
|
2011-11-10 12:07:01 +00:00
|
|
|
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
|
|
|
|
/*!
|
|
|
|
\class QPlatformDialogHelper
|
|
|
|
\since 5.0
|
|
|
|
\internal
|
2012-04-15 12:00:35 +00:00
|
|
|
\ingroup qpa
|
|
|
|
|
2011-11-10 12:07:01 +00:00
|
|
|
\brief The QPlatformDialogHelper class allows for platform-specific customization of dialogs.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
QPlatformDialogHelper::QPlatformDialogHelper()
|
2011-09-28 07:52:15 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QPlatformDialogHelper::~QPlatformDialogHelper()
|
|
|
|
{
|
|
|
|
}
|
2011-11-10 12:07:01 +00:00
|
|
|
|
|
|
|
QVariant QPlatformDialogHelper::styleHint(StyleHint hint) const
|
|
|
|
{
|
|
|
|
return QPlatformDialogHelper::defaultStyleHint(hint);
|
|
|
|
}
|
|
|
|
|
|
|
|
QVariant QPlatformDialogHelper::defaultStyleHint(QPlatformDialogHelper::StyleHint hint)
|
|
|
|
{
|
2013-08-22 12:25:46 +00:00
|
|
|
Q_UNUSED(hint);
|
2011-11-10 12:07:01 +00:00
|
|
|
return QVariant();
|
|
|
|
}
|
|
|
|
|
2011-11-23 11:04:01 +00:00
|
|
|
// Font dialog
|
|
|
|
|
|
|
|
class QFontDialogOptionsPrivate : public QSharedData
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
QFontDialogOptionsPrivate() : options(0) {}
|
|
|
|
|
|
|
|
QFontDialogOptions::FontDialogOptions options;
|
|
|
|
QString windowTitle;
|
|
|
|
};
|
|
|
|
|
|
|
|
QFontDialogOptions::QFontDialogOptions() : d(new QFontDialogOptionsPrivate)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QFontDialogOptions::QFontDialogOptions(const QFontDialogOptions &rhs) : d(rhs.d)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QFontDialogOptions &QFontDialogOptions::operator=(const QFontDialogOptions &rhs)
|
|
|
|
{
|
|
|
|
if (this != &rhs)
|
|
|
|
d = rhs.d;
|
|
|
|
return *this;
|
|
|
|
}
|
|
|
|
|
|
|
|
QFontDialogOptions::~QFontDialogOptions()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QString QFontDialogOptions::windowTitle() const
|
|
|
|
{
|
|
|
|
return d->windowTitle;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFontDialogOptions::setWindowTitle(const QString &title)
|
|
|
|
{
|
|
|
|
d->windowTitle = title;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFontDialogOptions::setOption(QFontDialogOptions::FontDialogOption option, bool on)
|
|
|
|
{
|
|
|
|
if (!(d->options & option) != !on)
|
|
|
|
setOptions(d->options ^ option);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool QFontDialogOptions::testOption(QFontDialogOptions::FontDialogOption option) const
|
|
|
|
{
|
|
|
|
return d->options & option;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFontDialogOptions::setOptions(FontDialogOptions options)
|
|
|
|
{
|
|
|
|
if (options != d->options)
|
|
|
|
d->options = options;
|
|
|
|
}
|
|
|
|
|
|
|
|
QFontDialogOptions::FontDialogOptions QFontDialogOptions::options() const
|
|
|
|
{
|
|
|
|
return d->options;
|
|
|
|
}
|
|
|
|
|
2012-04-15 12:00:35 +00:00
|
|
|
/*!
|
|
|
|
\class QPlatformFontDialogHelper
|
|
|
|
\since 5.0
|
|
|
|
\internal
|
|
|
|
\ingroup qpa
|
|
|
|
|
|
|
|
\brief The QPlatformFontDialogHelper class allows for platform-specific customization of font dialogs.
|
|
|
|
|
|
|
|
*/
|
2011-11-23 11:04:01 +00:00
|
|
|
const QSharedPointer<QFontDialogOptions> &QPlatformFontDialogHelper::options() const
|
|
|
|
{
|
|
|
|
return m_options;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QPlatformFontDialogHelper::setOptions(const QSharedPointer<QFontDialogOptions> &options)
|
|
|
|
{
|
|
|
|
m_options = options;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Color dialog
|
|
|
|
|
|
|
|
class QColorDialogStaticData
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
enum { CustomColorCount = 16, StandardColorCount = 6 * 8 };
|
|
|
|
|
|
|
|
QColorDialogStaticData();
|
|
|
|
inline void readSettings();
|
|
|
|
inline void writeSettings() const;
|
|
|
|
|
|
|
|
QRgb customRgb[CustomColorCount];
|
|
|
|
QRgb standardRgb[StandardColorCount];
|
|
|
|
bool customSet;
|
|
|
|
};
|
|
|
|
|
|
|
|
QColorDialogStaticData::QColorDialogStaticData() : customSet(false)
|
|
|
|
{
|
|
|
|
int i = 0;
|
|
|
|
for (int g = 0; g < 4; ++g)
|
|
|
|
for (int r = 0; r < 4; ++r)
|
|
|
|
for (int b = 0; b < 3; ++b)
|
|
|
|
standardRgb[i++] = qRgb(r * 255 / 3, g * 255 / 3, b * 255 / 2);
|
|
|
|
qFill(customRgb, customRgb + CustomColorCount, 0xffffffff);
|
|
|
|
readSettings();
|
|
|
|
}
|
|
|
|
|
|
|
|
void QColorDialogStaticData::readSettings()
|
|
|
|
{
|
|
|
|
#ifndef QT_NO_SETTINGS
|
2012-12-02 16:24:19 +00:00
|
|
|
const QSettings settings(QSettings::UserScope, QStringLiteral("QtProject"));
|
2011-11-23 11:04:01 +00:00
|
|
|
for (int i = 0; i < int(CustomColorCount); ++i) {
|
|
|
|
const QVariant v = settings.value(QStringLiteral("Qt/customColors/") + QString::number(i));
|
|
|
|
if (v.isValid())
|
|
|
|
customRgb[i] = v.toUInt();
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
void QColorDialogStaticData::writeSettings() const
|
|
|
|
{
|
|
|
|
#ifndef QT_NO_SETTINGS
|
|
|
|
if (!customSet) {
|
2012-12-02 16:24:19 +00:00
|
|
|
QSettings settings(QSettings::UserScope, QStringLiteral("QtProject"));
|
2011-11-23 11:04:01 +00:00
|
|
|
for (int i = 0; i < int(CustomColorCount); ++i)
|
|
|
|
settings.setValue(QStringLiteral("Qt/customColors/") + QString::number(i), customRgb[i]);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
Q_GLOBAL_STATIC(QColorDialogStaticData, qColorDialogStaticData)
|
|
|
|
|
|
|
|
class QColorDialogOptionsPrivate : public QSharedData
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
QColorDialogOptionsPrivate() : options(0) {}
|
|
|
|
// Write out settings around destruction of dialogs
|
|
|
|
~QColorDialogOptionsPrivate() { qColorDialogStaticData()->writeSettings(); }
|
|
|
|
|
|
|
|
QColorDialogOptions::ColorDialogOptions options;
|
|
|
|
QString windowTitle;
|
|
|
|
};
|
|
|
|
|
|
|
|
QColorDialogOptions::QColorDialogOptions() : d(new QColorDialogOptionsPrivate)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QColorDialogOptions::QColorDialogOptions(const QColorDialogOptions &rhs) : d(rhs.d)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QColorDialogOptions &QColorDialogOptions::operator=(const QColorDialogOptions &rhs)
|
|
|
|
{
|
|
|
|
if (this != &rhs)
|
|
|
|
d = rhs.d;
|
|
|
|
return *this;
|
|
|
|
}
|
|
|
|
|
|
|
|
QColorDialogOptions::~QColorDialogOptions()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QString QColorDialogOptions::windowTitle() const
|
|
|
|
{
|
|
|
|
return d->windowTitle;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QColorDialogOptions::setWindowTitle(const QString &title)
|
|
|
|
{
|
|
|
|
d->windowTitle = title;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QColorDialogOptions::setOption(QColorDialogOptions::ColorDialogOption option, bool on)
|
|
|
|
{
|
|
|
|
if (!(d->options & option) != !on)
|
|
|
|
setOptions(d->options ^ option);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool QColorDialogOptions::testOption(QColorDialogOptions::ColorDialogOption option) const
|
|
|
|
{
|
|
|
|
return d->options & option;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QColorDialogOptions::setOptions(ColorDialogOptions options)
|
|
|
|
{
|
|
|
|
if (options != d->options)
|
|
|
|
d->options = options;
|
|
|
|
}
|
|
|
|
|
|
|
|
QColorDialogOptions::ColorDialogOptions QColorDialogOptions::options() const
|
|
|
|
{
|
|
|
|
return d->options;
|
|
|
|
}
|
|
|
|
|
|
|
|
int QColorDialogOptions::customColorCount()
|
|
|
|
{
|
|
|
|
return QColorDialogStaticData::CustomColorCount;
|
|
|
|
}
|
|
|
|
|
|
|
|
QRgb QColorDialogOptions::customColor(int index)
|
|
|
|
{
|
|
|
|
if (uint(index) >= uint(QColorDialogStaticData::CustomColorCount))
|
|
|
|
return qRgb(255, 255, 255);
|
|
|
|
return qColorDialogStaticData()->customRgb[index];
|
|
|
|
}
|
|
|
|
|
|
|
|
QRgb *QColorDialogOptions::customColors()
|
|
|
|
{
|
|
|
|
return qColorDialogStaticData()->customRgb;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QColorDialogOptions::setCustomColor(int index, QRgb color)
|
|
|
|
{
|
|
|
|
if (uint(index) >= uint(QColorDialogStaticData::CustomColorCount))
|
|
|
|
return;
|
2012-08-02 20:06:22 +00:00
|
|
|
qColorDialogStaticData()->customSet = true;
|
2011-11-23 11:04:01 +00:00
|
|
|
qColorDialogStaticData()->customRgb[index] = color;
|
|
|
|
}
|
|
|
|
|
|
|
|
QRgb *QColorDialogOptions::standardColors()
|
|
|
|
{
|
|
|
|
return qColorDialogStaticData()->standardRgb;
|
|
|
|
}
|
|
|
|
|
|
|
|
QRgb QColorDialogOptions::standardColor(int index)
|
|
|
|
{
|
|
|
|
if (uint(index) >= uint(QColorDialogStaticData::StandardColorCount))
|
|
|
|
return qRgb(255, 255, 255);
|
|
|
|
return qColorDialogStaticData()->standardRgb[index];
|
|
|
|
}
|
|
|
|
|
|
|
|
void QColorDialogOptions::setStandardColor(int index, QRgb color)
|
|
|
|
{
|
|
|
|
if (uint(index) >= uint(QColorDialogStaticData::StandardColorCount))
|
|
|
|
return;
|
|
|
|
qColorDialogStaticData()->standardRgb[index] = color;
|
|
|
|
}
|
|
|
|
|
2012-04-15 12:00:35 +00:00
|
|
|
/*!
|
|
|
|
\class QPlatformColorDialogHelper
|
|
|
|
\since 5.0
|
|
|
|
\internal
|
|
|
|
\ingroup qpa
|
|
|
|
|
|
|
|
\brief The QPlatformColorDialogHelper class allows for platform-specific customization of color dialogs.
|
|
|
|
|
|
|
|
*/
|
2011-11-23 11:04:01 +00:00
|
|
|
const QSharedPointer<QColorDialogOptions> &QPlatformColorDialogHelper::options() const
|
|
|
|
{
|
|
|
|
return m_options;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QPlatformColorDialogHelper::setOptions(const QSharedPointer<QColorDialogOptions> &options)
|
|
|
|
{
|
|
|
|
m_options = options;
|
|
|
|
}
|
|
|
|
|
|
|
|
// File dialog
|
|
|
|
|
|
|
|
class QFileDialogOptionsPrivate : public QSharedData
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
QFileDialogOptionsPrivate() : options(0),
|
|
|
|
viewMode(QFileDialogOptions::Detail),
|
|
|
|
fileMode(QFileDialogOptions::AnyFile),
|
|
|
|
acceptMode(QFileDialogOptions::AcceptOpen),
|
|
|
|
filters(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs)
|
|
|
|
{}
|
|
|
|
|
|
|
|
QFileDialogOptions::FileDialogOptions options;
|
|
|
|
QString windowTitle;
|
|
|
|
|
|
|
|
QFileDialogOptions::ViewMode viewMode;
|
|
|
|
QFileDialogOptions::FileMode fileMode;
|
|
|
|
QFileDialogOptions::AcceptMode acceptMode;
|
|
|
|
QString labels[QFileDialogOptions::DialogLabelCount];
|
|
|
|
QDir::Filters filters;
|
|
|
|
QList<QUrl> sidebarUrls;
|
|
|
|
QStringList nameFilters;
|
2013-08-27 12:10:45 +00:00
|
|
|
QStringList mimeTypeFilters;
|
2011-11-23 11:04:01 +00:00
|
|
|
QString defaultSuffix;
|
|
|
|
QStringList history;
|
2013-05-15 14:22:39 +00:00
|
|
|
QUrl initialDirectory;
|
2011-11-23 11:04:01 +00:00
|
|
|
QString initiallySelectedNameFilter;
|
2013-05-15 14:22:39 +00:00
|
|
|
QList<QUrl> initiallySelectedFiles;
|
2011-11-23 11:04:01 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
QFileDialogOptions::QFileDialogOptions() : d(new QFileDialogOptionsPrivate)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QFileDialogOptions::QFileDialogOptions(const QFileDialogOptions &rhs) : d(rhs.d)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QFileDialogOptions &QFileDialogOptions::operator=(const QFileDialogOptions &rhs)
|
|
|
|
{
|
|
|
|
if (this != &rhs)
|
|
|
|
d = rhs.d;
|
|
|
|
return *this;
|
|
|
|
}
|
|
|
|
|
|
|
|
QFileDialogOptions::~QFileDialogOptions()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QString QFileDialogOptions::windowTitle() const
|
|
|
|
{
|
|
|
|
return d->windowTitle;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setWindowTitle(const QString &title)
|
|
|
|
{
|
|
|
|
d->windowTitle = title;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setOption(QFileDialogOptions::FileDialogOption option, bool on)
|
|
|
|
{
|
|
|
|
if (!(d->options & option) != !on)
|
|
|
|
setOptions(d->options ^ option);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool QFileDialogOptions::testOption(QFileDialogOptions::FileDialogOption option) const
|
|
|
|
{
|
|
|
|
return d->options & option;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setOptions(FileDialogOptions options)
|
|
|
|
{
|
|
|
|
if (options != d->options)
|
|
|
|
d->options = options;
|
|
|
|
}
|
|
|
|
|
|
|
|
QFileDialogOptions::FileDialogOptions QFileDialogOptions::options() const
|
|
|
|
{
|
|
|
|
return d->options;
|
|
|
|
}
|
|
|
|
|
|
|
|
QDir::Filters QFileDialogOptions::filter() const
|
|
|
|
{
|
|
|
|
return d->filters;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setFilter(QDir::Filters filters)
|
|
|
|
{
|
|
|
|
d->filters = filters;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setViewMode(QFileDialogOptions::ViewMode mode)
|
|
|
|
{
|
|
|
|
d->viewMode = mode;
|
|
|
|
}
|
|
|
|
|
|
|
|
QFileDialogOptions::ViewMode QFileDialogOptions::viewMode() const
|
|
|
|
{
|
|
|
|
return d->viewMode;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setFileMode(QFileDialogOptions::FileMode mode)
|
|
|
|
{
|
|
|
|
d->fileMode = mode;
|
|
|
|
}
|
|
|
|
|
|
|
|
QFileDialogOptions::FileMode QFileDialogOptions::fileMode() const
|
|
|
|
{
|
|
|
|
return d->fileMode;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setAcceptMode(QFileDialogOptions::AcceptMode mode)
|
|
|
|
{
|
|
|
|
d->acceptMode = mode;
|
|
|
|
}
|
|
|
|
|
|
|
|
QFileDialogOptions::AcceptMode QFileDialogOptions::acceptMode() const
|
|
|
|
{
|
|
|
|
return d->acceptMode;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setSidebarUrls(const QList<QUrl> &urls)
|
|
|
|
{
|
|
|
|
d->sidebarUrls = urls;
|
|
|
|
}
|
|
|
|
|
|
|
|
QList<QUrl> QFileDialogOptions::sidebarUrls() const
|
|
|
|
{
|
|
|
|
return d->sidebarUrls;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setNameFilters(const QStringList &filters)
|
|
|
|
{
|
|
|
|
d->nameFilters = filters;
|
|
|
|
}
|
|
|
|
|
|
|
|
QStringList QFileDialogOptions::nameFilters() const
|
|
|
|
{
|
|
|
|
return d->nameFilters;
|
|
|
|
}
|
|
|
|
|
2013-08-27 12:10:45 +00:00
|
|
|
void QFileDialogOptions::setMimeTypeFilters(const QStringList &filters)
|
|
|
|
{
|
|
|
|
d->mimeTypeFilters = filters;
|
|
|
|
}
|
|
|
|
|
|
|
|
QStringList QFileDialogOptions::mimeTypeFilters() const
|
|
|
|
{
|
|
|
|
return d->mimeTypeFilters;
|
|
|
|
}
|
|
|
|
|
2011-11-23 11:04:01 +00:00
|
|
|
void QFileDialogOptions::setDefaultSuffix(const QString &suffix)
|
|
|
|
{
|
|
|
|
d->defaultSuffix = suffix;
|
2013-04-23 11:48:49 +00:00
|
|
|
if (d->defaultSuffix.size() > 1 && d->defaultSuffix.startsWith(QLatin1Char('.')))
|
|
|
|
d->defaultSuffix.remove(0, 1); // Silently change ".txt" -> "txt".
|
2011-11-23 11:04:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
QString QFileDialogOptions::defaultSuffix() const
|
|
|
|
{
|
|
|
|
return d->defaultSuffix;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setHistory(const QStringList &paths)
|
|
|
|
{
|
|
|
|
d->history = paths;
|
|
|
|
}
|
|
|
|
|
|
|
|
QStringList QFileDialogOptions::history() const
|
|
|
|
{
|
|
|
|
return d->history;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setLabelText(QFileDialogOptions::DialogLabel label, const QString &text)
|
|
|
|
{
|
|
|
|
if (label >= 0 && label < DialogLabelCount)
|
|
|
|
d->labels[label] = text;
|
|
|
|
}
|
|
|
|
|
|
|
|
QString QFileDialogOptions::labelText(QFileDialogOptions::DialogLabel label) const
|
|
|
|
{
|
|
|
|
return (label >= 0 && label < DialogLabelCount) ? d->labels[label] : QString();
|
|
|
|
}
|
|
|
|
|
|
|
|
bool QFileDialogOptions::isLabelExplicitlySet(DialogLabel label)
|
|
|
|
{
|
|
|
|
return label >= 0 && label < DialogLabelCount && !d->labels[label].isEmpty();
|
|
|
|
}
|
|
|
|
|
2013-05-15 14:22:39 +00:00
|
|
|
QUrl QFileDialogOptions::initialDirectory() const
|
2011-11-23 11:04:01 +00:00
|
|
|
{
|
|
|
|
return d->initialDirectory;
|
|
|
|
}
|
|
|
|
|
2013-05-15 14:22:39 +00:00
|
|
|
void QFileDialogOptions::setInitialDirectory(const QUrl &directory)
|
2011-11-23 11:04:01 +00:00
|
|
|
{
|
|
|
|
d->initialDirectory = directory;
|
|
|
|
}
|
|
|
|
|
|
|
|
QString QFileDialogOptions::initiallySelectedNameFilter() const
|
|
|
|
{
|
|
|
|
return d->initiallySelectedNameFilter;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QFileDialogOptions::setInitiallySelectedNameFilter(const QString &filter)
|
|
|
|
{
|
|
|
|
d->initiallySelectedNameFilter = filter;
|
|
|
|
}
|
|
|
|
|
2013-05-15 14:22:39 +00:00
|
|
|
QList<QUrl> QFileDialogOptions::initiallySelectedFiles() const
|
2011-11-23 11:04:01 +00:00
|
|
|
{
|
|
|
|
return d->initiallySelectedFiles;
|
|
|
|
}
|
|
|
|
|
2013-05-15 14:22:39 +00:00
|
|
|
void QFileDialogOptions::setInitiallySelectedFiles(const QList<QUrl> &files)
|
2011-11-23 11:04:01 +00:00
|
|
|
{
|
|
|
|
d->initiallySelectedFiles = files;
|
|
|
|
}
|
|
|
|
|
2013-05-15 14:22:39 +00:00
|
|
|
bool QPlatformFileDialogHelper::isSupportedUrl(const QUrl &url) const
|
|
|
|
{
|
|
|
|
return url.isLocalFile();
|
|
|
|
}
|
|
|
|
|
2012-04-15 12:00:35 +00:00
|
|
|
/*!
|
|
|
|
\class QPlatformFileDialogHelper
|
|
|
|
\since 5.0
|
|
|
|
\internal
|
|
|
|
\ingroup qpa
|
|
|
|
|
|
|
|
\brief The QPlatformFileDialogHelper class allows for platform-specific customization of file dialogs.
|
|
|
|
|
|
|
|
*/
|
2011-11-23 11:04:01 +00:00
|
|
|
const QSharedPointer<QFileDialogOptions> &QPlatformFileDialogHelper::options() const
|
|
|
|
{
|
|
|
|
return m_options;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QPlatformFileDialogHelper::setOptions(const QSharedPointer<QFileDialogOptions> &options)
|
|
|
|
{
|
|
|
|
m_options = options;
|
|
|
|
}
|
|
|
|
|
2012-05-23 11:01:11 +00:00
|
|
|
const char *QPlatformFileDialogHelper::filterRegExp =
|
|
|
|
"^(.*)\\(([a-zA-Z0-9_.*? +;#\\-\\[\\]@\\{\\}/!<>\\$%&=^~:\\|]*)\\)$";
|
|
|
|
|
|
|
|
// Makes a list of filters from a normal filter string "Image Files (*.png *.jpg)"
|
|
|
|
QStringList QPlatformFileDialogHelper::cleanFilterList(const QString &filter)
|
|
|
|
{
|
|
|
|
QRegExp regexp(QString::fromLatin1(filterRegExp));
|
|
|
|
QString f = filter;
|
|
|
|
int i = regexp.indexIn(f);
|
|
|
|
if (i >= 0)
|
|
|
|
f = regexp.cap(2);
|
|
|
|
return f.split(QLatin1Char(' '), QString::SkipEmptyParts);
|
|
|
|
}
|
|
|
|
|
2011-11-10 12:07:01 +00:00
|
|
|
QT_END_NAMESPACE
|