1
/****************************************************************************
3
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
5
** This file is part of the gui module of the Qt Toolkit.
7
** This file may be distributed under the terms of the Q Public License
8
** as defined by Trolltech AS of Norway and appearing in the file
9
** LICENSE.QPL included in the packaging of this file.
11
** This file may be distributed and/or modified under the terms of the
12
** GNU General Public License version 2 as published by the Free Software
13
** Foundation and appearing in the file LICENSE.GPL included in the
14
** packaging of this file.
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
17
** information about Qt Commercial License Agreements.
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
21
** Contact info@trolltech.com if any conditions of this licensing are
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27
****************************************************************************/
29
#ifndef QCLIPBOARD_P_H
30
#define QCLIPBOARD_P_H
36
// This file is not part of the Qt API. It exists purely as an
37
// implementation detail. This header file may change from version to
38
// version without notice, or even be removed.
43
#include <private/qobject_p.h>
45
#include "qclipboard.h"
47
class QClipboardPrivate;
49
class QMimeDataWrapper : public QMimeSource
54
const char* format(int n) const;
55
QByteArray encodedData(const char*) const;
57
mutable QList<QByteArray> formats;
58
const QMimeData *data;
61
class QMimeSourceWrapper : public QMimeData
64
QMimeSourceWrapper(QClipboardPrivate *priv, QClipboard::Mode m);
65
~QMimeSourceWrapper();
67
bool hasFormat(const QString &mimetype) const;
68
QStringList formats() const;
71
QVariant retrieveData(const QString &mimetype, QVariant::Type) const;
74
QClipboard::Mode mode;
79
class QClipboardPrivate : public QObjectPrivate
82
QClipboardPrivate() : QObjectPrivate() {
83
compat_data[0] = compat_data[1] = 0;
84
wrapper[0] = new QMimeDataWrapper();
85
wrapper[1] = new QMimeDataWrapper();
87
~QClipboardPrivate() {
90
delete compat_data[0];
91
delete compat_data[1];
94
mutable QMimeDataWrapper *wrapper[2];
95
mutable QMimeSource *compat_data[2];
98
inline QMimeSourceWrapper::QMimeSourceWrapper(QClipboardPrivate *priv, QClipboard::Mode m)
103
source = d->compat_data[mode];
106
inline QMimeSourceWrapper::~QMimeSourceWrapper()
108
if (d->compat_data[mode] == source)
109
d->compat_data[mode] = 0;
113
#endif // QCLIPBOARD_P_H