Browse Source

Merge pull request #22 from DenioD/chat

Chat
hushchat
Strider 4 years ago
committed by GitHub
parent
commit
9daf92c02e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/Chat/Chat.cpp
  2. 2
      src/addressbook.cpp
  3. 72
      src/chatmodel.cpp
  4. 5
      src/chatmodel.h
  5. 57
      src/controller.cpp

4
src/Chat/Chat.cpp

@ -17,7 +17,7 @@ void Chat::renderChatBox(Ui::MainWindow *ui, QListView *view)
//////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.getName() == ui->contactNameMemo->text().trimmed()) &&
(p.getPartnerAddress() == c.second.getAddress()) &&
(c.second.isOutgoing() == true))
{
@ -33,7 +33,7 @@ void Chat::renderChatBox(Ui::MainWindow *ui, QListView *view)
}
if (
(c.second.getContact() == ui->contactNameMemo->text().trimmed()) &&
(p.getName() == ui->contactNameMemo->text().trimmed()) &&
(p.getMyAddress() == c.second.getAddress()) &&
(c.second.isOutgoing() == false))

2
src/addressbook.cpp

@ -156,7 +156,7 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target)
ab.addr_chat->setText(myAddr);
});
model.updateUi(); //todo fix updating gui after adding
rpc->refresh(true);
//rpc->refresh(true);
// If there is a target then make it the addr for the "Add to" button
if (target != nullptr && Settings::isValidAddress(target->text()))

72
src/chatmodel.cpp

@ -86,77 +86,7 @@ void ChatModel::showMessages()
}
}
void ChatModel::renderChatBox(Ui::MainWindow* ui, QListView &view)
{
/*for(auto &c : this->chatItems)
{
//view.getItems().add(QString("[Timestamp] <Contactname|Me>: lorem ipsum ...."));
}*/
qDebug() << "not implemented yet";
//todo render items to view
}
void ChatModel::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);
}
}
}
void MainWindow::renderContactRequest(){
Ui_requestDialog requestContact;

5
src/chatmodel.h

@ -30,18 +30,13 @@ class ChatModel
ChatModel() {};
ChatModel(std::map<QString, ChatItem> chatItems);
ChatModel(std::vector<ChatItem> chatItems);
//QString generateChatItemID(ChatItem item);
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);
void renderChatBox(Ui::MainWindow* ui, QListView *view);
// void renderContactRequest();
void triggerRequest();
void showMessages();
void clear();
//void renderContactRequest(Ui::MainWindow* ui, QListView *view);
void addMessage(ChatItem item);
void addMessage(QString timestamp, ChatItem item);
void addCid(QString tx, QString cid);

57
src/controller.cpp

@ -855,8 +855,7 @@ void Controller::refreshTransactions() {
for (auto o: it["outgoing_metadata"].get<json::array_t>()) {
QString address;
address = QString::fromStdString(o["address"]);
// Sent items are -ve
@ -867,22 +866,13 @@ void Controller::refreshTransactions() {
QString memo;
if (!o["memo"].is_null()) {
memo = QString::fromStdString(o["memo"]);
}
QString cid;
QString contact;
for(auto &c : AddressBook::getInstance()->getAllAddressLabels())
{
if (address == c.getPartnerAddress()){
contact = c.getName();
}else{ contact = "";}
QString cid;
ChatItem item = ChatItem(
datetime,
address,
contact,
QString(""),
memo,
QString(""),
QString(""),
@ -890,6 +880,7 @@ void Controller::refreshTransactions() {
txid,
true
);
qDebug()<<"Memo : " <<memo;
DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item);
@ -898,7 +889,7 @@ void Controller::refreshTransactions() {
items.push_back(TransactionItemDetail{address, amount, memo});
total_amount = total_amount + amount;
}
{
QList<QString> addresses;
for (auto item : items) {
@ -932,7 +923,6 @@ void Controller::refreshTransactions() {
memo
});
TransactionItem tx{
"Receive", datetime, address, txid,confirmations, items
};
@ -941,12 +931,14 @@ void Controller::refreshTransactions() {
QString type;
QString cid;
// int position;
int position;
QString requestZaddr;
if (!it["memo"].is_null()) {
if (memo.startsWith("{")) {
QJsonDocument headermemo = QJsonDocument::fromJson(memo.toUtf8());
QJsonDocument headermemo = QJsonDocument::fromJson(memo.toUtf8());
cid = headermemo["cid"].toString();
type = headermemo["t"].toString();
@ -955,43 +947,27 @@ void Controller::refreshTransactions() {
chatModel->addCid(txid, cid);
chatModel->addrequestZaddr(txid, requestZaddr);
}
}
if (chatModel->getCidByTx(txid) != QString("0xdeadbeef")){
cid = chatModel->getCidByTx(txid);
}
else{
cid = "";
}else{
cid = "";
}
if (chatModel->getrequestZaddrByTx(txid) != QString("0xdeadbeef")){
requestZaddr = chatModel->getrequestZaddrByTx(txid);
}
else{
}else{
requestZaddr = "";
}
QString contact;
for(auto &c : AddressBook::getInstance()->getAllAddressLabels())
{
if (address == c.getMyAddress()){
contact = c.getName();
}else{ contact = "";}
// position = it["position"].get<json::number_integer_t>();
position = it["position"].get<json::number_integer_t>();
ChatItem item = ChatItem(
datetime,
address,
contact,
QString(""),
memo,
requestZaddr,
type,
@ -999,6 +975,7 @@ void Controller::refreshTransactions() {
txid,
false
);
qDebug()<< "Position : " << position;
DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item);
}

Loading…
Cancel
Save