1 // Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
11 // This library 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 GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 #include "QtxMsgHandler.h"
26 \brief Custom Qt messages handler.
28 To install message handler use qInstallMessageHandler() function:
31 #include <QtxMsgHandler.h>
32 qInstallMessageHandler(QtxMsgHandler);
35 To process Qt message implement a callback class by inheriting from
36 QtxMsgHandlerCallback and override its qtMessage() function.
38 \sa QtxMsgHandlerCallback
40 void QtxMsgHandler(QtMsgType type, const QMessageLogContext& context, const QString& message)
42 foreach(QtxMsgHandlerCallback* callback, QtxMsgHandlerCallback::callbacks)
44 callback->qtMessage( type, context, message );
49 \class QtxMsgHandlerCallback
50 \brief A callback object to handle Qt messages.
52 The QtxMsgHandlerCallback class works in conjunction with QtxMsgHandler()
53 function which is a message handler itself.
55 Implement your own callback class by inheriting from QtxMsgHandlerCallback
56 and override its qtMessage() function. Default implementation does nothing.
61 QList<QtxMsgHandlerCallback*> QtxMsgHandlerCallback::callbacks;
64 \brief Create new callback instance and activate it \a on is \c true.
65 \param on Automatically activate callback on creation. Defaults to \c true.
68 QtxMsgHandlerCallback::QtxMsgHandlerCallback(bool on)
75 \brief Deactivate and destroy callback instance.
78 QtxMsgHandlerCallback::~QtxMsgHandlerCallback()
84 \brief Activate this callback instance in the message handler.
87 void QtxMsgHandlerCallback::activate()
89 if ( !callbacks.contains( this ) )
90 callbacks.push_back( this );
94 \brief Deactivate this callback instance from the message handler.
97 void QtxMsgHandlerCallback::deactivate()
99 if ( callbacks.contains( this ) )
100 callbacks.removeAll( this );
104 \brief This function is called when a new Qt message is reported.
106 Override this method in your custom callback class to handle Qt
109 Default implementation does nothing.
111 \param type Qt message type.
112 \param context Message context.
113 \param message Message text.
115 void QtxMsgHandlerCallback::qtMessage(QtMsgType /*type*/,
116 const QMessageLogContext& /*context*/,
117 const QString& /*message*/)