Hide unreachable hosts in connection page

This commit is contained in:
Michael Zanetti 2019-03-13 13:46:30 +01:00
parent 9fc7275bce
commit f1eb0e30cf
3 changed files with 34 additions and 0 deletions

View File

@ -210,6 +210,21 @@ void NymeaHostsFilterModel::setShowUnreachableBearers(bool showUnreachableBearer
}
}
bool NymeaHostsFilterModel::showUnreachableHosts() const
{
return m_showUneachableHosts;
}
void NymeaHostsFilterModel::setShowUnreachableHosts(bool showUnreachableHosts)
{
if (m_showUneachableHosts != showUnreachableHosts) {
m_showUneachableHosts = showUnreachableHosts;
emit showUnreachableHostsChanged();
invalidateFilter();
emit countChanged();
}
}
NymeaHost *NymeaHostsFilterModel::get(int index) const
{
return m_nymeaDiscovery->nymeaHosts()->get(mapToSource(this->index(index, 0)).row());
@ -249,5 +264,17 @@ bool NymeaHostsFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &s
return false;
}
}
if (!m_showUneachableHosts) {
bool isOnline = false;
for (int i = 0; i < host->connections()->rowCount(); i++) {
if (host->connections()->get(i)->online()) {
isOnline = true;
break;
}
}
if (!isOnline) {
return false;
}
}
return true;
}

View File

@ -79,6 +79,7 @@ class NymeaHostsFilterModel: public QSortFilterProxyModel
Q_PROPERTY(NymeaDiscovery* discovery READ discovery WRITE setDiscovery NOTIFY discoveryChanged)
Q_PROPERTY(NymeaConnection* nymeaConnection READ nymeaConnection WRITE setNymeaConnection NOTIFY nymeaConnectionChanged)
Q_PROPERTY(bool showUnreachableBearers READ showUnreachableBearers WRITE setShowUnreachableBearers NOTIFY showUnreachableBearersChanged)
Q_PROPERTY(bool showUnreachableHosts READ showUnreachableHosts WRITE setShowUnreachableHosts NOTIFY showUnreachableHostsChanged)
public:
NymeaHostsFilterModel(QObject *parent = nullptr);
@ -92,6 +93,9 @@ public:
bool showUnreachableBearers() const;
void setShowUnreachableBearers(bool showUnreachableBearers);
bool showUnreachableHosts() const;
void setShowUnreachableHosts(bool showUnreachableHosts);
Q_INVOKABLE NymeaHost* get(int index) const;
signals:
@ -99,6 +103,7 @@ signals:
void discoveryChanged();
void nymeaConnectionChanged();
void showUnreachableBearersChanged();
void showUnreachableHostsChanged();
protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
@ -108,6 +113,7 @@ private:
NymeaConnection *m_nymeaConnection = nullptr;
bool m_showUneachableBearers = false;
bool m_showUneachableHosts = false;
};

View File

@ -43,6 +43,7 @@ Page {
discovery: _discovery
showUnreachableBearers: false
nymeaConnection: engine.connection
showUnreachableHosts: false
}
Component {