2016-09-29 21:19:54 +02:00
|
|
|
#include "./utils.h"
|
2016-09-01 16:34:30 +02:00
|
|
|
|
|
|
|
#include <c++utilities/chrono/datetime.h>
|
|
|
|
|
|
|
|
#include <QString>
|
2016-12-18 16:50:35 +01:00
|
|
|
#include <QUrl>
|
|
|
|
#include <QHostAddress>
|
|
|
|
#include <QNetworkInterface>
|
2016-09-01 16:34:30 +02:00
|
|
|
#include <QCoreApplication>
|
|
|
|
|
|
|
|
using namespace ChronoUtilities;
|
|
|
|
|
|
|
|
namespace Data {
|
|
|
|
|
2016-12-18 16:50:35 +01:00
|
|
|
/*!
|
|
|
|
* \brief Returns a string like "2 min 45 s ago" for the specified \a dateTime.
|
|
|
|
*/
|
2016-09-01 16:34:30 +02:00
|
|
|
QString agoString(DateTime dateTime)
|
|
|
|
{
|
|
|
|
const TimeSpan delta(DateTime::now() - dateTime);
|
|
|
|
if(!delta.isNegative() && static_cast<uint64>(delta.totalTicks()) > (TimeSpan::ticksPerMinute / 4uL)) {
|
2016-12-18 16:50:35 +01:00
|
|
|
return QCoreApplication::translate("Data::Utils", "%1 ago").arg(QString::fromUtf8(delta.toString(TimeSpanOutputFormat::WithMeasures, true).data()));
|
2016-09-01 16:34:30 +02:00
|
|
|
} else {
|
|
|
|
return QCoreApplication::translate("Data::Utils", "right now");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-12-18 16:50:35 +01:00
|
|
|
/*!
|
|
|
|
* \brief Returns whether the host specified by the given \a url is the local machine.
|
|
|
|
*/
|
|
|
|
bool isLocal(const QUrl &url)
|
|
|
|
{
|
|
|
|
const QString host(url.host());
|
|
|
|
const QHostAddress hostAddress(host);
|
|
|
|
return host.compare(QLatin1String("localhost"), Qt::CaseInsensitive) == 0
|
|
|
|
|| hostAddress.isLoopback()
|
|
|
|
|| QNetworkInterface::allAddresses().contains(hostAddress);
|
|
|
|
}
|
|
|
|
|
2016-09-01 16:34:30 +02:00
|
|
|
}
|