Browse Source

fix for incoming requests

pull/130/head
DenioD 4 years ago
parent
commit
852207199f
  1. 9
      src/DataStore/ChatDataStore.cpp
  2. 2
      src/Model/ChatItem.cpp
  3. 6
      src/addressbook.cpp
  4. 2
      src/addressbook.h
  5. 39
      src/chatmodel.cpp
  6. 44
      src/contactmodel.cpp
  7. 6
      src/contactmodel.h
  8. 52
      src/controller.cpp
  9. 13
      src/mainwindow.cpp
  10. 1
      src/mainwindow.h

9
src/DataStore/ChatDataStore.cpp

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

2
src/Model/ChatItem.cpp

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

6
src/addressbook.cpp

@ -41,7 +41,7 @@ void AddressBookModel::loadData()
"addresstablegeometry"
).toByteArray()
);
}
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 3: return labels.at(index.row()).getMyAddress();
case 4: return labels.at(index.row()).getCid();
}
}
return QVariant();
@ -405,8 +407,10 @@ void AddressBook::readFromStorage()
//qDebug() << "2:" << stuff[i][2];
ContactItem contact = ContactItem(stuff[i][0],stuff[i][1], stuff[i][2], stuff[i][3],stuff[i][4]);
//qDebug() << "contact=" << contact.toQTString();
// main->addLabel(stuff[i][2], stuff[i][1]);
allLabels.push_back(contact);
}
// qDebug() << "Read " << version << " Hush contacts from disk...";
file.close();

2
src/addressbook.h

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

39
src/chatmodel.cpp

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

44
src/contactmodel.cpp

@ -11,7 +11,25 @@
#include "settings.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)
{
@ -19,22 +37,20 @@ void ContactModel::renderContactList(QListView* view)
for(auto &c : AddressBook::getInstance()->getAllAddressLabels())
{
QString avatar = c.getAvatar();
QString avatar = c.getAvatar();
QStandardItem* Items1 = new QStandardItem(c.getName());
Items1->setData(QIcon(avatar),Qt::DecorationRole);
contact->appendRow(Items1);
view->setModel(contact);
view->setIconSize(QSize(60,70));
view->setUniformItemSizes(true);
view->setDragDropMode(QAbstractItemView::DropOnly);
view->show();
QStandardItem* Items1 = new QStandardItem(c.getName());
Items1->setData(QIcon(avatar),Qt::DecorationRole);
contact->appendRow(Items1);
view->setModel(contact);
view->setIconSize(QSize(60,70));
view->setUniformItemSizes(true);
view->setDragDropMode(QAbstractItemView::DropOnly);
view->show();
QString addr = c.getPartnerAddress();
QString label = c.getName();
this->addLabel(addr, label);
}
}

6
src/contactmodel.h

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

52
src/controller.cpp

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

13
src/mainwindow.cpp

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

1
src/mainwindow.h

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

Loading…
Cancel
Save