Pencil2D
ff90c0872e88be3bf81c548cd60f01983012ec49
Pencil2D is an animation software for both bitmap and vector graphics. It is free, multi-platform, and open source.
Main Page
Classes
Files
File List
All
Classes
Functions
core_lib
util
util.h
1
/*
2
3
Pencil - Traditional Animation Software
4
Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
5
Copyright (C) 2012-2017 Matthew Chiawen Chang
6
7
This program is free software; you can redistribute it and/or
8
modify it under the terms of the GNU General Public License
9
as published by the Free Software Foundation; version 2 of the License.
10
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
*/
17
#ifndef UTIL_H
18
#define UTIL_H
19
20
#include <cstddef>
21
#include <functional>
22
#include <QTransform>
23
24
25
#define SAFE_RELEASE( p ) if ( p ) { delete p; p = nullptr; }
26
#define SAFE_QT_RELEASE( p ) if ( p ) { p->deleteLater(); p = nullptr; }
27
28
QTransform RectMapTransform( QRectF source, QRectF target );
29
30
class
ScopeGuard
31
{
32
public
:
33
ScopeGuard
( std::function<
void
() > onScopeExit ) { m_onScopeExit = onScopeExit; }
34
~
ScopeGuard
() { m_onScopeExit(); }
35
private
:
36
std::function< void() > m_onScopeExit;
37
};
38
39
#define SCOPEGUARD_LINENAME_CAT(name, line) name##line
40
#define SCOPEGUARD_LINENAME(name, line) SCOPEGUARD_LINENAME_CAT(name, line)
41
42
#define OnScopeExit( callback ) ScopeGuard SCOPEGUARD_LINENAME( myScopeGuard, __LINE__ ) ( [&] { callback; } );
43
44
45
#define NULLReturnVoid( p ) if ( p == nullptr ) { return; }
46
#define NULLReturn( p, ret ) if ( p == nullptr ) { return ret; }
47
#define NULLReturnAssert( p ) if ( p == nullptr ) { Q_ASSERT(false); return; }
48
49
50
class
SignalBlocker
51
{
52
public
:
53
SignalBlocker
( QObject* o );
54
~
SignalBlocker
();
55
private
:
56
QObject* mObject =
nullptr
;
57
bool
mBlocked =
false
;
58
};
59
60
61
#endif // UTIL_H
SignalBlocker
Definition:
util.h:50
ScopeGuard
Definition:
util.h:30
Generated on Fri Sep 1 2017 16:48:41 for Pencil2D by
1.8.6