Add configuration age to listnetworks results and GUI.
This commit is contained in:
parent
31d718c4a4
commit
4296db2358
9 changed files with 130 additions and 57 deletions
|
@ -52,9 +52,10 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||
ui(new Ui::MainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
this->startTimer(1000);
|
||||
this->startTimer(1000); // poll service every second
|
||||
this->setEnabled(false); // gets enabled when updates are received
|
||||
mainWindow = this;
|
||||
this->cyclesSinceResponseFromService = 0;
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
|
@ -101,6 +102,11 @@ void MainWindow::timerEvent(QTimerEvent *event)
|
|||
zeroTierClient = new ZeroTier::Node::LocalClient(authToken.c_str(),0,&handleZTMessage,this);
|
||||
}
|
||||
|
||||
// TODO: do something more user-friendly here... or maybe try to restart
|
||||
// the service?
|
||||
if (++this->cyclesSinceResponseFromService == 3)
|
||||
QMessageBox::critical(this,"No Response from Service","The ZeroTier One service does not appear to be running.",QMessageBox::Ok,QMessageBox::NoButton);
|
||||
|
||||
zeroTierClient->send("info");
|
||||
zeroTierClient->send("listnetworks");
|
||||
zeroTierClient->send("listpeers");
|
||||
|
@ -119,9 +125,7 @@ void MainWindow::customEvent(QEvent *event)
|
|||
if (hdr[0] != "200")
|
||||
return;
|
||||
|
||||
// Enable main window on valid communication with service
|
||||
if (!this->isEnabled())
|
||||
this->setEnabled(true);
|
||||
this->cyclesSinceResponseFromService = 0;
|
||||
|
||||
if (hdr[1] == "info") {
|
||||
if (hdr.size() >= 3)
|
||||
|
@ -134,8 +138,8 @@ void MainWindow::customEvent(QEvent *event)
|
|||
std::map< std::string,std::vector<std::string> > byNwid;
|
||||
for(unsigned long i=1;i<m->ztMessage.size();++i) {
|
||||
std::vector<std::string> l(ZeroTier::Node::LocalClient::splitLine(m->ztMessage[i]));
|
||||
// 200 listnetworks <nwid> <name> <status> <type> <dev> <ips>
|
||||
if ((l.size() == 8)&&(l[2].length() == 16))
|
||||
// 200 listnetworks <nwid> <name> <status> <config age> <type> <dev> <ips>
|
||||
if ((l.size() == 9)&&(l[2].length() == 16))
|
||||
byNwid[l[2]] = l;
|
||||
}
|
||||
|
||||
|
@ -149,10 +153,10 @@ void MainWindow::customEvent(QEvent *event)
|
|||
if (byNwid.count(i->first)) {
|
||||
std::vector<std::string> &l = byNwid[i->first];
|
||||
i->second.second->setNetworkName(l[3]);
|
||||
i->second.second->setStatus(l[4]);
|
||||
i->second.second->setNetworkType(l[5]);
|
||||
i->second.second->setNetworkDeviceName(l[6]);
|
||||
i->second.second->setIps(l[7]);
|
||||
i->second.second->setStatus(l[4],l[5]);
|
||||
i->second.second->setNetworkType(l[6]);
|
||||
i->second.second->setNetworkDeviceName(l[7]);
|
||||
i->second.second->setIps(l[8]);
|
||||
} else {
|
||||
delete ui->networkListWidget->takeItem(i->second.first);
|
||||
}
|
||||
|
@ -163,10 +167,10 @@ void MainWindow::customEvent(QEvent *event)
|
|||
std::vector<std::string> &l = i->second;
|
||||
Network *nw = new Network((QWidget *)0,i->first);
|
||||
nw->setNetworkName(l[3]);
|
||||
nw->setStatus(l[4]);
|
||||
nw->setNetworkType(l[5]);
|
||||
nw->setNetworkDeviceName(l[6]);
|
||||
nw->setIps(l[7]);
|
||||
nw->setStatus(l[4],l[5]);
|
||||
nw->setNetworkType(l[6]);
|
||||
nw->setNetworkDeviceName(l[7]);
|
||||
nw->setIps(l[8]);
|
||||
QListWidgetItem *item = new QListWidgetItem();
|
||||
item->setSizeHint(nw->sizeHint());
|
||||
ui->networkListWidget->addItem(item);
|
||||
|
@ -186,13 +190,23 @@ void MainWindow::customEvent(QEvent *event)
|
|||
QString st(this->myAddress);
|
||||
st += " (";
|
||||
st += this->myStatus;
|
||||
st += ", v";
|
||||
st += this->myVersion;
|
||||
st += ", ";
|
||||
st += QString::number(this->numPeers);
|
||||
st += " peers)";
|
||||
while (st.size() < 38)
|
||||
while (st.size() < 45)
|
||||
st += QChar::Space;
|
||||
ui->statusAndAddressButton->setText(st);
|
||||
}
|
||||
|
||||
if (this->myStatus == "ONLINE") {
|
||||
if (!this->isEnabled())
|
||||
this->setEnabled(true);
|
||||
} else {
|
||||
if (this->isEnabled())
|
||||
this->setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_joinNetworkButton_clicked()
|
||||
|
@ -217,12 +231,6 @@ void MainWindow::on_actionAbout_triggered()
|
|||
about->show();
|
||||
}
|
||||
|
||||
void MainWindow::on_actionJoin_Network_triggered()
|
||||
{
|
||||
// Does the same thing as clicking join button on main UI
|
||||
on_joinNetworkButton_clicked();
|
||||
}
|
||||
|
||||
void MainWindow::on_networkIdLineEdit_textChanged(const QString &text)
|
||||
{
|
||||
QString newText;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue