@@ -37,6 +37,42 @@ std::map<QString, ChatItem> ChatDataStore::getAllRawChatItems()
|
|||||||
return this->data;
|
return this->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::map<QString, ChatItem> ChatDataStore::getAllContactRequests()
|
||||||
|
{
|
||||||
|
std::map<QString, ChatItem> filteredItems;
|
||||||
|
for(auto &c: this->data)
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
(c.second.getType() == "cont") &&
|
||||||
|
(c.second.isOutgoing() == false) &&
|
||||||
|
(c.second.getMemo().startsWith("{"))
|
||||||
|
)
|
||||||
|
{
|
||||||
|
filteredItems[c.first] = c.second;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return filteredItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::map<QString, ChatItem> ChatDataStore::getAllMemos()
|
||||||
|
{
|
||||||
|
std::map<QString, ChatItem> filteredItems;
|
||||||
|
for(auto &c: this->data)
|
||||||
|
{
|
||||||
|
if (
|
||||||
|
|
||||||
|
(c.second.getMemo().startsWith("{") == false) &&
|
||||||
|
(c.second.getMemo().isEmpty() == false)
|
||||||
|
|
||||||
|
)
|
||||||
|
{
|
||||||
|
filteredItems[c.first] = c.second;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return filteredItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ChatDataStore* ChatDataStore::instance = nullptr;
|
ChatDataStore* ChatDataStore::instance = nullptr;
|
||||||
bool ChatDataStore::instanced = false;
|
bool ChatDataStore::instanced = false;
|
||||||
@@ -8,6 +8,8 @@ class ChatDataStore
|
|||||||
private:
|
private:
|
||||||
static bool instanced;
|
static bool instanced;
|
||||||
static ChatDataStore* instance;
|
static ChatDataStore* instance;
|
||||||
|
Ui::MainWindow* ui;
|
||||||
|
MainWindow* main;
|
||||||
std::map<QString, ChatItem> data;
|
std::map<QString, ChatItem> data;
|
||||||
ChatDataStore()
|
ChatDataStore()
|
||||||
{
|
{
|
||||||
@@ -20,6 +22,8 @@ class ChatDataStore
|
|||||||
void setData(QString key, ChatItem value);
|
void setData(QString key, ChatItem value);
|
||||||
ChatItem getData(QString key);
|
ChatItem getData(QString key);
|
||||||
std::map<QString, ChatItem> getAllRawChatItems();
|
std::map<QString, ChatItem> getAllRawChatItems();
|
||||||
|
std::map<QString, ChatItem> getAllContactRequests();
|
||||||
|
std::map<QString, ChatItem> getAllMemos();
|
||||||
QString dump();
|
QString dump();
|
||||||
|
|
||||||
~ChatDataStore()
|
~ChatDataStore()
|
||||||
|
|||||||
@@ -100,23 +100,27 @@ void ChatModel::renderChatBox(Ui::MainWindow* ui, QListView &view)
|
|||||||
|
|
||||||
void ChatModel::renderChatBox(Ui::MainWindow* ui, QListView *view)
|
void ChatModel::renderChatBox(Ui::MainWindow* ui, QListView *view)
|
||||||
{
|
{
|
||||||
QObject::connect(ui->pushContact, &QPushButton::clicked,[&] ()
|
|
||||||
{
|
|
||||||
renderContactRequest();
|
|
||||||
});
|
|
||||||
|
|
||||||
QStandardItemModel* chat = new QStandardItemModel();
|
QStandardItemModel* chat = new QStandardItemModel();
|
||||||
// ui->lcdNumber->setStyleSheet("background-color: red");
|
// ui->lcdNumber->setStyleSheet("background-color: red");
|
||||||
// ui->lcdNumber->setPalette(Qt::red);
|
// ui->lcdNumber->setPalette(Qt::red);
|
||||||
// ui->lcdNumber->display("1");
|
// ui->lcdNumber->display("1");
|
||||||
|
|
||||||
for (auto &c : DataStore::getChatDataStore()->getAllRawChatItems())//this->chatItems)
|
|
||||||
|
|
||||||
|
|
||||||
for (auto &p : AddressBook::getInstance()->getAllAddressLabels())
|
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
|
//////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.getMemo().startsWith("{") == false) && (c.second.getMemo().isEmpty() == false) && (c.second.isOutgoing() == true))
|
if (
|
||||||
|
(c.second.getContact() == ui->contactNameMemo->text().trimmed()) &&
|
||||||
|
(p.getPartnerAddress() == c.second.getAddress()) &&
|
||||||
|
(c.second.isOutgoing() == true)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
|
|
||||||
QStandardItem* Items = new QStandardItem(c.second.toChatLine());
|
QStandardItem* Items = new QStandardItem(c.second.toChatLine());
|
||||||
@@ -129,8 +133,13 @@ void ChatModel::renderChatBox(Ui::MainWindow* ui, QListView *view)
|
|||||||
ui->listChat->setModel(chat);
|
ui->listChat->setModel(chat);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((c.second.getContact() == ui->contactNameMemo->text().trimmed()) && ((p.getMyAddress() == c.second.getAddress()) && c.second.getMemo().startsWith("{") == false) && (c.second.getMemo().isEmpty() == false) && (c.second.isOutgoing() == false))
|
if (
|
||||||
|
(c.second.getContact() == ui->contactNameMemo->text().trimmed()) &&
|
||||||
|
(p.getMyAddress() == c.second.getAddress()) &&
|
||||||
|
(c.second.isOutgoing() == false)
|
||||||
|
)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
QStandardItem* Items1 = new QStandardItem(c.second.toChatLine());
|
QStandardItem* Items1 = new QStandardItem(c.second.toChatLine());
|
||||||
@@ -143,48 +152,33 @@ void ChatModel::renderChatBox(Ui::MainWindow* ui, QListView *view)
|
|||||||
|
|
||||||
ui->listChat->setModel(chat);
|
ui->listChat->setModel(chat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChatModel::renderContactRequest(){
|
void MainWindow::renderContactRequest(){
|
||||||
|
|
||||||
Ui_requestDialog requestContact;
|
Ui_requestDialog requestContact;
|
||||||
QDialog dialog(main);
|
QDialog dialog(this);
|
||||||
requestContact.setupUi(&dialog);
|
requestContact.setupUi(&dialog);
|
||||||
Settings::saveRestore(&dialog);
|
Settings::saveRestore(&dialog);
|
||||||
|
|
||||||
{
|
QStandardItemModel* contactRequest = new QStandardItemModel();
|
||||||
QStandardItemModel* contactRequest = new QStandardItemModel();
|
|
||||||
|
|
||||||
|
{
|
||||||
for (auto &c : DataStore::getChatDataStore()->getAllRawChatItems())//this->chatItems)
|
for (auto &c : DataStore::getChatDataStore()->getAllContactRequests())
|
||||||
{
|
{
|
||||||
|
|
||||||
if ((c.second.getType() == "cont") && (c.second.isOutgoing() == false) && (c.second.getMemo().startsWith("{"))) {
|
|
||||||
|
|
||||||
|
QStandardItem* Items = new QStandardItem(c.second.getAddress());
|
||||||
|
contactRequest->appendRow(Items);
|
||||||
|
requestContact.requestContact->setModel(contactRequest);
|
||||||
|
requestContact.requestContact->show();
|
||||||
|
}
|
||||||
QStandardItem* Items = new QStandardItem(c.second.getAddress());
|
}
|
||||||
contactRequest->appendRow(Items);
|
|
||||||
requestContact.requestContact->setModel(contactRequest);
|
|
||||||
requestContact.requestContact->show();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QObject::connect(requestContact.requestContact, &QTableView::clicked, [&] () {
|
QObject::connect(requestContact.requestContact, &QTableView::clicked, [&] () {
|
||||||
|
|
||||||
@@ -214,8 +208,6 @@ void ChatModel::renderContactRequest(){
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QObject::connect(requestContact.pushButton, &QPushButton::clicked, [&] () {
|
QObject::connect(requestContact.pushButton, &QPushButton::clicked, [&] () {
|
||||||
|
|
||||||
QString cid = requestContact.requestCID->text();
|
QString cid = requestContact.requestCID->text();
|
||||||
@@ -225,12 +217,33 @@ void ChatModel::renderContactRequest(){
|
|||||||
|
|
||||||
QString avatar = QString(":/icons/res/") + requestContact.comboBoxAvatar->currentText() + QString(".png");
|
QString avatar = QString(":/icons/res/") + requestContact.comboBoxAvatar->currentText() + QString(".png");
|
||||||
|
|
||||||
|
if (addr.isEmpty() || newLabel.isEmpty())
|
||||||
|
{
|
||||||
|
QMessageBox::critical(
|
||||||
|
this,
|
||||||
|
QObject::tr("Address or Label Error"),
|
||||||
|
QObject::tr("Address or Label cannot be empty"),
|
||||||
|
QMessageBox::Ok
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test if address is valid.
|
||||||
|
if (!Settings::isValidAddress(addr))
|
||||||
|
{
|
||||||
|
QMessageBox::critical(
|
||||||
|
this,
|
||||||
|
QObject::tr("Address Format Error"),
|
||||||
|
QObject::tr("%1 doesn't seem to be a valid hush address.").arg(addr),
|
||||||
|
QMessageBox::Ok
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
qDebug()<<"Beginn kopiert" <<cid << addr << newLabel << myAddr;
|
qDebug()<<"Beginn kopiert" <<cid << addr << newLabel << myAddr;
|
||||||
AddressBook::getInstance()->addAddressLabel(newLabel, addr, myAddr, cid, avatar);
|
AddressBook::getInstance()->addAddressLabel(newLabel, addr, myAddr, cid, avatar);
|
||||||
|
|
||||||
QMessageBox::information(main, "Added Contact","successfully added your new contact. You can now Chat with this contact");
|
QMessageBox::information(this, "Added Contact","successfully added your new contact. You can now Chat with this contact");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -238,8 +251,6 @@ void ChatModel::renderContactRequest(){
|
|||||||
dialog.exec();
|
dialog.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void ChatModel::addCid(QString tx, QString cid)
|
void ChatModel::addCid(QString tx, QString cid)
|
||||||
{
|
{
|
||||||
this->cidMap[tx] = cid;
|
this->cidMap[tx] = cid;
|
||||||
|
|||||||
@@ -329,7 +329,7 @@ class ChatModel
|
|||||||
void setItems(std::vector<ChatItem> items);
|
void setItems(std::vector<ChatItem> items);
|
||||||
void renderChatBox(Ui::MainWindow* ui, QListView &view);
|
void renderChatBox(Ui::MainWindow* ui, QListView &view);
|
||||||
void renderChatBox(Ui::MainWindow* ui, QListView *view);
|
void renderChatBox(Ui::MainWindow* ui, QListView *view);
|
||||||
void renderContactRequest();
|
// void renderContactRequest();
|
||||||
void triggerRequest();
|
void triggerRequest();
|
||||||
void showMessages();
|
void showMessages();
|
||||||
void clear();
|
void clear();
|
||||||
|
|||||||
@@ -1057,6 +1057,7 @@ void MainWindow::setupchatTab() {
|
|||||||
QObject::connect(ui->sendChatButton, &QPushButton::clicked, this, &MainWindow::sendChatButton);
|
QObject::connect(ui->sendChatButton, &QPushButton::clicked, this, &MainWindow::sendChatButton);
|
||||||
QObject::connect(ui->sendContact, &QPushButton::clicked, this, &MainWindow::ContactRequest);
|
QObject::connect(ui->sendContact, &QPushButton::clicked, this, &MainWindow::ContactRequest);
|
||||||
QObject::connect(ui->safeContactRequest, &QPushButton::clicked, this, &MainWindow::addContact);
|
QObject::connect(ui->safeContactRequest, &QPushButton::clicked, this, &MainWindow::addContact);
|
||||||
|
QObject::connect(ui->pushContact, &QPushButton::clicked, this , &MainWindow::renderContactRequest);
|
||||||
|
|
||||||
///////// Set selected Zaddr for Chat with Klick
|
///////// Set selected Zaddr for Chat with Klick
|
||||||
|
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ public:
|
|||||||
|
|
||||||
void updateLabels();
|
void updateLabels();
|
||||||
void updateTAddrCombo(bool checked);
|
void updateTAddrCombo(bool checked);
|
||||||
|
// void renderContactRequest();
|
||||||
// void setChatItem(ChatItem* item);
|
// void setChatItem(ChatItem* item);
|
||||||
//void ChatItem* getChatItem();
|
//void ChatItem* getChatItem();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user