Move helper for setting traffic labels to connector

* Reduce code duplication for in and out
* Allow using the helper from Plasmoid
This commit is contained in:
Martchus 2017-08-29 23:50:34 +02:00
parent 6b01e42fe4
commit 2c1768c219
3 changed files with 26 additions and 26 deletions

View File

@ -1,6 +1,8 @@
#include "./utils.h"
#include "./syncthingconnection.h"
#include <c++utilities/chrono/datetime.h>
#include <c++utilities/conversion/stringconversion.h>
#include <QCoreApplication>
#include <QHostAddress>
@ -12,6 +14,7 @@
#include <QUrl>
using namespace ChronoUtilities;
using namespace ConversionUtilities;
namespace Data {
@ -29,6 +32,24 @@ QString agoString(DateTime dateTime)
}
}
/*!
* \brief Returns the "traffic string" for the specified \a total bytes and the specified \a rate.
*
* Eg. "10.2 GiB (45 kib/s)" or only "10.2 GiB" if rate is unknown or "unknown" if both values are unknown.
*/
QString trafficString(uint64 total, double rate)
{
static const QString unknownStr(QCoreApplication::translate("Data::Utils", "unknown"));
if (rate != 0.0) {
return total != SyncthingConnection::unknownTraffic
? QStringLiteral("%1 (%2)").arg(QString::fromUtf8(bitrateToString(rate, true).data()), QString::fromUtf8(dataSizeToString(total).data()))
: QString::fromUtf8(bitrateToString(rate, true).data());
} else if (total != SyncthingConnection::unknownTraffic) {
return QString::fromUtf8(dataSizeToString(total).data());
}
return unknownStr;
}
/*!
* \brief Returns whether the host specified by the given \a url is the local machine.
*/

View File

@ -3,6 +3,8 @@
#include "./global.h"
#include <c++utilities/conversion/types.h>
#include <QJsonValue>
#include <QStringList>
@ -18,6 +20,7 @@ class DateTime;
namespace Data {
QString LIB_SYNCTHING_CONNECTOR_EXPORT agoString(ChronoUtilities::DateTime dateTime);
QString LIB_SYNCTHING_CONNECTOR_EXPORT trafficString(uint64 total, double rate);
bool LIB_SYNCTHING_CONNECTOR_EXPORT isLocal(const QUrl &url);
bool LIB_SYNCTHING_CONNECTOR_EXPORT setDirectoriesPaused(QJsonObject &syncthingConfig, const QStringList &dirIds, bool paused);
bool LIB_SYNCTHING_CONNECTOR_EXPORT setDevicesPaused(QJsonObject &syncthingConfig, const QStringList &dirs, bool paused);

View File

@ -525,32 +525,8 @@ void TrayWidget::updateTraffic()
if (m_ui->trafficFormWidget->isHidden()) {
return;
}
static const QString unknownStr(tr("unknown"));
if (m_connection.isConnected()) {
if (m_connection.totalIncomingRate() != 0.0) {
m_ui->inTrafficLabel->setText(m_connection.totalIncomingTraffic() != SyncthingConnection::unknownTraffic
? QStringLiteral("%1 (%2)").arg(QString::fromUtf8(bitrateToString(m_connection.totalIncomingRate(), true).data()),
QString::fromUtf8(dataSizeToString(m_connection.totalIncomingTraffic()).data()))
: QString::fromUtf8(bitrateToString(m_connection.totalIncomingRate(), true).data()));
} else {
m_ui->inTrafficLabel->setText(m_connection.totalIncomingTraffic() != SyncthingConnection::unknownTraffic
? QString::fromUtf8(dataSizeToString(m_connection.totalIncomingTraffic()).data())
: unknownStr);
}
if (m_connection.totalOutgoingRate() != 0.0) {
m_ui->outTrafficLabel->setText(m_connection.totalIncomingTraffic() != SyncthingConnection::unknownTraffic
? QStringLiteral("%1 (%2)").arg(QString::fromUtf8(bitrateToString(m_connection.totalOutgoingRate(), true).data()),
QString::fromUtf8(dataSizeToString(m_connection.totalOutgoingTraffic()).data()))
: QString::fromUtf8(bitrateToString(m_connection.totalOutgoingRate(), true).data()));
} else {
m_ui->outTrafficLabel->setText(m_connection.totalOutgoingTraffic() != SyncthingConnection::unknownTraffic
? QString::fromUtf8(dataSizeToString(m_connection.totalOutgoingTraffic()).data())
: unknownStr);
}
} else {
m_ui->inTrafficLabel->setText(unknownStr);
m_ui->outTrafficLabel->setText(unknownStr);
}
m_ui->inTrafficLabel->setText(trafficString(m_connection.totalIncomingTraffic(), m_connection.totalIncomingRate()));
m_ui->outTrafficLabel->setText(trafficString(m_connection.totalOutgoingTraffic(), m_connection.totalOutgoingRate()));
}
#ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD