@@ -78,7 +78,8 @@ SOURCES += \
|
|||||||
src/Model/ChatItem.cpp \
|
src/Model/ChatItem.cpp \
|
||||||
src/Model/ContactRequestChatItem.cpp \
|
src/Model/ContactRequestChatItem.cpp \
|
||||||
src/Model/ContactItem.cpp \
|
src/Model/ContactItem.cpp \
|
||||||
src/Chat/Helper/ChatIDGenerator.cpp
|
src/Chat/Helper/ChatIDGenerator.cpp \
|
||||||
|
src/Chat/Chat.cpp
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
src/firsttimewizard.h \
|
src/firsttimewizard.h \
|
||||||
|
|||||||
53
src/Chat/Chat.cpp
Normal file
53
src/Chat/Chat.cpp
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
#include "Chat.h"
|
||||||
|
#include "../addressbook.h"
|
||||||
|
#include "../DataStore/DataStore.h"
|
||||||
|
Chat::Chat() {}
|
||||||
|
|
||||||
|
void Chat::renderChatBox(Ui::MainWindow *ui, QListView *view)
|
||||||
|
{
|
||||||
|
QStandardItemModel *chat = new QStandardItemModel();
|
||||||
|
// ui->lcdNumber->setStyleSheet("background-color: red");
|
||||||
|
// ui->lcdNumber->setPalette(Qt::red);
|
||||||
|
// ui->lcdNumber->display("1");
|
||||||
|
|
||||||
|
for (auto &p : AddressBook::getInstance()->getAllAddressLabels())
|
||||||
|
{
|
||||||
|
for (auto &c : DataStore::getChatDataStore()->getAllMemos())
|
||||||
|
{
|
||||||
|
//////Render only Memos for selected contacts. Do not render empty Memos //// Render only memos where cid=cid
|
||||||
|
|
||||||
|
if (
|
||||||
|
(c.second.getContact() == ui->contactNameMemo->text().trimmed()) &&
|
||||||
|
(p.getPartnerAddress() == c.second.getAddress()) &&
|
||||||
|
(c.second.isOutgoing() == true))
|
||||||
|
{
|
||||||
|
|
||||||
|
QStandardItem *Items = new QStandardItem(c.second.toChatLine());
|
||||||
|
Items->setData("Outgoing", Qt::UserRole + 1);
|
||||||
|
chat->appendRow(Items);
|
||||||
|
ui->listChat->setModel(chat);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ui->listChat->setModel(chat);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
(c.second.getContact() == ui->contactNameMemo->text().trimmed()) &&
|
||||||
|
(p.getMyAddress() == c.second.getAddress()) &&
|
||||||
|
(c.second.isOutgoing() == false))
|
||||||
|
|
||||||
|
{
|
||||||
|
QStandardItem *Items1 = new QStandardItem(c.second.toChatLine());
|
||||||
|
Items1->setData("Incoming", Qt::UserRole + 1);
|
||||||
|
chat->appendRow(Items1);
|
||||||
|
ui->listChat->setModel(chat);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
ui->listChat->setModel(chat);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,28 +1,36 @@
|
|||||||
#ifndef CHAT_H
|
#ifndef CHAT_H
|
||||||
#define CHAT_H
|
#define CHAT_H
|
||||||
|
|
||||||
|
#include <QString>
|
||||||
|
#include <QStandardItemModel>
|
||||||
|
#include <QAbstractItemDelegate>
|
||||||
|
#include <QPainter>
|
||||||
|
#include <map>
|
||||||
|
#include <vector>
|
||||||
|
#include <QListView>
|
||||||
|
#include "precompiled.h"
|
||||||
|
#include "mainwindow.h"
|
||||||
|
#include "controller.h"
|
||||||
|
#include "settings.h"
|
||||||
|
#include "camount.h"
|
||||||
|
|
||||||
|
#include "../Model/ChatItem.h"
|
||||||
|
|
||||||
|
|
||||||
class Chat // Chat Controller
|
class Chat // Chat Controller
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
std::map<QString, ChatItem> chatItems;
|
|
||||||
QTableView* parent;
|
QTableView* parent;
|
||||||
Ui::MainWindow* ui;
|
Ui::MainWindow* ui;
|
||||||
MainWindow* main;
|
MainWindow* main;
|
||||||
std::map<QString, QString> cidMap;
|
std::map<QString, QString> cidMap;
|
||||||
std::map<QString, QString> requestZaddrMap;
|
std::map<QString, QString> requestZaddrMap;
|
||||||
public:
|
public:
|
||||||
ChatModel() {};
|
Chat();
|
||||||
ChatModel(std::map<QString, ChatItem> chatItems);
|
//QString zaddr();
|
||||||
ChatModel(std::vector<ChatItem> chatItems);
|
|
||||||
QString generateChatItemID(ChatItem item); // helper
|
|
||||||
std::map<QString, ChatItem> getItems();
|
|
||||||
void setItems(std::map<QString, ChatItem> items);
|
|
||||||
QString zaddr();
|
|
||||||
void setItems(std::vector<ChatItem> items);
|
|
||||||
void renderChatBox(Ui::MainWindow* ui, QListView &view); // action
|
|
||||||
void renderChatBox(Ui::MainWindow* ui, QListView *view); // action
|
void renderChatBox(Ui::MainWindow* ui, QListView *view); // action
|
||||||
// void renderContactRequest();
|
// void renderContactRequest();
|
||||||
void triggerRequest();
|
/*void triggerRequest();
|
||||||
void showMessages();
|
void showMessages();
|
||||||
void clear();
|
void clear();
|
||||||
//void renderContactRequest(Ui::MainWindow* ui, QListView *view);
|
//void renderContactRequest(Ui::MainWindow* ui, QListView *view);
|
||||||
@@ -33,7 +41,7 @@ class Chat // Chat Controller
|
|||||||
QString getCidByTx(QString tx);
|
QString getCidByTx(QString tx);
|
||||||
QString getrequestZaddrByTx(QString tx);
|
QString getrequestZaddrByTx(QString tx);
|
||||||
void killCidCache();
|
void killCidCache();
|
||||||
void killrequestZaddrCache();
|
void killrequestZaddrCache();*/
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ DataStore<QString>* DataStore<QString>::instance = nullptr;
|
|||||||
template<>
|
template<>
|
||||||
bool DataStore<QString>::instanced = false;*/
|
bool DataStore<QString>::instanced = false;*/
|
||||||
ChatModel *chatModel = new ChatModel();
|
ChatModel *chatModel = new ChatModel();
|
||||||
|
Chat *chat = new Chat();
|
||||||
ContactModel *contactModel = new ContactModel();
|
ContactModel *contactModel = new ContactModel();
|
||||||
|
|
||||||
using json = nlohmann::json;
|
using json = nlohmann::json;
|
||||||
@@ -1022,7 +1023,7 @@ void Controller::refreshTransactions() {
|
|||||||
|
|
||||||
// Update model data, which updates the table view
|
// Update model data, which updates the table view
|
||||||
transactionsTableModel->replaceData(txdata);
|
transactionsTableModel->replaceData(txdata);
|
||||||
chatModel->renderChatBox(ui, ui->listChat);
|
chat->renderChatBox(ui, ui->listChat);
|
||||||
refreshContacts(
|
refreshContacts(
|
||||||
ui->listContactWidget
|
ui->listContactWidget
|
||||||
|
|
||||||
@@ -1032,7 +1033,7 @@ void Controller::refreshTransactions() {
|
|||||||
|
|
||||||
void Controller::refreshChat(QListView *listWidget)
|
void Controller::refreshChat(QListView *listWidget)
|
||||||
{
|
{
|
||||||
chatModel->renderChatBox(ui, listWidget);
|
chat->renderChatBox(ui, listWidget);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "liteinterface.h"
|
#include "liteinterface.h"
|
||||||
#include "connection.h"
|
#include "connection.h"
|
||||||
#include "chatmodel.h"
|
#include "chatmodel.h"
|
||||||
|
#include "Chat/Chat.h"
|
||||||
#include "Model/ContactRequestChatItem.h"
|
#include "Model/ContactRequestChatItem.h"
|
||||||
#include "Model/ContactItem.h"
|
#include "Model/ContactItem.h"
|
||||||
#include "contactmodel.h"
|
#include "contactmodel.h"
|
||||||
|
|||||||
Reference in New Issue
Block a user