13
13
#include < string>
14
14
15
15
#include < boost/signals2/connection.hpp>
16
+ #include < boost/signals2/signal.hpp>
17
+
18
+ /* * Store connections so we can disconnect them when suppressing output */
19
+ boost::signals2::connection noui_ThreadSafeMessageBoxConn;
20
+ boost::signals2::connection noui_ThreadSafeQuestionConn;
21
+ boost::signals2::connection noui_InitMessageConn;
16
22
17
23
bool noui_ThreadSafeMessageBox (const std::string& message, const std::string& caption, unsigned int style)
18
24
{
@@ -53,7 +59,39 @@ void noui_InitMessage(const std::string& message)
53
59
54
60
void noui_connect ()
55
61
{
56
- uiInterface.ThreadSafeMessageBox_connect (noui_ThreadSafeMessageBox);
57
- uiInterface.ThreadSafeQuestion_connect (noui_ThreadSafeQuestion);
58
- uiInterface.InitMessage_connect (noui_InitMessage);
62
+ noui_ThreadSafeMessageBoxConn = uiInterface.ThreadSafeMessageBox_connect (noui_ThreadSafeMessageBox);
63
+ noui_ThreadSafeQuestionConn = uiInterface.ThreadSafeQuestion_connect (noui_ThreadSafeQuestion);
64
+ noui_InitMessageConn = uiInterface.InitMessage_connect (noui_InitMessage);
65
+ }
66
+
67
+ bool noui_ThreadSafeMessageBoxSuppressed (const std::string& message, const std::string& caption, unsigned int style)
68
+ {
69
+ return false ;
70
+ }
71
+
72
+ bool noui_ThreadSafeQuestionSuppressed (const std::string& /* ignored interactive message */ , const std::string& message, const std::string& caption, unsigned int style)
73
+ {
74
+ return false ;
59
75
}
76
+
77
+ void noui_InitMessageSuppressed (const std::string& message)
78
+ {
79
+ }
80
+
81
+ void noui_suppress ()
82
+ {
83
+ noui_ThreadSafeMessageBoxConn.disconnect ();
84
+ noui_ThreadSafeQuestionConn.disconnect ();
85
+ noui_InitMessageConn.disconnect ();
86
+ noui_ThreadSafeMessageBoxConn = uiInterface.ThreadSafeMessageBox_connect (noui_ThreadSafeMessageBoxSuppressed);
87
+ noui_ThreadSafeQuestionConn = uiInterface.ThreadSafeQuestion_connect (noui_ThreadSafeQuestionSuppressed);
88
+ noui_InitMessageConn = uiInterface.InitMessage_connect (noui_InitMessageSuppressed);
89
+ }
90
+
91
+ void noui_reconnect ()
92
+ {
93
+ noui_ThreadSafeMessageBoxConn.disconnect ();
94
+ noui_ThreadSafeQuestionConn.disconnect ();
95
+ noui_InitMessageConn.disconnect ();
96
+ noui_connect ();
97
+ }
0 commit comments