From 635c26ca94d131d14af7d3948b0b22db3b84ddb6 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Tue, 8 Dec 2009 19:00:50 +0100 Subject: [PATCH] Improve lag display Don't show if we're disconnected. Also, for lag >= 100 ms, show it in seconds. --- src/client/coreconnection.cpp | 12 +++++++----- src/client/coreconnection.h | 1 + src/qtui/coreconnectionstatuswidget.cpp | 5 +++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/client/coreconnection.cpp b/src/client/coreconnection.cpp index 59d3f8ff..460b3b70 100644 --- a/src/client/coreconnection.cpp +++ b/src/client/coreconnection.cpp @@ -45,6 +45,12 @@ CoreConnection::CoreConnection(CoreAccountModel *model, QObject *parent) _progressValue(-1) { qRegisterMetaType("CoreConnection::ConnectionState"); +} + +void CoreConnection::init() { + Client::signalProxy()->setHeartBeatInterval(30); + connect(Client::signalProxy(), SIGNAL(disconnected()), SLOT(coreSocketDisconnected())); + connect(Client::signalProxy(), SIGNAL(lagUpdated(int)), SIGNAL(lagUpdated(int))); _reconnectTimer.setSingleShot(true); connect(&_reconnectTimer, SIGNAL(timeout()), SLOT(reconnectTimeout())); @@ -53,11 +59,6 @@ CoreConnection::CoreConnection(CoreAccountModel *model, QObject *parent) connect(Solid::Networking::notifier(), SIGNAL(statusChanged(Solid::Networking::Status)), SLOT(solidNetworkStatusChanged(Solid::Networking::Status))); #endif -} - -void CoreConnection::init() { - Client::signalProxy()->setHeartBeatInterval(30); - connect(Client::signalProxy(), SIGNAL(disconnected()), SLOT(coreSocketDisconnected())); CoreConnectionSettings s; s.initAndNotify("PingTimeoutInterval", this, SLOT(pingTimeoutIntervalChanged(QVariant)), 60); @@ -336,6 +337,7 @@ void CoreConnection::resetConnection(bool wantReconnect) { setProgressMaximum(-1); // disable setState(Disconnected); + emit lagUpdated(-1); emit connectionMsg(tr("Disconnected from core.")); emit encrypted(false); diff --git a/src/client/coreconnection.h b/src/client/coreconnection.h index a06a8101..a1d6cda0 100644 --- a/src/client/coreconnection.h +++ b/src/client/coreconnection.h @@ -84,6 +84,7 @@ signals: void stateChanged(CoreConnection::ConnectionState); void encrypted(bool isEncrypted = true); void synchronized(); + void lagUpdated(int msecs); void connectionError(const QString &errorMsg); void connectionErrorPopup(const QString &errorMsg); diff --git a/src/qtui/coreconnectionstatuswidget.cpp b/src/qtui/coreconnectionstatuswidget.cpp index 34cdc667..7910fb8a 100644 --- a/src/qtui/coreconnectionstatuswidget.cpp +++ b/src/qtui/coreconnectionstatuswidget.cpp @@ -40,7 +40,7 @@ CoreConnectionStatusWidget::CoreConnectionStatusWidget(CoreConnection *connectio connect(coreConnection(), SIGNAL(stateChanged(CoreConnection::ConnectionState)), SLOT(connectionStateChanged(CoreConnection::ConnectionState))); connect(coreConnection(), SIGNAL(connectionError(QString)), ui.messageLabel, SLOT(setText(QString))); - connect(Client::signalProxy(), SIGNAL(lagUpdated(int)), SLOT(updateLag(int))); + connect(coreConnection(), SIGNAL(lagUpdated(int)), SLOT(updateLag(int))); } void CoreConnectionStatusWidget::update() { @@ -58,7 +58,8 @@ void CoreConnectionStatusWidget::update() { void CoreConnectionStatusWidget::updateLag(int msecs) { if(msecs >= 0) { - ui.lagLabel->setText(tr("(Lag: %1 ms)").arg(msecs)); + QString unit = msecs >= 100 ? tr("s", "seconds") : tr("ms", "milliseconds"); + ui.lagLabel->setText(tr("(Lag: %1 %2)").arg(msecs >= 100 ? msecs / 1000. : msecs, 0, 'f', (int)(msecs >= 100)).arg(unit)); if(!ui.lagLabel->isVisible()) ui.lagLabel->show(); } else { -- 2.20.1