ACF $AcfVersion:0$
CMessageBoxComp.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QObject>
7#include <QtCore/QMutex>
8#include <QtCore/QVector>
9#include <QtGui/QIcon>
10#if QT_VERSION >= 0x050000
11#include <QtWidgets/QMessageBox>
12#else
13#include <QtGui/QMessageBox>
14#endif
15
16// ACF includes
19#include <ilog/CMessage.h>
20
21
22namespace iloggui
23{
24
25
106 public QObject,
108 virtual public ilog::IMessageConsumer
109{
110 Q_OBJECT
111
112public:
114
115 I_BEGIN_COMPONENT(CMessageBoxComp);
116 I_REGISTER_INTERFACE(ilog::IMessageConsumer);
117 I_END_COMPONENT;
118
120
121 // reimplemented (ilog::IMessageConsumer)
122 virtual bool IsMessageSupported(
123 int messageCategory = -1,
124 int messageId = -1,
125 const istd::IInformationProvider* messagePtr = NULL) const override;
126 virtual void AddMessage(const MessagePtr& messagePtr) override;
127
128protected:
132 QIcon GetCategoryIcon(int category) const;
133
134 // reimplemented (icomp::CComponentBase)
135 virtual void OnComponentCreated() override;
136 virtual void OnComponentDestroyed() override;
137
138private:
139 void CreateMessageText(QString& messageText, QString& detailedText, QIcon& statusIcon) const;
140
141protected Q_SLOTS:
142 virtual void OnAddMessage();
143
144Q_SIGNALS:
146
147private:
148 QSharedPointer<QMessageBox> m_messageBox;
149 QMutex m_messageQueueMutex;
150
151 QVector<ilog::CMessage> m_messageQueue;
152};
153
154
155} // namespace iloggui
156
157
158
159
Base class for component implementation.
Common interface for a message container consuming information objects (messages).
Component for displaying log messages in modal Qt message boxes.
QIcon GetCategoryIcon(int category) const
Get icons corresponding to specified information category.
virtual void OnAddMessage()
virtual void OnComponentCreated() override
virtual void OnComponentDestroyed() override
virtual void AddMessage(const MessagePtr &messagePtr) override
Adds a message to this consumer.
icomp::CComponentBase BaseClass
virtual bool IsMessageSupported(int messageCategory=-1, int messageId=-1, const istd::IInformationProvider *messagePtr=NULL) const override
Check if a message is supported by this consumer.
Common interface for class providing some basic information object.
Shared ownership smart pointer for interface types.
#define NULL
Definition istd.h:74
GUI specific interfaces and components for logging functionality.
Definition CLogGuiComp.h:26