BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
MessageService Class Reference

The service to collect messages from different senders. More...

Public Member Functions

virtual ~MessageService ()
 
void clear ()
 
int errorCount (const QObject *sender=0) const
 Returns number of errors for given sender. More...
 
QStringList errorDescriptionList (const QObject *sender=0) const
 Returns multi-line string representing error messages of given sender. More...
 
int messageCount (const QObject *sender, const QString &message_type="") const
 Reports number of messages of given type reported by the sender. More...
 
const QList< GUIMessage * > messages () const
 
void send_error (QObject *sender, const QString &description)
 
void send_message (QObject *sender, const QString &message_type, const QString &description)
 
void send_warning (QObject *sender, const QString &description)
 
QStringList senderList () const
 
int warningCount (const QObject *sender=0) const
 Returns number of warnings for given sender. More...
 

Private Attributes

QList< GUIMessage * > m_messages
 

Detailed Description

The service to collect messages from different senders.

Definition at line 28 of file MessageService.h.

Constructor & Destructor Documentation

◆ ~MessageService()

MessageService::~MessageService ( )
virtual

Definition at line 25 of file MessageService.cpp.

26 {
27  clear();
28 }

References clear().

Here is the call graph for this function:

Member Function Documentation

◆ clear()

void MessageService::clear ( )

Definition at line 30 of file MessageService.cpp.

31 {
32  for (auto message : m_messages)
33  delete message;
34 
35  m_messages.clear();
36 }
QList< GUIMessage * > m_messages

References m_messages.

Referenced by ~MessageService(), and ProjectManager::createNewProject().

◆ errorCount()

int MessageService::errorCount ( const QObject *  sender = 0) const

Returns number of errors for given sender.

If sender is nullptr, report total number of errors.

Definition at line 105 of file MessageService.cpp.

106 {
107  return messageCount(sender, message_error_type);
108 }
int messageCount(const QObject *sender, const QString &message_type="") const
Reports number of messages of given type reported by the sender.

References messageCount().

Here is the call graph for this function:

◆ errorDescriptionList()

QStringList MessageService::errorDescriptionList ( const QObject *  sender = 0) const

Returns multi-line string representing error messages of given sender.

Definition at line 112 of file MessageService.cpp.

113 {
114  QStringList result;
115 
116  for (auto message : messages())
117  if (message->sender() == sender && message->messageType() == message_error_type)
118  result.push_back(message->messageDescription());
119 
120  return result;
121 }
const QList< GUIMessage * > messages() const

References messages().

Referenced by ProjectManager::riseProjectLoadFailedDialog().

Here is the call graph for this function:

◆ messageCount()

int MessageService::messageCount ( const QObject *  sender,
const QString &  message_type = "" 
) const

Reports number of messages of given type reported by the sender.

If message_type.isEmpty, count all messages of given sender.

Definition at line 75 of file MessageService.cpp.

76 {
77  int result(0);
78  for (auto message : messages())
79  if (sender && message->sender() == sender) {
80  if (message_type.isEmpty())
81  ++result;
82  else if (message->messageType() == message_type)
83  ++result;
84  } else if (sender == nullptr) {
85  if (message_type.isEmpty())
86  ++result;
87  else if (message->messageType() == message_type)
88  ++result;
89  }
90 
91  return result;
92 }

References messages().

Referenced by errorCount(), ProjectDocument::readFrom(), and warningCount().

Here is the call graph for this function:

◆ messages()

const QList< GUIMessage * > MessageService::messages ( ) const

◆ send_error()

void MessageService::send_error ( QObject *  sender,
const QString &  description 
)

Definition at line 44 of file MessageService.cpp.

45 {
46  send_message(sender, message_error_type, description);
47 }
void send_message(QObject *sender, const QString &message_type, const QString &description)

References send_message().

Referenced by ProjectDocument::load(), and ProjectDocument::readFrom().

Here is the call graph for this function:

◆ send_message()

void MessageService::send_message ( QObject *  sender,
const QString &  message_type,
const QString &  description 
)

Definition at line 38 of file MessageService.cpp.

40 {
41  m_messages.append(new GUIMessage(sender, message_type, description));
42 }

References m_messages.

Referenced by send_error(), and send_warning().

◆ send_warning()

void MessageService::send_warning ( QObject *  sender,
const QString &  description 
)

Definition at line 49 of file MessageService.cpp.

50 {
51  send_message(sender, message_warning_type, description);
52 }

References send_message().

Referenced by OutputDataIOService::load().

Here is the call graph for this function:

◆ senderList()

QStringList MessageService::senderList ( ) const

Definition at line 59 of file MessageService.cpp.

60 {
61  QSet<QString> set;
62  for (auto message : messages())
63  set.insert(message->senderName());
64 
65 #if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
66  return set.values();
67 #else
68  return set.toList();
69 #endif
70 }

References messages().

Referenced by ProjectLoadWarningDialog::createModelInfoPanel().

Here is the call graph for this function:

◆ warningCount()

int MessageService::warningCount ( const QObject *  sender = 0) const

Returns number of warnings for given sender.

If sender is nullptr, report total number of warnings.

Definition at line 97 of file MessageService.cpp.

98 {
99  return messageCount(sender, message_warning_type);
100 }

References messageCount().

Referenced by ProjectDocument::load().

Here is the call graph for this function:

Member Data Documentation

◆ m_messages

QList<GUIMessage*> MessageService::m_messages
private

Definition at line 49 of file MessageService.h.

Referenced by clear(), messages(), and send_message().


The documentation for this class was generated from the following files: