diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index e95aff7..558ea6f 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -8,8 +8,11 @@ #include "ui_memodialog.h" #include "addressbook.h" #include +#include +#include - +using namespace std; +using namespace boost; ChatModel::ChatModel(std::map chatItems) { @@ -89,13 +92,18 @@ void ChatModel::renderChatBox(Ui::MainWindow* ui, QListWidget *view) myDateTime.setTime_t(c.second.getTimestamp()); - //////Render only Memos for selected contacts. Do not render empty Memos + //////Render only Memos for selected contacts. Do not render empty Memos //// Render only memos where cid=cid if ((ui->ContactZaddr->text().trimmed() == c.second.getAddress()) && (c.second.getMemo().startsWith("{") == false) && (c.second.getMemo().isEmpty() == false)) { + // if (c.second.getMemo.find()) line += QString("[") + myDateTime.toString("dd.MM.yyyy hh:mm:ss ") + QString("] "); line += QString("<") + QString("Outgoing") + QString("> :\n"); line += QString(c.second.getMemo()) + QString("\n"); view->addItem(line); line =""; + + ////////////////////////////////// Todo : Render green checkmark for contacts if cid = cid - We have to search for cid in txid/cid list + QString cid = c.second.getCid(); + }else{} if ((ui->MyZaddr->text().trimmed() == c.second.getAddress()) && (c.second.getMemo().startsWith("{") == false) && (c.second.getMemo().isEmpty() == false)){ diff --git a/src/chatmodel.h b/src/chatmodel.h index 43a0e88..9f06d3a 100644 --- a/src/chatmodel.h +++ b/src/chatmodel.h @@ -17,27 +17,33 @@ class ChatItem QString _address; QString _contact; QString _memo; + QString _cid; + QString _txid; bool _outgoing = false; public: ChatItem() {} - ChatItem(long timestamp, QString address, QString contact, QString memo) + ChatItem(long timestamp, QString address, QString contact, QString memo, QString cid, QString txid) { _timestamp = timestamp; _address = address; _contact = contact; _memo = memo; + _cid = cid; + _txid = txid; _outgoing = false; } - ChatItem(long timestamp, QString address, QString contact, QString memo, bool outgoing) + ChatItem(long timestamp, QString address, QString contact, QString memo, QString cid, QString txid, bool outgoing) { _timestamp = timestamp; _address = address; _contact = contact; _memo = memo; + _cid = cid; + _txid = txid; _outgoing = outgoing; } @@ -62,6 +68,16 @@ class ChatItem return _memo; } + QString getCid() + { + return _cid; + } + + QString getTxid() + { + return _txid; + } + bool isOutgoing() { return _outgoing; @@ -87,6 +103,15 @@ class ChatItem _memo = memo; } + void setCid(QString cid) + { + _cid = cid; + } + void setTxid(QString txid) + { + _txid = txid; + } + void toggleOutgo() { _outgoing = true; diff --git a/src/controller.cpp b/src/controller.cpp index e6b6b37..0871d6b 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -884,7 +884,9 @@ void Controller::refreshTransactions() { datetime, address, QString(""), - memo + memo, + "", // we have to set the cid here, its included in our Addressbook for this contact + txid // true // is an outgoing message ); chatModel->addMessage(item); @@ -922,19 +924,30 @@ void Controller::refreshTransactions() { if (!it["memo"].is_null()) { memo = QString::fromStdString(it["memo"]); } - + TransactionItem tx{ "Receive", datetime, address, txid,confirmations, items }; txdata.push_back(tx); + QString cid; + if (memo.startsWith("{")) { + + cid = memo.mid(14,36); + + }else{ cid = "";} + ChatItem item = ChatItem( datetime, address, QString(""), - memo + memo, + cid, // we have to set the cid here, its included in the headermemo + txid ); + qDebug()<addMessage(item); items.push_back(TransactionItemDetail{ diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 76cd090..2b252e4 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1001,6 +1001,7 @@ void MainWindow::setupchatTab() { ui->ContactZaddr->setText(p.getPartnerAddress()); ui->MyZaddr->setText(p.getMyAddress()); ui->contactNameMemo->setText(p.getName()); + ui->contactCid->setText(p.getCid()); rpc->refresh(true); } diff --git a/src/mainwindow.ui b/src/mainwindow.ui index e5eb12e..913907f 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -1524,6 +1524,19 @@ + + + + 870 + 90 + 331 + 20 + + + + <html><head/><body><p align="center"><br/></p></body></html> + +