ATLAS Offline Software
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
Related Functions
:
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
v
w
x
z
Files
File List
File Members
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Variables
$
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
v
x
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
GitLab
LXR
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
graphics
VP1
VP1Gui
src
VP1QtApplication.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// //
7
// Implementation file for class VP1QtApplication //
8
// //
9
// Author: Riccardo Maria BIANCHI <rbianchi@cern.ch> //
10
// //
11
// This class reimplements the basic notify() method //
12
// of the QApplication class, in order to catch //
13
// exceptions from C++, and to avoid fatal errors //
14
// like: //
15
// "Qt has caught an exception thrown from an event //
16
// handler. Throwing exceptions from an event handler //
17
// is not supported in Qt. You must reimplement //
18
// QApplication::notify() and catch all exceptions //
19
// there. //
20
// //
21
// //
22
// Initial version: 19 November 2012 //
23
// //
25
26
27
// include VP1
28
#include "
VP1Gui/VP1QtApplication.h
"
29
#include "
VP1Base/VP1Msg.h
"
30
31
// include Qt
32
#include <QEvent>
33
34
// include C++
35
#include <typeinfo>
36
//#include <stddef.h> // this to fix the 'ptrdiff_t' does not name a type error with Qt (http://qt-project.org/forums/viewthread/16992)
37
38
39
bool
VP1QtApplication::notify
(QObject *rec, QEvent *
ev
)
40
{
41
//std::cout << (3, "Called VP1QtApplication::notify()") << std::endl;
42
43
// only for debug
44
//VP1Msg::message("VP1QtApplication:notify()");
45
46
// for normal events we pass to QApplication:notify()...
47
try
{
48
return
QApplication::notify(rec,
ev
);
49
}
50
catch
(
std::exception
&
e
) {
51
VP1Msg::message
(
"VP1QtApplication: std::exception: "
);
52
qWarning(
"VP1QtApplication: Error '%s' sending event '%s' to object '%s' ('%s')"
,
53
e
.what(),
typeid
(*ev).name(), qPrintable(rec->objectName()),
54
typeid
(*rec).name());
55
qWarning(
"throwing the exception again..."
);
56
throw
e
;
57
return
false
;
58
}
59
catch
(
char
const
*
str
) {
60
VP1Msg::message
(
"VP1QtApplication: EXCEPTION: "
+ QString(
str
) );
61
return
false
;
62
}
63
catch
(...) {
64
VP1Msg::message
(
"VP1QtApplication: Unknown exception!"
);
65
return
false
;
66
}
67
//VP1Msg::message("VP1QtApplication: outside catch..."); // only for DEBUG
68
return
false
;
69
}
AllowedVariables::e
e
Definition:
AsgElectronSelectorTool.cxx:37
VP1Msg.h
ev
int ev
Definition:
globals.cxx:25
calibdata.exception
exception
Definition:
calibdata.py:496
VP1QtApplication.h
VP1Msg::message
static void message(const QString &, IVP1System *sys=0)
Definition:
VP1Msg.cxx:30
str
Definition:
BTagTrackIpAccessor.cxx:11
VP1QtApplication::notify
virtual bool notify(QObject *rec, QEvent *ev)
Definition:
VP1QtApplication.cxx:39
Generated on Sat Mar 29 2025 21:22:16 for ATLAS Offline Software by
1.8.18