mirror of https://notabug.org/acetone/ircabot.git
map->multimap
parent
e3b04af298
commit
a59f91bcaf
|
@ -1507,10 +1507,10 @@ void MessagePool::saveNewMessage(const QString &nick, const QString &text)
|
|||
qint64 timestamp = QDateTime::currentMSecsSinceEpoch();
|
||||
Message* newMessage = new Message (nick, text, timestamp);
|
||||
connect (newMessage, SIGNAL(outDated(qint64)), this, SLOT (messageToDelete(qint64)));
|
||||
m_messages[timestamp] = newMessage;
|
||||
m_messages.insert({timestamp, newMessage});
|
||||
}
|
||||
|
||||
const std::map<qint64, Message *>* MessagePool::getMessages()
|
||||
const std::multimap<qint64, Message *>* MessagePool::getMessages()
|
||||
{
|
||||
m_lastPing = QDateTime::currentMSecsSinceEpoch();
|
||||
return &m_messages;
|
||||
|
@ -1523,8 +1523,9 @@ qint64 MessagePool::getLastPing()
|
|||
|
||||
void MessagePool::messageToDelete(qint64 timestamp)
|
||||
{
|
||||
auto it = m_messages.find(timestamp);
|
||||
if (it == m_messages.end()) return;
|
||||
m_messages[timestamp]->deleteLater();
|
||||
m_messages.erase(it);
|
||||
while (m_messages.find(timestamp) != m_messages.end()) {
|
||||
auto it = m_messages.find(timestamp);
|
||||
it->second->deleteLater();
|
||||
m_messages.erase(it);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,12 +35,12 @@ class MessagePool : public QObject
|
|||
public:
|
||||
MessagePool(QObject *parent = nullptr);
|
||||
void saveNewMessage(const QString& nick, const QString& text);
|
||||
const std::map<qint64, Message*>* getMessages();
|
||||
const std::multimap<qint64, Message*>* getMessages();
|
||||
qint64 getLastPing();
|
||||
|
||||
private:
|
||||
qint64 m_lastPing;
|
||||
std::map<qint64, Message*> m_messages; // timestamp, message
|
||||
std::multimap<qint64, Message*> m_messages; // timestamp, message
|
||||
|
||||
public slots:
|
||||
void messageToDelete(qint64 timestamp);
|
||||
|
|
Loading…
Reference in New Issue