39 #include <QApplication> 52 retval->setMessageQueueMaxSize(size);
59 retval->mMessages = this->mMessages;
60 retval->mManager = this->mManager;
61 retval->mMessageHistoryMaxSize = this->mMessageHistoryMaxSize;
66 MessageListener::MessageListener(
LogPtr log) :
68 mMessageHistoryMaxSize(0)
78 mManager->installObserver(mObserver,
false);
85 mManager->uninstallObserver(mObserver);
89 void MessageListener::messageReceived(
Message message)
91 mMessages.push_back(message);
92 this->limitQueueSize();
96 void MessageListener::limitQueueSize()
98 if (mMessageHistoryMaxSize<0)
101 while (mMessages.size() > mMessageHistoryMaxSize)
103 mMessages.pop_front();
107 bool MessageListener::isError(MESSAGE_LEVEL level)
const 114 QApplication::processEvents();
116 for (QList<Message>::const_iterator i=mMessages.begin(); i!=mMessages.end(); ++i)
118 if (this->isError(i->getMessageLevel()))
126 QApplication::processEvents();
127 for (QList<Message>::const_iterator i=mMessages.begin(); i!=mMessages.end(); ++i)
129 QString message = i->
getText();
130 if(i->getText().contains(text, Qt::CaseInsensitive))
138 mManager->installObserver(mObserver,
true);
143 mObserver->installFilter(filter);
144 mManager->installObserver(mObserver,
false);
149 mMessageHistoryMaxSize = count;
154 return mMessageHistoryMaxSize;
static MessageListenerPtr create(LogPtr log=LogPtr())
int getMessageQueueMaxSize() const
void newChannel(QString channel)
void installFilter(MessageFilterPtr)
MessageListenerPtr clone()
QList< Message > getMessages() const
QString getText() const
The raw message.
bool containsText(const QString text) const
boost::shared_ptr< class MessageFilter > MessageFilterPtr
boost::shared_ptr< class Log > LogPtr
void newChannel(QString channel)
static MessageListenerPtr createWithQueue(LogPtr log=LogPtr(), int size=1000)
bool containsErrors() const
void setMessageQueueMaxSize(int count)
void newMessage(Message message)
boost::shared_ptr< class MessageListener > MessageListenerPtr
Namespace for all CustusX production code.
void newMessage(Message message)