QSkinny 0.8.0
C++/Qt UI toolkit
Loading...
Searching...
No Matches
QskSetup.cpp
1/******************************************************************************
2 * QSkinny - Copyright (C) The authors
3 * SPDX-License-Identifier: BSD-3-Clause
4 *****************************************************************************/
5
6#include "QskSetup.h"
7
8extern bool qskHasEnvironment( const char* );
9extern void qskUpdateItemFlags();
10
11namespace
12{
13 inline const QskItem::UpdateFlags environmentUpdateFlags()
14 {
15 QskItem::UpdateFlags flags;
16
17 if ( !qskHasEnvironment( "QSK_PREFER_FBO_PAINTING" ) )
19
20 if ( qskHasEnvironment( "QSK_FORCE_BACKGROUND" ) )
22
23 return flags;
24 }
25
26 inline QskItem::UpdateFlags defaultUpdateFlags()
27 {
28 static QskItem::UpdateFlags flags;
29
30 if ( flags == 0 )
31 {
36 flags |= environmentUpdateFlags();
37 }
38
39 return flags;
40 }
41
42 inline void propagateFlags()
43 {
44 qskUpdateItemFlags();
45 }
46}
47
48static QskItem::UpdateFlags qskUpdateFlags = defaultUpdateFlags();
49
50void QskSetup::setUpdateFlags( QskItem::UpdateFlags flags )
51{
52 if ( qskUpdateFlags != flags )
53 {
54 qskUpdateFlags = flags;
55 propagateFlags();
56 }
57}
58
59QskItem::UpdateFlags QskSetup::updateFlags()
60{
61 return qskUpdateFlags;
62}
63
64void QskSetup::resetUpdateFlags()
65{
66 setUpdateFlags( defaultUpdateFlags() );
67}
68
69void QskSetup::setUpdateFlag( QskItem::UpdateFlag flag, bool on )
70{
71 if ( qskUpdateFlags.testFlag( flag ) != on )
72 {
73 if ( on )
74 qskUpdateFlags |= flag;
75 else
76 qskUpdateFlags &= ~flag;
77
78 propagateFlags();
79 }
80}
81
82void QskSetup::resetUpdateFlag( QskItem::UpdateFlag flag )
83{
84 setUpdateFlag( flag, flag & defaultUpdateFlags() );
85}
86
87bool QskSetup::testUpdateFlag( QskItem::UpdateFlag flag )
88{
89 return qskUpdateFlags.testFlag( flag );
90}
UpdateFlag
Definition QskItem.h:48
@ DebugForceBackground
Definition QskItem.h:56
@ CleanupOnVisibility
Definition QskItem.h:52
@ DeferredPolish
Definition QskItem.h:50
@ PreferRasterForTextures
Definition QskItem.h:54
@ DeferredUpdate
Definition QskItem.h:49
@ DeferredLayout
Definition QskItem.h:51