Coverage Report

Created: 2026-05-16 07:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/qtbase/src/gui/kernel/qplatformclipboard.cpp
Line
Count
Source
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
#include "qplatformclipboard.h"
5
6
#ifndef QT_NO_CLIPBOARD
7
8
#include <QtGui/private/qguiapplication_p.h>
9
#include <QtCore/qmimedata.h>
10
11
QT_BEGIN_NAMESPACE
12
13
class QClipboardData
14
{
15
public:
16
    QClipboardData();
17
   ~QClipboardData();
18
19
    void setSource(QMimeData* s)
20
0
    {
21
0
        if (s == src)
22
0
            return;
23
0
        delete src;
24
0
        src = s;
25
0
    }
26
    QMimeData* source()
27
0
        { return src; }
28
29
private:
30
    QMimeData* src;
31
};
32
33
QClipboardData::QClipboardData()
34
0
{
35
0
    src = nullptr;
36
0
}
37
38
QClipboardData::~QClipboardData()
39
0
{
40
0
    delete src;
41
0
}
42
43
Q_GLOBAL_STATIC(QClipboardData,q_clipboardData);
44
45
/*!
46
    \class QPlatformClipboard
47
    \since 5.0
48
    \internal
49
    \preliminary
50
    \ingroup qpa
51
52
    \brief The QPlatformClipboard class provides an abstraction for the system clipboard.
53
 */
54
55
QPlatformClipboard::~QPlatformClipboard()
56
0
{
57
58
0
}
59
60
QMimeData *QPlatformClipboard::mimeData(QClipboard::Mode mode)
61
0
{
62
    //we know its clipboard
63
0
    Q_UNUSED(mode);
64
0
    return q_clipboardData()->source();
65
0
}
66
67
void QPlatformClipboard::setMimeData(QMimeData *data, QClipboard::Mode mode)
68
0
{
69
    //we know its clipboard
70
0
    Q_UNUSED(mode);
71
0
    q_clipboardData()->setSource(data);
72
73
0
    emitChanged(mode);
74
0
}
75
76
bool QPlatformClipboard::supportsMode(QClipboard::Mode mode) const
77
0
{
78
0
    return mode == QClipboard::Clipboard;
79
0
}
80
81
bool QPlatformClipboard::ownsMode(QClipboard::Mode mode) const
82
0
{
83
0
    Q_UNUSED(mode);
84
0
    return false;
85
0
}
86
87
void QPlatformClipboard::emitChanged(QClipboard::Mode mode)
88
0
{
89
0
    if (!QGuiApplicationPrivate::is_app_closing) // QTBUG-39317, prevent emission when closing down.
90
0
        QGuiApplication::clipboard()->emitChanged(mode);
91
0
}
92
93
QT_END_NAMESPACE
94
95
#endif //QT_NO_CLIPBOARD