Make a reset interface for discovery

..WifiChecker still isn't triggering as i'd like still
This commit is contained in:
Anton Thomasson 2020-01-02 21:28:35 +01:00
parent fb46694ab8
commit 1b5caf301d
3 changed files with 23 additions and 7 deletions

View file

@ -31,6 +31,9 @@ Page {
} }
} }
onSsidChanged: {
discovery.reset()
}
} }
signal refreshed() signal refreshed()

View file

@ -57,11 +57,22 @@ IppDiscovery::~IppDiscovery() {
delete socket; delete socket;
} }
void IppDiscovery::discover() { void IppDiscovery::discover() {
sendQuery(PTR, {"_ipp","_tcp","local"}); sendQuery(PTR, {"_ipp","_tcp","local"});
} }
void IppDiscovery::reset() {
_ipp = QStringList();
_rps = QMap<QString,QString>();
_ports = QMap<QString,quint16>();
_targets = QMap<QString,QString>();
_AAs = QMultiMap<QString,QString>();
_AAAAs = QMultiMap<QString,QString>();
discover();
}
void IppDiscovery::sendQuery(quint16 qtype, QStringList addr) { void IppDiscovery::sendQuery(quint16 qtype, QStringList addr) {
qDebug() << "discovering" << qtype << addr; qDebug() << "discovering" << qtype << addr;
@ -82,6 +93,8 @@ void IppDiscovery::sendQuery(quint16 qtype, QStringList addr) {
void IppDiscovery::update() void IppDiscovery::update()
{ {
QStringList found;
for(QStringList::Iterator it = _ipp.begin(); it != _ipp.end(); it++) for(QStringList::Iterator it = _ipp.begin(); it != _ipp.end(); it++)
{ {
quint16 port = _ports[*it]; quint16 port = _ports[*it];
@ -94,17 +107,17 @@ void IppDiscovery::update()
{ {
QString ip = ait.value(); QString ip = ait.value();
QString addr = ip+":"+QString::number(port)+"/"+rp; QString addr = ip+":"+QString::number(port)+"/"+rp;
if(!_found.contains(addr)) if(!found.contains(addr))
{ {
_found.append(addr); found.append(addr);
_found.sort(Qt::CaseInsensitive); found.sort(Qt::CaseInsensitive);
} }
} }
} }
} }
qDebug() << _favourites << _found; qDebug() << _favourites << found;
this->setStringList(_favourites+_found); this->setStringList(_favourites+found);
} }
void IppDiscovery::readPendingDatagrams() void IppDiscovery::readPendingDatagrams()

View file

@ -12,6 +12,7 @@ public:
~IppDiscovery(); ~IppDiscovery();
Q_PROPERTY(QStringList favourites MEMBER _favourites NOTIFY favouritesChanged) Q_PROPERTY(QStringList favourites MEMBER _favourites NOTIFY favouritesChanged)
Q_INVOKABLE void discover(); Q_INVOKABLE void discover();
Q_INVOKABLE void reset();
signals: signals:
void favouritesChanged(); void favouritesChanged();
@ -33,7 +34,6 @@ private:
QMultiMap<QString,QString> _AAAAs; QMultiMap<QString,QString> _AAAAs;
QStringList _favourites; QStringList _favourites;
QStringList _found;
QUdpSocket* socket; QUdpSocket* socket;
}; };