fix for incoming requests

This commit is contained in:
DenioD
2020-06-07 21:19:41 +02:00
parent d4e51fd19a
commit 852207199f
10 changed files with 99 additions and 75 deletions

View File

@@ -60,7 +60,9 @@ std::map<QString, ChatItem> ChatDataStore::getAllNewContactRequests()
if ( if (
(c.second.isOutgoing() == false) && (c.second.isOutgoing() == false) &&
(c.second.getType() == "Cont") && (c.second.getType() == "Cont") &&
(c.second.isContact() == false) (c.second.isContact() == false) &&
(c.second.getMemo().startsWith("{"))
) )
{ {
@@ -73,13 +75,14 @@ std::map<QString, ChatItem> ChatDataStore::getAllNewContactRequests()
std::map<QString, ChatItem> ChatDataStore::getAllOldContactRequests() std::map<QString, ChatItem> ChatDataStore::getAllOldContactRequests()
{ {
std::map<QString, ChatItem> filteredItems; std::map<QString, ChatItem> filteredItems;
for(auto &p : AddressBook::getInstance()->getAllAddressLabels())
for(auto &c: this->data) for(auto &c: this->data)
{ {
if ( if (
(c.second.isOutgoing() == false) && (c.second.isOutgoing() == false) &&
(c.second.getType() == "Cont") && (c.second.getType() == "Cont") &&
(p.getPartnerAddress() == c.second.getRequestZaddr()) (c.second.isContact() == true) &&
(c.second.getMemo().startsWith("{"))
) )
{ {
filteredItems[c.first] = c.second; filteredItems[c.first] = c.second;

View File

@@ -180,7 +180,7 @@ QString ChatItem::toChatLine()
QString line = QString("<small>") + myDateTime.toString("yyyy-MM-dd hh:mm"); QString line = QString("<small>") + myDateTime.toString("yyyy-MM-dd hh:mm");
line += QString(lock) + QString("</small>"); line += QString(lock) + QString("</small>");
line += QString("<p>") + _memo.toHtmlEscaped() + QString("</p>"); line +=QString("<p>") + _memo.toHtmlEscaped() + QString("</p>");
return line; return line;
} }

View File

@@ -41,7 +41,7 @@ void AddressBookModel::loadData()
"addresstablegeometry" "addresstablegeometry"
).toByteArray() ).toByteArray()
); );
} }
void AddressBookModel::addNewLabel(QString label, QString addr, QString myAddr, QString cid, QString avatar) void AddressBookModel::addNewLabel(QString label, QString addr, QString myAddr, QString cid, QString avatar)
@@ -108,7 +108,9 @@ QVariant AddressBookModel::data(const QModelIndex &index, int role) const
case 2: return labels.at(index.row()).getPartnerAddress(); case 2: return labels.at(index.row()).getPartnerAddress();
case 3: return labels.at(index.row()).getMyAddress(); case 3: return labels.at(index.row()).getMyAddress();
case 4: return labels.at(index.row()).getCid(); case 4: return labels.at(index.row()).getCid();
} }
} }
return QVariant(); return QVariant();
@@ -405,8 +407,10 @@ void AddressBook::readFromStorage()
//qDebug() << "2:" << stuff[i][2]; //qDebug() << "2:" << stuff[i][2];
ContactItem contact = ContactItem(stuff[i][0],stuff[i][1], stuff[i][2], stuff[i][3],stuff[i][4]); ContactItem contact = ContactItem(stuff[i][0],stuff[i][1], stuff[i][2], stuff[i][3],stuff[i][4]);
//qDebug() << "contact=" << contact.toQTString(); //qDebug() << "contact=" << contact.toQTString();
// main->addLabel(stuff[i][2], stuff[i][1]);
allLabels.push_back(contact); allLabels.push_back(contact);
} }
// qDebug() << "Read " << version << " Hush contacts from disk..."; // qDebug() << "Read " << version << " Hush contacts from disk...";
file.close(); file.close();

View File

@@ -24,8 +24,6 @@ public:
QVariant data(const QModelIndex &index, int role) const; QVariant data(const QModelIndex &index, int role) const;
QVariant headerData(int section, Qt::Orientation orientation, int role) const; QVariant headerData(int section, Qt::Orientation orientation, int role) const;
private: private:
void loadData(); void loadData();
void saveData(); void saveData();

View File

@@ -119,44 +119,41 @@ void MainWindow::renderContactRequest(){
for (auto &c : DataStore::getChatDataStore()->getAllNewContactRequests()) for (auto &c : DataStore::getChatDataStore()->getAllNewContactRequests())
{ {
QStandardItem* Items = new QStandardItem(QString("Unknown Sender")); QStandardItem* Items = new QStandardItem(QString(c.second.getRequestZaddr()));
contactRequest->appendRow(Items); contactRequest->appendRow(Items);
requestContact.requestContact->setModel(contactRequest); requestContact.requestContact->setModel(contactRequest);
Items->setData(QIcon(addnewAddrIcon),Qt::DecorationRole); Items->setData(QIcon(addnewAddrIcon),Qt::DecorationRole);
requestContact.requestContact->setIconSize(QSize(40,50)); requestContact.requestContact->setIconSize(QSize(40,50));
requestContact.requestContact->setUniformItemSizes(true); requestContact.requestContact->setUniformItemSizes(true);
requestContact.requestContact->show(); requestContact.requestContact->show();
requestContact.zaddrnew->setVisible(false); requestContact.zaddrnew->setVisible(false);
requestContact.zaddrnew->setText(c.second.getAddress()); requestContact.zaddrnew->setText(c.second.getRequestZaddr());
} }
QStandardItemModel* contactRequestOld = new QStandardItemModel(); QStandardItemModel* contactRequestOld = new QStandardItemModel();
for (auto &p : AddressBook::getInstance()->getAllAddressLabels())
for (auto &c : DataStore::getChatDataStore()->getAllOldContactRequests()) for (auto &c : DataStore::getChatDataStore()->getAllOldContactRequests())
{ {
if (p.getPartnerAddress() == c.second.getRequestZaddr()) QStandardItem* Items = new QStandardItem(c.second.getContact());
{
QStandardItem* Items = new QStandardItem(p.getName());
contactRequestOld->appendRow(Items); contactRequestOld->appendRow(Items);
requestContact.requestContactOld->setModel(contactRequestOld); requestContact.requestContactOld->setModel(contactRequestOld);
requestContact.zaddrold->setVisible(false); requestContact.zaddrold->setVisible(false);
requestContact.zaddrold->setText(c.second.getAddress()); requestContact.zaddrold->setText(c.second.getRequestZaddr());
requestContact.requestContactOld->show();
}else{}
} }
QObject::connect(requestContact.requestContact, &QTableView::clicked, [&] () { QObject::connect(requestContact.requestContact, &QTableView::clicked, [&] () {
for (auto &c : DataStore::getChatDataStore()->getAllRawChatItems()){ for (auto &c : DataStore::getChatDataStore()->getAllRawChatItems()){
QModelIndex index = requestContact.requestContact->currentIndex(); QModelIndex index = requestContact.requestContact->currentIndex();
QString label_contact = index.data(Qt::DisplayRole).toString(); QString label_contact = index.data(Qt::DisplayRole).toString();
QStandardItemModel* contactMemo = new QStandardItemModel(); QStandardItemModel* contactMemo = new QStandardItemModel();
@@ -164,7 +161,7 @@ void MainWindow::renderContactRequest(){
if ((c.second.isOutgoing() == false) && (requestContact.zaddrnew->text() == c.second.getAddress()) && (c.second.getType() != "Cont")) if ((c.second.isOutgoing() == false) && (label_contact == c.second.getContact()))
{ {
@@ -177,7 +174,10 @@ void MainWindow::renderContactRequest(){
requestContact.requestCID->setVisible(false); requestContact.requestCID->setVisible(false);
requestContact.requestZaddr->setText(c.second.getRequestZaddr()); requestContact.requestZaddr->setText(c.second.getRequestZaddr());
requestContact.requestMyAddr->setText(c.second.getAddress()); requestContact.requestMyAddr->setText(c.second.getAddress());
}else{}
}else{
}
} }
@@ -192,7 +192,7 @@ void MainWindow::renderContactRequest(){
QString label_contactold = index.data(Qt::DisplayRole).toString(); QString label_contactold = index.data(Qt::DisplayRole).toString();
QStandardItemModel* contactMemo = new QStandardItemModel(); QStandardItemModel* contactMemo = new QStandardItemModel();
if ((c.second.isOutgoing() == false) && (requestContact.zaddrold->text() == c.second.getAddress()) && (c.second.getType() != "Cont")) if ((c.second.isOutgoing() == false) && (label_contactold == c.second.getContact()))
{ {
@@ -205,7 +205,10 @@ void MainWindow::renderContactRequest(){
requestContact.requestCID->setVisible(false); requestContact.requestCID->setVisible(false);
requestContact.requestZaddr->setText(c.second.getRequestZaddr()); requestContact.requestZaddr->setText(c.second.getRequestZaddr());
requestContact.requestMyAddr->setText(c.second.getAddress()); requestContact.requestMyAddr->setText(c.second.getAddress());
}else{}
}else{
}
} }

View File

@@ -11,7 +11,25 @@
#include "settings.h" #include "settings.h"
#include "controller.h" #include "controller.h"
void ContactModel::addLabel(QString addr, QString label)
{
this->AddressMap[addr] = label;
}
QString ContactModel::getContactbyAddress(QString addr)
{
for(auto& pair : this->AddressMap)
{
}
if(this->AddressMap.count(addr) > 0)
{
return this->AddressMap[addr];
}
return QString("0xdeadbeef");
}
void ContactModel::renderContactList(QListView* view) void ContactModel::renderContactList(QListView* view)
{ {
@@ -19,22 +37,20 @@ void ContactModel::renderContactList(QListView* view)
for(auto &c : AddressBook::getInstance()->getAllAddressLabels()) for(auto &c : AddressBook::getInstance()->getAllAddressLabels())
{ {
QString avatar = c.getAvatar();
QStandardItem* Items1 = new QStandardItem(c.getName());
QString avatar = c.getAvatar(); Items1->setData(QIcon(avatar),Qt::DecorationRole);
QStandardItem* Items1 = new QStandardItem(c.getName());
Items1->setData(QIcon(avatar),Qt::DecorationRole);
contact->appendRow(Items1); contact->appendRow(Items1);
view->setModel(contact); view->setModel(contact);
view->setIconSize(QSize(60,70)); view->setIconSize(QSize(60,70));
view->setUniformItemSizes(true); view->setUniformItemSizes(true);
view->setDragDropMode(QAbstractItemView::DropOnly); view->setDragDropMode(QAbstractItemView::DropOnly);
view->show(); view->show();
QString addr = c.getPartnerAddress();
QString label = c.getName();
this->addLabel(addr, label);
} }
} }

View File

@@ -12,9 +12,15 @@ class ContactModel
{ {
public: public:
MainWindow* main;
std::map<QString, QString> AddressMap;
QString getContactbyAddress(QString addr);
void addLabel(QString addr, QString label);
ContactModel() {} ContactModel() {}
void renderContactList(QListView* view); void renderContactList(QListView* view);
}; };

View File

@@ -1132,28 +1132,8 @@ void Controller::refreshTransactions() {
QString headerbytes; QString headerbytes;
QString cid; QString cid;
QString requestZaddr; QString requestZaddr;
QString contactname;
bool isContact; bool isContact;
for (auto &p : AddressBook::getInstance()->getAllAddressLabels())
{
if (p.getPartnerAddress() == requestZaddr)
{
chatModel->addAddressbylabel(address, requestZaddr);
} else{}
}
if (chatModel->Addressbylabel(address) != QString("0xdeadbeef")){
isContact = true;
}else{
isContact = false;
}
if (!it["memo"].is_null()) { if (!it["memo"].is_null()) {
@@ -1176,8 +1156,7 @@ void Controller::refreshTransactions() {
} }
} }
if (chatModel->getCidByTx(txid) != QString("0xdeadbeef")){ if (chatModel->getCidByTx(txid) != QString("0xdeadbeef")){
cid = chatModel->getCidByTx(txid); cid = chatModel->getCidByTx(txid);
@@ -1212,7 +1191,20 @@ void Controller::refreshTransactions() {
publickey = ""; publickey = "";
} }
if (contactModel->getContactbyAddress(requestZaddr) != QString("0xdeadbeef")){
isContact = true;
contactname = contactModel->getContactbyAddress(requestZaddr);
}else{
isContact = false;
contactname = "";
}
qDebug()<<"Name :" << contactname;
bool isNotarized; bool isNotarized;
@@ -1336,7 +1328,7 @@ void Controller::refreshTransactions() {
ChatItem item = ChatItem( ChatItem item = ChatItem(
datetime, datetime,
address, address,
QString(""), contactname,
memodecrypt, memodecrypt,
requestZaddr, requestZaddr,
type, type,
@@ -1347,9 +1339,7 @@ void Controller::refreshTransactions() {
isNotarized, isNotarized,
isContact isContact
); );
DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item); DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item);
}else{ }else{
@@ -1360,7 +1350,7 @@ void Controller::refreshTransactions() {
ChatItem item = ChatItem( ChatItem item = ChatItem(
datetime, datetime,
address, address,
QString(""), contactname,
memo, memo,
requestZaddr, requestZaddr,
type, type,
@@ -1372,7 +1362,9 @@ void Controller::refreshTransactions() {
isContact isContact
); );
DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item); DataStore::getChatDataStore()->setData(ChatIDGenerator::getInstance()->generateID(item), item);
qDebug()<<"requestZaddrt? :"<<requestZaddr;
qDebug()<<"Ist Kontakt? :"<<isContact;
qDebug()<<"Memo :"<<memo;
} }
} }

View File

@@ -1079,6 +1079,7 @@ QString MainWindow::getPubkeyByAddress(QString requestZaddr)
return QString("0xdeadbeef"); return QString("0xdeadbeef");
} }
void MainWindow::exportAllKeys() { void MainWindow::exportAllKeys() {
exportKeys(""); exportKeys("");
} }
@@ -1385,8 +1386,8 @@ void MainWindow::setupchatTab() {
QModelIndex index = ui->listChat->currentIndex(); QModelIndex index = ui->listChat->currentIndex();
QString memo_chat = index.data(Qt::DisplayRole).toString(); QString memo_chat = index.data(Qt::DisplayRole).toString();
QClipboard *clipboard = QGuiApplication::clipboard(); QClipboard *clipboard = QGuiApplication::clipboard();
int startPos = memo_chat.indexOf("<p>") + 3; int startPos = memo_chat.indexOf("<pre>") + 3;
int endPos = memo_chat.indexOf("</p>"); int endPos = memo_chat.indexOf("</pre>");
int length = endPos - startPos; int length = endPos - startPos;
QString copymemo = memo_chat.mid(startPos, length); QString copymemo = memo_chat.mid(startPos, length);
@@ -1400,8 +1401,8 @@ void MainWindow::setupchatTab() {
QString memo_chat = index.data(Qt::DisplayRole).toString(); QString memo_chat = index.data(Qt::DisplayRole).toString();
QClipboard *clipboard = QGuiApplication::clipboard(); QClipboard *clipboard = QGuiApplication::clipboard();
int startPos = memo_chat.indexOf("<p>") + 3; int startPos = memo_chat.indexOf("<pre>") + 3;
int endPos = memo_chat.indexOf("</p>"); int endPos = memo_chat.indexOf("</pre>");
int length = endPos - startPos; int length = endPos - startPos;
QString copymemo = memo_chat.mid(startPos, length); QString copymemo = memo_chat.mid(startPos, length);
int startPosT = memo_chat.indexOf("<small>") + 7; int startPosT = memo_chat.indexOf("<small>") + 7;
@@ -1438,8 +1439,8 @@ void MainWindow::setupchatTab() {
QModelIndex index = ui->listChat->currentIndex(); QModelIndex index = ui->listChat->currentIndex();
QString memo_chat = index.data(Qt::DisplayRole).toString(); QString memo_chat = index.data(Qt::DisplayRole).toString();
int startPos = memo_chat.indexOf("<p>") + 3; int startPos = memo_chat.indexOf("<pre>") + 3;
int endPos = memo_chat.indexOf("</p>"); int endPos = memo_chat.indexOf("</pre>");
int length = endPos - startPos; int length = endPos - startPos;
QString copymemo = memo_chat.mid(startPos, length); QString copymemo = memo_chat.mid(startPos, length);
int startPosT = memo_chat.indexOf("<small>") + 7; int startPosT = memo_chat.indexOf("<small>") + 7;

View File

@@ -58,6 +58,7 @@ public:
void setPassword(QString Password); void setPassword(QString Password);
void addPubkey(QString requestZaddr, QString pubkey); void addPubkey(QString requestZaddr, QString pubkey);
void replaceWormholeClient(WormholeClient* newClient); void replaceWormholeClient(WormholeClient* newClient);
bool isWebsocketListening(); bool isWebsocketListening();