qimagepixmapcleanuphooks.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/gui/image/qimagepixmapcleanuphooks.cpp
Source codeSwitch to Preprocessed file
LineSourceCount
1/****************************************************************************-
2**-
3** Copyright (C) 2016 The Qt Company Ltd.-
4** Contact: https://www.qt.io/licensing/-
5**-
6** This file is part of the QtGui module of the Qt Toolkit.-
7**-
8** $QT_BEGIN_LICENSE:LGPL$-
9** Commercial License Usage-
10** Licensees holding valid commercial Qt licenses may use this file in-
11** accordance with the commercial license agreement provided with the-
12** Software or, alternatively, in accordance with the terms contained in-
13** a written agreement between you and The Qt Company. For licensing terms-
14** and conditions see https://www.qt.io/terms-conditions. For further-
15** information use the contact form at https://www.qt.io/contact-us.-
16**-
17** GNU Lesser General Public License Usage-
18** Alternatively, this file may be used under the terms of the GNU Lesser-
19** General Public License version 3 as published by the Free Software-
20** Foundation and appearing in the file LICENSE.LGPL3 included in the-
21** packaging of this file. Please review the following information to-
22** ensure the GNU Lesser General Public License version 3 requirements-
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.-
24**-
25** GNU General Public License Usage-
26** Alternatively, this file may be used under the terms of the GNU-
27** General Public License version 2.0 or (at your option) the GNU General-
28** Public license version 3 or any later version approved by the KDE Free-
29** Qt Foundation. The licenses are as published by the Free Software-
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3-
31** included in the packaging of this file. Please review the following-
32** information to ensure the GNU General Public License requirements will-
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and-
34** https://www.gnu.org/licenses/gpl-3.0.html.-
35**-
36** $QT_END_LICENSE$-
37**-
38****************************************************************************/-
39-
40#include "qimagepixmapcleanuphooks_p.h"-
41#include <qpa/qplatformpixmap.h>-
42#include "private/qimage_p.h"-
43-
44-
45QT_BEGIN_NAMESPACE-
46-
47Q_GLOBAL_STATIC(QImagePixmapCleanupHooks, qt_image_and_pixmap_cleanup_hooks)
never executed: end of block
never executed: guard.store(QtGlobalStatic::Destroyed);
never executed: return &holder.value;
guard.load() =...c::InitializedDescription
TRUEnever evaluated
FALSEnever evaluated
0
48-
49QImagePixmapCleanupHooks *QImagePixmapCleanupHooks::instance()-
50{-
51 return qt_image_and_pixmap_cleanup_hooks();
never executed: return qt_image_and_pixmap_cleanup_hooks();
0
52}-
53-
54void QImagePixmapCleanupHooks::addPlatformPixmapModificationHook(_qt_pixmap_cleanup_hook_pmd hook)-
55{-
56 pixmapModificationHooks.append(hook);-
57}
never executed: end of block
0
58-
59void QImagePixmapCleanupHooks::addPlatformPixmapDestructionHook(_qt_pixmap_cleanup_hook_pmd hook)-
60{-
61 pixmapDestructionHooks.append(hook);-
62}
never executed: end of block
0
63-
64-
65void QImagePixmapCleanupHooks::addImageHook(_qt_image_cleanup_hook_64 hook)-
66{-
67 imageHooks.append(hook);-
68}
never executed: end of block
0
69-
70void QImagePixmapCleanupHooks::removePlatformPixmapModificationHook(_qt_pixmap_cleanup_hook_pmd hook)-
71{-
72 pixmapModificationHooks.removeAll(hook);-
73}
never executed: end of block
0
74-
75void QImagePixmapCleanupHooks::removePlatformPixmapDestructionHook(_qt_pixmap_cleanup_hook_pmd hook)-
76{-
77 pixmapDestructionHooks.removeAll(hook);-
78}
never executed: end of block
0
79-
80void QImagePixmapCleanupHooks::removeImageHook(_qt_image_cleanup_hook_64 hook)-
81{-
82 imageHooks.removeAll(hook);-
83}
never executed: end of block
0
84-
85void QImagePixmapCleanupHooks::executePlatformPixmapModificationHooks(QPlatformPixmap* pmd)-
86{-
87 const QImagePixmapCleanupHooks *h = qt_image_and_pixmap_cleanup_hooks();-
88 // the global destructor for the pixmap and image hooks might have-
89 // been called already if the app is "leaking" global-
90 // pixmaps/images-
91 if (!h)
!hDescription
TRUEnever evaluated
FALSEnever evaluated
0
92 return;
never executed: return;
0
93 for (auto hook : h->pixmapModificationHooks)-
94 hook(pmd);
never executed: hook(pmd);
0
95}
never executed: end of block
0
96-
97void QImagePixmapCleanupHooks::executePlatformPixmapDestructionHooks(QPlatformPixmap* pmd)-
98{-
99 const QImagePixmapCleanupHooks *h = qt_image_and_pixmap_cleanup_hooks();-
100 // the global destructor for the pixmap and image hooks might have-
101 // been called already if the app is "leaking" global-
102 // pixmaps/images-
103 if (!h)
!hDescription
TRUEnever evaluated
FALSEnever evaluated
0
104 return;
never executed: return;
0
105 for (auto hook : h->pixmapDestructionHooks)-
106 hook(pmd);
never executed: hook(pmd);
0
107}
never executed: end of block
0
108-
109void QImagePixmapCleanupHooks::executeImageHooks(qint64 key)-
110{-
111 const QImagePixmapCleanupHooks *h = qt_image_and_pixmap_cleanup_hooks();-
112 // the global destructor for the pixmap and image hooks might have-
113 // been called already if the app is "leaking" global-
114 // pixmaps/images-
115 if (!h)
!hDescription
TRUEnever evaluated
FALSEnever evaluated
0
116 return;
never executed: return;
0
117 for (auto hook : h->imageHooks)-
118 hook(key);
never executed: hook(key);
0
119}
never executed: end of block
0
120-
121-
122void QImagePixmapCleanupHooks::enableCleanupHooks(QPlatformPixmap *handle)-
123{-
124 handle->is_cached = true;-
125}
never executed: end of block
0
126-
127void QImagePixmapCleanupHooks::enableCleanupHooks(const QPixmap &pixmap)-
128{-
129 enableCleanupHooks(const_cast<QPixmap &>(pixmap).data_ptr().data());-
130}
never executed: end of block
0
131-
132void QImagePixmapCleanupHooks::enableCleanupHooks(const QImage &image)-
133{-
134 const_cast<QImage &>(image).data_ptr()->is_cached = true;-
135}
never executed: end of block
0
136-
137bool QImagePixmapCleanupHooks::isImageCached(const QImage &image)-
138{-
139 return const_cast<QImage &>(image).data_ptr()->is_cached;
never executed: return const_cast<QImage &>(image).data_ptr()->is_cached;
0
140}-
141-
142bool QImagePixmapCleanupHooks::isPixmapCached(const QPixmap &pixmap)-
143{-
144 return const_cast<QPixmap&>(pixmap).data_ptr().data()->is_cached;
never executed: return const_cast<QPixmap&>(pixmap).data_ptr().data()->is_cached;
0
145}-
146-
147-
148-
149QT_END_NAMESPACE-
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9