Coverage Report

Created: 2026-02-10 07:39

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