void CEventLog::Remove(const EventPtr& eventPtr) { if (eventPtr == nullptr || eventPtr->GetIdentifier().empty()) return; CSingleLock lock(m_critical); const auto& itEvent = m_eventsMap.find(eventPtr->GetIdentifier()); if (itEvent == m_eventsMap.end()) return; m_eventsMap.erase(itEvent); std::remove_if(m_events.begin(), m_events.end(), [eventPtr](const EventPtr& otherEvent) { return eventPtr == otherEvent; }); SendMessage(eventPtr, GUI_MSG_EVENT_REMOVED); }
void CEventLog::Remove(const EventPtr& eventPtr) { if (eventPtr == nullptr) return; Remove(eventPtr->GetIdentifier()); }
void CEventLog::Add(const EventPtr& eventPtr) { if (eventPtr == nullptr || eventPtr->GetIdentifier().empty() || !CServiceBroker::GetSettings().GetBool(CSettings::SETTING_EVENTLOG_ENABLED) || (eventPtr->GetLevel() == EventLevel::Information && !CServiceBroker::GetSettings().GetBool(CSettings::SETTING_EVENTLOG_ENABLED_NOTIFICATIONS))) return; CSingleLock lock(m_critical); if (m_eventsMap.find(eventPtr->GetIdentifier()) != m_eventsMap.end()) return; // store the event m_events.push_back(eventPtr); m_eventsMap.insert(std::make_pair(eventPtr->GetIdentifier(), eventPtr)); SendMessage(eventPtr, GUI_MSG_EVENT_ADDED); }
CFileItemPtr CEventsDirectory::EventToFileItem(const EventPtr& eventItem) { if (eventItem == NULL) return CFileItemPtr(); CFileItemPtr item(new CFileItem(eventItem->GetLabel())); item->m_dateTime = eventItem->GetDateTime(); if (!eventItem->GetIcon().empty()) item->SetIconImage(eventItem->GetIcon()); item->SetProperty(PROPERTY_EVENT_IDENTIFIER, eventItem->GetIdentifier()); item->SetProperty(PROPERTY_EVENT_LEVEL, EventLevelToString(eventItem->GetLevel())); item->SetProperty(PROPERTY_EVENT_DESCRIPTION, eventItem->GetDescription()); return item; }