From 789b4f5fb7f7545fefe815d2ef92829a036f3241 Mon Sep 17 00:00:00 2001 From: DenioD <41270280+DenioD@users.noreply.github.com> Date: Thu, 4 Jun 2020 01:39:54 +0200 Subject: [PATCH] use chatitems instead of decryption every time --- src/chatmodel.cpp | 24 ++++++++++++++++++++++++ src/chatmodel.h | 4 ++++ src/controller.cpp | 30 ++++++++++++++++++++++-------- src/mainwindow.ui | 17 ++++++++++++++++- src/settings.cpp | 2 +- 5 files changed, 67 insertions(+), 10 deletions(-) diff --git a/src/chatmodel.cpp b/src/chatmodel.cpp index 3d26cd1..caa704c 100644 --- a/src/chatmodel.cpp +++ b/src/chatmodel.cpp @@ -260,6 +260,11 @@ void ChatModel::addHeader(QString tx, QString headerbytes) this->headerMap[tx] = headerbytes; } +void ChatModel::addMemo(QString tx, QString memo) +{ + this->OldMemoByTx[tx] = memo; +} + void ChatModel::addrequestZaddr(QString tx, QString requestZaddr) @@ -287,6 +292,21 @@ QString ChatModel::getCidByTx(QString tx) return QString("0xdeadbeef"); } +QString ChatModel::getMemoByTx(QString tx) +{ + for(auto& pair : this->OldMemoByTx) + { + + } + + if(this->OldMemoByTx.count(tx) > 0) + { + return this->OldMemoByTx[tx]; + } + + return QString("0xdeadbeef"); +} + @@ -349,6 +369,10 @@ void ChatModel::killConfirmationCache() { this->confirmationsMap.clear(); } +void ChatModel::killMemoCache() +{ + this->OldMemoByTx.clear(); +} QString MainWindow::createHeaderMemo(QString type, QString cid, QString zaddr, QString headerbytes, QString publickey, int version=0, int headerNumber=1) { diff --git a/src/chatmodel.h b/src/chatmodel.h index 6e6008e..1676993 100644 --- a/src/chatmodel.h +++ b/src/chatmodel.h @@ -37,6 +37,7 @@ class ChatModel std::map> sendrequestMap; std::map headerMap; std::map AddressbyLabelMap; + std::map OldMemoByTx; public: @@ -55,6 +56,7 @@ class ChatModel void addMessage(QString timestamp, ChatItem item); void addCid(QString tx, QString cid); void addHeader(QString tx, QString headerbytes); + void addMemo(QString tx, QString memo); void addrequestZaddr(QString tx, QString requestZaddr); void addconfirmations(QString tx, int confirmation); void addSendRequest(int i, QString myAddr, QString cid, QString addr ); @@ -62,10 +64,12 @@ class ChatModel QString getHeaderByTx(QString tx); QString getrequestZaddrByTx(QString tx); QString getConfirmationByTx(QString tx); + QString getMemoByTx(QString tx); QString Addressbylabel(QString addr); void killCidCache(); void killConfirmationCache(); void killrequestZaddrCache(); + void killMemoCache(); }; diff --git a/src/controller.cpp b/src/controller.cpp index b5754a4..f47ca17 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -905,6 +905,7 @@ void Controller::refreshTransactions() { if ((confirmations == 1) && (chatModel->getConfirmationByTx(txid) != QString("0xdeadbeef"))){ DataStore::getChatDataStore()->clear(); chatModel->killConfirmationCache(); + chatModel->killMemoCache(); this->refresh(true); } @@ -1107,11 +1108,7 @@ void Controller::refreshTransactions() { items.push_back(TransactionItemDetail{address, amount, memo}); total_amount = total_amount + amount; - // }else{ - - - // } - // } + } { @@ -1200,8 +1197,7 @@ void Controller::refreshTransactions() { if (publickey.length() > 10){ main->addPubkey(requestZaddr, publickey); } - qDebug()<<"Scane HM Incoming:"; - qDebug()<<"Scane HM Incoming:"< 20)) + int position = it["position"].get(); + + if ((memo.startsWith("{") == false) && (headerbytes > 0)) { + if (chatModel->getMemoByTx(txid) == QString("0xdeadbeef")){ + + + if (position == 1) + { + + chatModel->addMemo(txid, headerbytes); + }else{} + + + qDebug()<<"Position message :"<getPassword(); QString hashEncryptionKey = passphrase; @@ -1369,6 +1379,10 @@ void Controller::refreshTransactions() { }else{ + + } + + }else{ ChatItem item = ChatItem( datetime, diff --git a/src/mainwindow.ui b/src/mainwindow.ui index a978389..4cc5012 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -59,7 +59,7 @@ - 1 + 5 @@ -1502,9 +1502,21 @@ QAbstractScrollArea::AdjustToContents + + true + QAbstractItemView::NoEditTriggers + + QAbstractItemView::ContiguousSelection + + + QAbstractItemView::ScrollPerItem + + + QListView::Snap + QListView::Adjust @@ -1517,6 +1529,9 @@ true + + true + diff --git a/src/settings.cpp b/src/settings.cpp index 2d99ff7..f4b3e41 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -302,7 +302,7 @@ QString Settings::getDonationAddr() { if (Settings::getInstance()->isTestnet()) return "ztestsaplingXXX"; else - return "zs1kwp3h4rwz76zfqzmwqqextq696kndtjskg4fzc80l9ygfal4hchcsst83ua8tjwzzy9nja7v5rr"; + return "zs1fq9f7vg797qaeac9lyx0njyjmjg4w7m60hwq6lhyhvdcqltl5hdkm8vwx9cxy60ehuuz2x49jxt"; }