- const QString &target, const QString &text, const QString &sender, Message::Flags flags) {
- _messageQueue << RawMessage(networkId, type, bufferType, target, text, sender, flags);
+ const QString &target, const QString &text_, const QString &sender, Message::Flags flags) {
+
+ // U+FDD0 and U+FDD1 are special characters for Qt's text engine, specifically they mark the boundaries of
+ // text frames in a QTextDocument. This might lead to problems in widgets displaying QTextDocuments (such as
+ // KDE's notifications), hence we remove those just to be safe.
+ QString text = text_;
+ text.remove(QChar(0xfdd0)).remove(QChar(0xfdd1));
+ RawMessage rawMsg(networkId, type, bufferType, target, text, sender, flags);
+
+ // check for HardStrictness ignore
+ CoreNetwork *currentNetwork = network(networkId);
+ QString networkName = currentNetwork ? currentNetwork->networkName() : QString("");
+ if(_ignoreListManager.match(rawMsg, networkName) == IgnoreListManager::HardStrictness)
+ return;
+
+ _messageQueue << rawMsg;