update// refactored addressbook with new storage format
This commit is contained in:
5
compile.log
Normal file
5
compile.log
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
Compiling SilentDragonLite 1.2.2 with 4 threads...
|
||||||
|
g++ -c -include bin/SilentDragonLite -pipe -g -std=gnu++1y -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQAPPLICATION_CLASS=QApplication -D_FORTIFY_SOURCE=2 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_WEBSOCKETS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -Isrc/3rdparty -Isrc -Isingleapplication -Ires -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtWebSockets -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -Ibin -Isrc -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o bin/mainwindow.o src/mainwindow.cpp
|
||||||
|
g++ -c -include bin/SilentDragonLite -pipe -g -std=gnu++1y -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQAPPLICATION_CLASS=QApplication -D_FORTIFY_SOURCE=2 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_WEBSOCKETS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -Isrc/3rdparty -Isrc -Isingleapplication -Ires -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtWebSockets -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -Ibin -Isrc -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o bin/sendtab.o src/sendtab.cpp
|
||||||
|
g++ -c -include bin/SilentDragonLite -pipe -g -std=gnu++1y -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQAPPLICATION_CLASS=QApplication -D_FORTIFY_SOURCE=2 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_WEBSOCKETS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -Isrc/3rdparty -Isrc -Isingleapplication -Ires -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtWebSockets -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -Ibin -Isrc -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o bin/addressbook.o src/addressbook.cpp
|
||||||
|
g++ -c -include bin/SilentDragonLite -pipe -g -std=gnu++1y -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQAPPLICATION_CLASS=QApplication -D_FORTIFY_SOURCE=2 -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_WEBSOCKETS_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -Isrc/3rdparty -Isrc -Isingleapplication -Ires -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtWebSockets -isystem /usr/include/x86_64-linux-gnu/qt5/QtNetwork -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -Ibin -Isrc -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o bin/addresscombo.o src/addresscombo.cpp
|
||||||
@@ -38,10 +38,10 @@ void AddressBookModel::loadData()
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddressBookModel::addNewLabel(QString label, QString addr)
|
void AddressBookModel::addNewLabel(QString label, QString addr, QString myAddr)
|
||||||
{
|
{
|
||||||
//labels.push_back(QPair<QString, QString>(label, addr));
|
//labels.push_back(QPair<QString, QString>(label, addr));
|
||||||
AddressBook::getInstance()->addAddressLabel(label, addr);
|
AddressBook::getInstance()->addAddressLabel(label, addr, myAddr);
|
||||||
labels.clear();
|
labels.clear();
|
||||||
labels = AddressBook::getInstance()->getAllAddressLabels();
|
labels = AddressBook::getInstance()->getAllAddressLabels();
|
||||||
dataChanged(index(0, 0), index(labels.size()-1, columnCount(index(0,0))-1));
|
dataChanged(index(0, 0), index(labels.size()-1, columnCount(index(0,0))-1));
|
||||||
@@ -53,22 +53,27 @@ void AddressBookModel::removeItemAt(int row)
|
|||||||
if (row >= labels.size())
|
if (row >= labels.size())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
AddressBook::getInstance()->removeAddressLabel(labels[row].first, labels[row].second);
|
AddressBook::getInstance()->removeAddressLabel(labels[row].getName(), labels[row].getPartnerAddress());
|
||||||
labels.clear();
|
labels.clear();
|
||||||
labels = AddressBook::getInstance()->getAllAddressLabels();
|
labels = AddressBook::getInstance()->getAllAddressLabels();
|
||||||
dataChanged(index(0, 0), index(labels.size()-1, columnCount(index(0,0))-1));
|
dataChanged(index(0, 0), index(labels.size()-1, columnCount(index(0,0))-1));
|
||||||
layoutChanged();
|
layoutChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
QPair<QString, QString> AddressBookModel::itemAt(int row)
|
ContactItem AddressBookModel::itemAt(int row)
|
||||||
{
|
{
|
||||||
if (row >= labels.size())
|
if (row >= labels.size())
|
||||||
return QPair<QString, QString>();
|
{
|
||||||
|
ContactItem item = ContactItem("", "", "");
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return labels.at(row);
|
return labels.at(row);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int AddressBookModel::rowCount(const QModelIndex&) const
|
int AddressBookModel::rowCount(const QModelIndex&) const
|
||||||
{
|
{
|
||||||
return labels.size();
|
return labels.size();
|
||||||
@@ -86,8 +91,8 @@ QVariant AddressBookModel::data(const QModelIndex &index, int role) const
|
|||||||
{
|
{
|
||||||
switch(index.column())
|
switch(index.column())
|
||||||
{
|
{
|
||||||
case 0: return labels.at(index.row()).first;
|
case 0: return labels.at(index.row()).getName();
|
||||||
case 1: return labels.at(index.row()).second;
|
case 1: return labels.at(index.row()).getPartnerAddress();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,7 +176,7 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
model.addNewLabel(newLabel, ab.addr->text());
|
model.addNewLabel(newLabel, ab.addr->text(), "");
|
||||||
});
|
});
|
||||||
|
|
||||||
// Import Button
|
// Import Button
|
||||||
@@ -209,7 +214,7 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Add label, address.
|
// Add label, address.
|
||||||
model.addNewLabel(items.at(1), items.at(0));
|
model.addNewLabel(items.at(1), items.at(0), "");
|
||||||
numImported++;
|
numImported++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -233,8 +238,8 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target)
|
|||||||
if (index.row() < 0)
|
if (index.row() < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QString lbl = model.itemAt(index.row()).first;
|
QString lbl = model.itemAt(index.row()).getName();
|
||||||
QString addr = model.itemAt(index.row()).second;
|
QString addr = model.itemAt(index.row()).getPartnerAddress();
|
||||||
d.accept();
|
d.accept();
|
||||||
fnSetTargetLabelAddr(target, lbl, addr);
|
fnSetTargetLabelAddr(target, lbl, addr);
|
||||||
});
|
});
|
||||||
@@ -246,8 +251,8 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target)
|
|||||||
if (index.row() < 0)
|
if (index.row() < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QString lbl = model.itemAt(index.row()).first;
|
QString lbl = model.itemAt(index.row()).getName();
|
||||||
QString addr = model.itemAt(index.row()).second;
|
QString addr = model.itemAt(index.row()).getPartnerAddress();
|
||||||
|
|
||||||
QMenu menu(parent);
|
QMenu menu(parent);
|
||||||
|
|
||||||
@@ -273,7 +278,7 @@ void AddressBook::open(MainWindow* parent, QLineEdit* target)
|
|||||||
auto selection = ab.addresses->selectionModel();
|
auto selection = ab.addresses->selectionModel();
|
||||||
if (selection && selection->hasSelection() && selection->selectedRows().size() > 0) {
|
if (selection && selection->hasSelection() && selection->selectedRows().size() > 0) {
|
||||||
auto item = model.itemAt(selection->selectedRows().at(0).row());
|
auto item = model.itemAt(selection->selectedRows().at(0).row());
|
||||||
fnSetTargetLabelAddr(target, item.first, item.second);
|
fnSetTargetLabelAddr(target, item.getName(), item.getPartnerAddress());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -307,15 +312,35 @@ void AddressBook::readFromStorage()
|
|||||||
file.open(QIODevice::ReadOnly);
|
file.open(QIODevice::ReadOnly);
|
||||||
QDataStream in(&file); // read the data serialized from the file
|
QDataStream in(&file); // read the data serialized from the file
|
||||||
QString version;
|
QString version;
|
||||||
in >> version >> allLabels;
|
in >> version;
|
||||||
|
qDebug() << "Detected old addressbook format";
|
||||||
|
// Convert old addressbook format v1 to v2
|
||||||
|
QList<QList<QString>> stuff;
|
||||||
|
in >> stuff;
|
||||||
|
qDebug() << "Stuff: " << stuff;
|
||||||
|
for (int i=0; i < stuff.size(); i++)
|
||||||
|
{
|
||||||
|
//qDebug() << "0:" << stuff[i][0];
|
||||||
|
//qDebug() << "1:" << stuff[i][1];
|
||||||
|
//qDebug() << "2:" << stuff[i][2];
|
||||||
|
ContactItem contact = ContactItem(stuff[i][2], stuff[i][1], stuff[i][0]);
|
||||||
|
qDebug() << "contact=" << contact.toQTString();
|
||||||
|
allLabels.push_back(contact);
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug() << "Read " << version << " Hush contacts from disk...";
|
||||||
file.close();
|
file.close();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qDebug() << "No Hush contacts found on disk!";
|
||||||
|
}
|
||||||
|
|
||||||
// Special.
|
// Special.
|
||||||
// Add the default silentdragon donation address if it isn't already present
|
// Add the default silentdragon donation address if it isn't already present
|
||||||
// QList<QString> allAddresses;
|
// QList<QString> allAddresses;
|
||||||
// std::transform(allLabels.begin(), allLabels.end(),
|
// std::transform(allLabels.begin(), allLabels.end(),
|
||||||
// std::back_inserter(allAddresses), [=] (auto i) { return i.second; });
|
// std::back_inserter(allAddresses), [=] (auto i) { return i.getPartnerAddress(); });
|
||||||
// if (!allAddresses.contains(Settings::getDonationAddr(true))) {
|
// if (!allAddresses.contains(Settings::getDonationAddr(true))) {
|
||||||
// allLabels.append(QPair<QString, QString>("silentdragon donation", Settings::getDonationAddr(true)));
|
// allLabels.append(QPair<QString, QString>("silentdragon donation", Settings::getDonationAddr(true)));
|
||||||
// }
|
// }
|
||||||
@@ -326,7 +351,16 @@ void AddressBook::writeToStorage()
|
|||||||
QFile file(AddressBook::writeableFile());
|
QFile file(AddressBook::writeableFile());
|
||||||
file.open(QIODevice::ReadWrite | QIODevice::Truncate);
|
file.open(QIODevice::ReadWrite | QIODevice::Truncate);
|
||||||
QDataStream out(&file); // we will serialize the data into the file
|
QDataStream out(&file); // we will serialize the data into the file
|
||||||
out << QString("v1") << allLabels;
|
QList<QList<QString>> contacts;
|
||||||
|
for(auto &item: allLabels)
|
||||||
|
{
|
||||||
|
QList<QString> c;
|
||||||
|
c.push_back(item.getName());
|
||||||
|
c.push_back(item.getPartnerAddress());
|
||||||
|
c.push_back(item.getMyAddress());
|
||||||
|
contacts.push_back(c);
|
||||||
|
}
|
||||||
|
out << QString("v1") << contacts;
|
||||||
file.close();
|
file.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,17 +380,17 @@ QString AddressBook::writeableFile()
|
|||||||
|
|
||||||
|
|
||||||
// Add a new address/label to the database
|
// Add a new address/label to the database
|
||||||
void AddressBook::addAddressLabel(QString label, QString address)
|
void AddressBook::addAddressLabel(QString label, QString address, QString myAddr)
|
||||||
{
|
{
|
||||||
Q_ASSERT(Settings::isValidAddress(address));
|
Q_ASSERT(Settings::isValidAddress(address));
|
||||||
|
// getName(), remove any existing label
|
||||||
// First, remove any existing label
|
|
||||||
// Iterate over the list and remove the label/address
|
// Iterate over the list and remove the label/address
|
||||||
for (int i=0; i < allLabels.size(); i++)
|
for (int i=0; i < allLabels.size(); i++)
|
||||||
if (allLabels[i].first == label)
|
if (allLabels[i].getName() == label)
|
||||||
removeAddressLabel(allLabels[i].first, allLabels[i].second);
|
removeAddressLabel(allLabels[i].getName(), allLabels[i].getPartnerAddress());
|
||||||
|
|
||||||
allLabels.push_back(QPair<QString, QString>(label, address));
|
ContactItem item = ContactItem(myAddr, address, label);
|
||||||
|
allLabels.push_back(item);
|
||||||
writeToStorage();
|
writeToStorage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -366,7 +400,7 @@ void AddressBook::removeAddressLabel(QString label, QString address)
|
|||||||
// Iterate over the list and remove the label/address
|
// Iterate over the list and remove the label/address
|
||||||
for (int i=0; i < allLabels.size(); i++)
|
for (int i=0; i < allLabels.size(); i++)
|
||||||
{
|
{
|
||||||
if (allLabels[i].first == label && allLabels[i].second == address)
|
if (allLabels[i].getName() == label && allLabels[i].getPartnerAddress() == address)
|
||||||
{
|
{
|
||||||
allLabels.removeAt(i);
|
allLabels.removeAt(i);
|
||||||
writeToStorage();
|
writeToStorage();
|
||||||
@@ -380,9 +414,9 @@ void AddressBook::updateLabel(QString oldlabel, QString address, QString newlabe
|
|||||||
// Iterate over the list and update the label/address
|
// Iterate over the list and update the label/address
|
||||||
for (int i = 0; i < allLabels.size(); i++)
|
for (int i = 0; i < allLabels.size(); i++)
|
||||||
{
|
{
|
||||||
if (allLabels[i].first == oldlabel && allLabels[i].second == address)
|
if (allLabels[i].getName() == oldlabel && allLabels[i].getPartnerAddress() == address)
|
||||||
{
|
{
|
||||||
allLabels[i].first = newlabel;
|
allLabels[i].setName(newlabel);
|
||||||
writeToStorage();
|
writeToStorage();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -390,7 +424,7 @@ void AddressBook::updateLabel(QString oldlabel, QString address, QString newlabe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Read all addresses
|
// Read all addresses
|
||||||
const QList<QPair<QString, QString>>& AddressBook::getAllAddressLabels()
|
const QList<ContactItem>& AddressBook::getAllAddressLabels()
|
||||||
{
|
{
|
||||||
if (allLabels.isEmpty())
|
if (allLabels.isEmpty())
|
||||||
readFromStorage();
|
readFromStorage();
|
||||||
@@ -402,8 +436,8 @@ const QList<QPair<QString, QString>>& AddressBook::getAllAddressLabels()
|
|||||||
QString AddressBook::getLabelForAddress(QString addr)
|
QString AddressBook::getLabelForAddress(QString addr)
|
||||||
{
|
{
|
||||||
for (auto i : allLabels)
|
for (auto i : allLabels)
|
||||||
if (i.second == addr)
|
if (i.getPartnerAddress() == addr)
|
||||||
return i.first;
|
return i.getName();
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
@@ -412,8 +446,8 @@ QString AddressBook::getLabelForAddress(QString addr)
|
|||||||
QString AddressBook::getAddressForLabel(QString label)
|
QString AddressBook::getAddressForLabel(QString label)
|
||||||
{
|
{
|
||||||
for (auto i: allLabels)
|
for (auto i: allLabels)
|
||||||
if (i.first == label)
|
if (i.getName() == label)
|
||||||
return i.second;
|
return i.getPartnerAddress();
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#define ADDRESSBOOK_H
|
#define ADDRESSBOOK_H
|
||||||
|
|
||||||
#include "precompiled.h"
|
#include "precompiled.h"
|
||||||
|
#include "contactmodel.h"
|
||||||
|
|
||||||
class MainWindow;
|
class MainWindow;
|
||||||
|
|
||||||
@@ -10,10 +11,11 @@ class AddressBookModel : public QAbstractTableModel {
|
|||||||
public:
|
public:
|
||||||
AddressBookModel(QTableView* parent);
|
AddressBookModel(QTableView* parent);
|
||||||
~AddressBookModel();
|
~AddressBookModel();
|
||||||
|
|
||||||
void addNewLabel(QString label, QString addr);
|
void addNewLabel(QString label, QString address, QString myAddr);
|
||||||
void removeItemAt(int row);
|
void removeItemAt(int row);
|
||||||
QPair<QString, QString> itemAt(int row);
|
//QPair<QString, QString> itemAt(int row);
|
||||||
|
ContactItem itemAt(int row);
|
||||||
|
|
||||||
int rowCount(const QModelIndex &parent) const;
|
int rowCount(const QModelIndex &parent) const;
|
||||||
int columnCount(const QModelIndex &parent) const;
|
int columnCount(const QModelIndex &parent) const;
|
||||||
@@ -25,7 +27,8 @@ private:
|
|||||||
void saveData();
|
void saveData();
|
||||||
|
|
||||||
QTableView* parent;
|
QTableView* parent;
|
||||||
QList<QPair<QString, QString>> labels;
|
//QList<QPair<QString, QString>> labels;
|
||||||
|
QList<ContactItem> labels;
|
||||||
QStringList headers;
|
QStringList headers;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -39,7 +42,7 @@ public:
|
|||||||
static QString addressFromAddressLabel(const QString& lblAddr);
|
static QString addressFromAddressLabel(const QString& lblAddr);
|
||||||
|
|
||||||
// Add a new address/label to the database
|
// Add a new address/label to the database
|
||||||
void addAddressLabel(QString label, QString address);
|
void addAddressLabel(QString label, QString address, QString myAddr);
|
||||||
|
|
||||||
// Remove a new address/label from the database
|
// Remove a new address/label from the database
|
||||||
void removeAddressLabel(QString label, QString address);
|
void removeAddressLabel(QString label, QString address);
|
||||||
@@ -48,7 +51,7 @@ public:
|
|||||||
void updateLabel(QString oldlabel, QString address, QString newlabel);
|
void updateLabel(QString oldlabel, QString address, QString newlabel);
|
||||||
|
|
||||||
// Read all addresses
|
// Read all addresses
|
||||||
const QList<QPair<QString, QString>>& getAllAddressLabels();
|
const QList<ContactItem>& getAllAddressLabels();
|
||||||
|
|
||||||
// Get an address's first label
|
// Get an address's first label
|
||||||
QString getLabelForAddress(QString address);
|
QString getLabelForAddress(QString address);
|
||||||
@@ -61,7 +64,7 @@ private:
|
|||||||
void writeToStorage();
|
void writeToStorage();
|
||||||
|
|
||||||
QString writeableFile();
|
QString writeableFile();
|
||||||
QList<QPair<QString, QString>> allLabels;
|
QList<ContactItem> allLabels;
|
||||||
|
|
||||||
static AddressBook* instance;
|
static AddressBook* instance;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -86,8 +86,8 @@ void ChatModel::renderChatBox(QListWidget *view)
|
|||||||
myDateTime.setTime_t(c.second.getTimestamp());
|
myDateTime.setTime_t(c.second.getTimestamp());
|
||||||
qDebug() << "[" << myDateTime.toString("dd.MM.yyyy hh:mm:ss ") << "] " << "<" << c.second.getAddress() << "> :" << c.second.getMemo();
|
qDebug() << "[" << myDateTime.toString("dd.MM.yyyy hh:mm:ss ") << "] " << "<" << c.second.getAddress() << "> :" << c.second.getMemo();
|
||||||
line += QString("[") + myDateTime.toString("dd.MM.yyyy hh:mm:ss ") + QString("] ");
|
line += QString("[") + myDateTime.toString("dd.MM.yyyy hh:mm:ss ") + QString("] ");
|
||||||
line += QString("<") + QString(c.second.getAddress()) + QString("> :\n");
|
line += QString("<") + QString(c.second.getContact()) + QString("> :\n");
|
||||||
line += QString(c.second.getMemo());
|
line += QString(c.second.getMemo()) + QString("\n");
|
||||||
view->addItem(line);
|
view->addItem(line);
|
||||||
line ="";
|
line ="";
|
||||||
}
|
}
|
||||||
|
|||||||
9
src/contactmodel.cpp
Normal file
9
src/contactmodel.cpp
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#include "contactmodel.h"
|
||||||
|
|
||||||
|
void ContactModel::renderContactList(QListWidget* view)
|
||||||
|
{
|
||||||
|
for(auto &c : this->_contacts)
|
||||||
|
{
|
||||||
|
view->addItem(c.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
68
src/contactmodel.h
Normal file
68
src/contactmodel.h
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
#ifndef CONTACTMODEL_H
|
||||||
|
#define CONTACTMODEL_H
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <QString>
|
||||||
|
#include <QListWidget>
|
||||||
|
|
||||||
|
class ContactItem
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
QString _myAddress;
|
||||||
|
QString _partnerAddress;
|
||||||
|
QString _name;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ContactItem();
|
||||||
|
ContactItem(QString myAddress, QString partnerAddress, QString name)
|
||||||
|
{
|
||||||
|
_myAddress = myAddress;
|
||||||
|
_partnerAddress = partnerAddress;
|
||||||
|
_name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString getName() const
|
||||||
|
{
|
||||||
|
return _name;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString getMyAddress() const
|
||||||
|
{
|
||||||
|
return _myAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString getPartnerAddress() const
|
||||||
|
{
|
||||||
|
return _partnerAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setName(QString name)
|
||||||
|
{
|
||||||
|
_name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setMyAddress(QString myAddress)
|
||||||
|
{
|
||||||
|
_myAddress = myAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setPartnerAddress(QString partnerAddress)
|
||||||
|
{
|
||||||
|
_partnerAddress = partnerAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString toQTString()
|
||||||
|
{
|
||||||
|
return _name + "|" + _partnerAddress + "|" + _myAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
class ContactModel
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ContactModel() {}
|
||||||
|
void renderContactList(QListWidget* view);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -11,6 +11,7 @@ DataStore<QString>* DataStore<QString>::instance = nullptr;
|
|||||||
template<>
|
template<>
|
||||||
bool DataStore<QString>::instanced = false;
|
bool DataStore<QString>::instanced = false;
|
||||||
ChatModel *chatModel = new ChatModel();
|
ChatModel *chatModel = new ChatModel();
|
||||||
|
ContactModel *contactModel = new ContactModel();
|
||||||
|
|
||||||
using json = nlohmann::json;
|
using json = nlohmann::json;
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "liteinterface.h"
|
#include "liteinterface.h"
|
||||||
#include "connection.h"
|
#include "connection.h"
|
||||||
#include "chatmodel.h"
|
#include "chatmodel.h"
|
||||||
|
#include "contactmodel.h"
|
||||||
|
|
||||||
using json = nlohmann::json;
|
using json = nlohmann::json;
|
||||||
|
|
||||||
|
|||||||
@@ -1241,7 +1241,7 @@ void MainWindow::setupReceiveTab() {
|
|||||||
}
|
}
|
||||||
else if (curLabel.isEmpty() && !label.isEmpty()) {
|
else if (curLabel.isEmpty() && !label.isEmpty()) {
|
||||||
info = "Added Label '" % label % "'";
|
info = "Added Label '" % label % "'";
|
||||||
AddressBook::getInstance()->addAddressLabel(label, addr);
|
AddressBook::getInstance()->addAddressLabel(label, addr, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update labels everywhere on the UI
|
// Update labels everywhere on the UI
|
||||||
@@ -1291,7 +1291,7 @@ void MainWindow::updateTAddrCombo(bool checked) {
|
|||||||
auto allTaddrs = this->rpc->getModel()->getAllTAddresses();
|
auto allTaddrs = this->rpc->getModel()->getAllTAddresses();
|
||||||
QSet<QString> labels;
|
QSet<QString> labels;
|
||||||
for (auto p : AddressBook::getInstance()->getAllAddressLabels()) {
|
for (auto p : AddressBook::getInstance()->getAllAddressLabels()) {
|
||||||
labels.insert(p.second);
|
labels.insert(p.getPartnerAddress());
|
||||||
}
|
}
|
||||||
std::for_each(allTaddrs.begin(), allTaddrs.end(), [=, &addrs] (auto& taddr) {
|
std::for_each(allTaddrs.begin(), allTaddrs.end(), [=, &addrs] (auto& taddr) {
|
||||||
// If the address is in the address book, add it.
|
// If the address is in the address book, add it.
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ void MainWindow::updateLabelsAutoComplete() {
|
|||||||
auto labels = AddressBook::getInstance()->getAllAddressLabels();
|
auto labels = AddressBook::getInstance()->getAllAddressLabels();
|
||||||
|
|
||||||
std::transform(labels.begin(), labels.end(), std::back_inserter(list), [=] (auto la) -> QString {
|
std::transform(labels.begin(), labels.end(), std::back_inserter(list), [=] (auto la) -> QString {
|
||||||
return la.first % "/" % la.second;
|
return la.getName() % "/" % la.getPartnerAddress();
|
||||||
});
|
});
|
||||||
|
|
||||||
delete labelCompleter;
|
delete labelCompleter;
|
||||||
|
|||||||
Reference in New Issue
Block a user