diff --git a/src/Chat/Helper/ChatIDGenerator.cpp b/src/Chat/Helper/ChatIDGenerator.cpp new file mode 100644 index 0000000..2acea1b --- /dev/null +++ b/src/Chat/Helper/ChatIDGenerator.cpp @@ -0,0 +1,28 @@ +#include "ChatIDGenerator.h" + +ChatIDGenerator* ChatIDGenerator::getInstance() +{ + if(ChatIDGenerator::instance == nullptr) + ChatIDGenerator::instance = new ChatIDGenerator(); + + return ChatIDGenerator::instance; +} + +QString ChatIDGenerator::generateID(ChatItem item) +{ + QString key = QString::number(item.getTimestamp()) + QString("-"); + key += QString( + QCryptographicHash::hash( + QString( + QString::number(item.getTimestamp()) + + item.getAddress() + + item.getContact() + + item.getMemo() + ).toUtf8(), + QCryptographicHash::Md5 + ).toHex() + ); + return key; +} + +ChatIDGenerator* ChatIDGenerator::instance = nullptr; \ No newline at end of file diff --git a/src/Chat/Helper/ChatIDGenerator.h b/src/Chat/Helper/ChatIDGenerator.h new file mode 100644 index 0000000..d9f6e4a --- /dev/null +++ b/src/Chat/Helper/ChatIDGenerator.h @@ -0,0 +1,18 @@ +#ifndef CHATIDGENERATOR_H +#define CHATIDGENERATOR_H + +#include +#include +#include "../../Model/ChatItem.h" + +class ChatIDGenerator +{ + private: + static ChatIDGenerator* instance; + + public: + static ChatIDGenerator* getInstance(); + QString generateID(ChatItem item); +}; + +#endif \ No newline at end of file diff --git a/src/controller.cpp b/src/controller.cpp index 36bc6d1..ecc487a 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -999,7 +999,6 @@ void Controller::refreshTransactions() { ); //DataStore::getChatDataStore()->setData(chatModel->generateChatItemID(item), item); DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item); - } }