Continues migration with DDS, Common
This commit is contained in:
1 parent
9b15cee841
commit
fa48db111e
668 files changed
+111841
-2
No files matched your search
Executable
+343
@@ -0,0 +1,343 @@
|
||||
#include "timeline_utils.h"
|
||||
|
||||
#include <ngltools/ngltools_dtg.h>
|
||||
#include <LtsTimeline/ltstimeline_export.h>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDateTime>
|
||||
|
||||
|
||||
namespace LtsTimeline
|
||||
{
|
||||
|
||||
namespace DateTime
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
int numberOfDateTimeFormats()
|
||||
{
|
||||
return 6;
|
||||
}
|
||||
|
||||
QString toString(qint64 time, Format format)
|
||||
{
|
||||
switch (format)
|
||||
{
|
||||
case Format::DTG:
|
||||
return DTG::toStringMSec(time, DTG::DisplayFormat::Long);
|
||||
case Format::ISODate:
|
||||
return QDateTime::fromMSecsSinceEpoch(time).toString(Qt::ISODate);
|
||||
case Format::Standard:
|
||||
return QDateTime::fromMSecsSinceEpoch(time).toString(QStringLiteral("dd.MM.yyyy hh:mm:ss"));
|
||||
case Format::DTGShort:
|
||||
{
|
||||
QDateTime dateTime = QDateTime::fromMSecsSinceEpoch(time).toUTC().addSecs(DTG::timezone2Hours(DTG::timezone()) * 3600);
|
||||
return dateTime.toString(QStringLiteral("hhmmss ")) + QStringLiteral("%1").arg(DTG::timezone());
|
||||
}
|
||||
case Format::DTGVeryShort:
|
||||
{
|
||||
QDateTime dateTime = QDateTime::fromMSecsSinceEpoch(time).toUTC().addSecs(DTG::timezone2Hours(DTG::timezone()) * 3600);
|
||||
return dateTime.toString(QStringLiteral("hhmm"));
|
||||
}
|
||||
case Format::TimeOnly:
|
||||
return QTime::fromMSecsSinceStartOfDay(time).toString();
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
namespace Zoom
|
||||
{
|
||||
|
||||
int numberOfZoomFactors()
|
||||
{
|
||||
return 15;
|
||||
}
|
||||
|
||||
Factor LTSTIMELINE_EXPORT increment(Factor factor)
|
||||
{
|
||||
switch (factor)
|
||||
{
|
||||
case ZoomFactor::FifteenSeconds:
|
||||
return ZoomFactor::ThirtySeconds;
|
||||
case ZoomFactor::ThirtySeconds:
|
||||
return ZoomFactor::SixtySeconds;
|
||||
case ZoomFactor::SixtySeconds:
|
||||
return ZoomFactor::TwoMinutes;
|
||||
case ZoomFactor::TwoMinutes:
|
||||
return ZoomFactor::ThreeMinutes;
|
||||
case ZoomFactor::ThreeMinutes:
|
||||
return ZoomFactor::FiveMinutes;
|
||||
case ZoomFactor::FiveMinutes:
|
||||
return ZoomFactor::TenMinutes;
|
||||
case ZoomFactor::TenMinutes:
|
||||
return ZoomFactor::FifteenMinutes;
|
||||
case ZoomFactor::FifteenMinutes:
|
||||
return ZoomFactor::ThirtyMinutes;
|
||||
case ZoomFactor::ThirtyMinutes:
|
||||
return ZoomFactor::SixtyMinutes;
|
||||
case ZoomFactor::SixtyMinutes:
|
||||
return ZoomFactor::TwoHours;
|
||||
case ZoomFactor::TwoHours:
|
||||
return ZoomFactor::FourHours;
|
||||
case ZoomFactor::FourHours:
|
||||
return ZoomFactor::EightHours;
|
||||
case ZoomFactor::EightHours:
|
||||
return ZoomFactor::TwelveHours;
|
||||
case ZoomFactor::TwelveHours:
|
||||
return ZoomFactor::OneDay;
|
||||
case ZoomFactor::OneDay:
|
||||
return ZoomFactor::OneDay;
|
||||
}
|
||||
return factor;
|
||||
}
|
||||
|
||||
Factor LTSTIMELINE_EXPORT decrement(Factor factor)
|
||||
{
|
||||
switch (factor)
|
||||
{
|
||||
case ZoomFactor::FifteenSeconds:
|
||||
return ZoomFactor::FifteenSeconds;
|
||||
case ZoomFactor::ThirtySeconds:
|
||||
return ZoomFactor::FifteenSeconds;
|
||||
case ZoomFactor::SixtySeconds:
|
||||
return ZoomFactor::ThirtySeconds;
|
||||
case ZoomFactor::TwoMinutes:
|
||||
return ZoomFactor::SixtySeconds;
|
||||
case ZoomFactor::ThreeMinutes:
|
||||
return ZoomFactor::TwoMinutes;
|
||||
case ZoomFactor::FiveMinutes:
|
||||
return ZoomFactor::ThreeMinutes;
|
||||
case ZoomFactor::TenMinutes:
|
||||
return ZoomFactor::FiveMinutes;
|
||||
case ZoomFactor::FifteenMinutes:
|
||||
return ZoomFactor::TenMinutes;
|
||||
case ZoomFactor::ThirtyMinutes:
|
||||
return ZoomFactor::FifteenMinutes;
|
||||
case ZoomFactor::SixtyMinutes:
|
||||
return ZoomFactor::ThirtyMinutes;
|
||||
case ZoomFactor::TwoHours:
|
||||
return ZoomFactor::SixtyMinutes;
|
||||
case ZoomFactor::FourHours:
|
||||
return ZoomFactor::TwoHours;
|
||||
case ZoomFactor::EightHours:
|
||||
return ZoomFactor::FourHours;
|
||||
case ZoomFactor::TwelveHours:
|
||||
return ZoomFactor::EightHours;
|
||||
case ZoomFactor::OneDay:
|
||||
return ZoomFactor::TwelveHours;
|
||||
}
|
||||
return factor;
|
||||
}
|
||||
|
||||
Factor ceil(int value)
|
||||
{
|
||||
if (value >= Factor::OneDay)
|
||||
return Factor::OneDay;
|
||||
|
||||
Factor ret = Factor::FifteenSeconds;
|
||||
while (static_cast<int>(ret) < value)
|
||||
{
|
||||
ret = increment(ret);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Factor floor(int value)
|
||||
{
|
||||
if (value <= Factor::FifteenSeconds)
|
||||
return Factor::FifteenSeconds;
|
||||
|
||||
Factor ret = Factor::OneDay;
|
||||
while (static_cast<int>(ret) > value)
|
||||
{
|
||||
ret = decrement(ret);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
QVector<Factor> availableZoomFactors(Factor min, Factor max)
|
||||
{
|
||||
if (min > max)
|
||||
return {};
|
||||
|
||||
ZoomFactors ret;
|
||||
ret.reserve(numberOfZoomFactors());
|
||||
Factor factor = min;
|
||||
do
|
||||
{
|
||||
ret.append(factor);
|
||||
if (factor == max)
|
||||
break;
|
||||
factor = increment(factor);
|
||||
} while (increment(factor) > factor);
|
||||
return ret;
|
||||
}
|
||||
|
||||
QString toString(ZoomFactor factor, bool useShort)
|
||||
{
|
||||
switch (factor)
|
||||
{
|
||||
case ZoomFactor::FifteenSeconds:
|
||||
return useShort ? QApplication::tr("15 sec") : QApplication::tr("15 Seconds");
|
||||
case ZoomFactor::ThirtySeconds:
|
||||
return useShort ? QApplication::tr("30 sec") : QApplication::tr("30 Seconds");
|
||||
case ZoomFactor::SixtySeconds:
|
||||
return useShort ? QApplication::tr("1 min") : QApplication::tr("1 Minute");
|
||||
case ZoomFactor::TwoMinutes:
|
||||
return useShort ? QApplication::tr("2 min") : QApplication::tr("2 Minutes");
|
||||
case ZoomFactor::ThreeMinutes:
|
||||
return useShort ? QApplication::tr("3 min") : QApplication::tr("3 Minutes");
|
||||
case ZoomFactor::FiveMinutes:
|
||||
return useShort ? QApplication::tr("5 min") : QApplication::tr("5 Minutes");
|
||||
case ZoomFactor::TenMinutes:
|
||||
return useShort ? QApplication::tr("10 min") : QApplication::tr("10 Minutes");
|
||||
case ZoomFactor::FifteenMinutes:
|
||||
return useShort ? QApplication::tr("15 min") : QApplication::tr("15 Minutes");
|
||||
case ZoomFactor::ThirtyMinutes:
|
||||
return useShort ? QApplication::tr("30 min") : QApplication::tr("30 Minutes");
|
||||
case ZoomFactor::SixtyMinutes:
|
||||
return useShort ? QApplication::tr("1 h") : QApplication::tr("1 Hour");
|
||||
case ZoomFactor::TwoHours:
|
||||
return useShort ? QApplication::tr("2 h") : QApplication::tr("2 Hours");
|
||||
case ZoomFactor::FourHours:
|
||||
return useShort ? QApplication::tr("4 h") : QApplication::tr("4 Hours");
|
||||
case ZoomFactor::EightHours:
|
||||
return useShort ? QApplication::tr("8 h") : QApplication::tr("8 Hours");
|
||||
case ZoomFactor::TwelveHours:
|
||||
return useShort ? QApplication::tr("12 h") : QApplication::tr("12 Hours");
|
||||
case ZoomFactor::OneDay:
|
||||
return useShort ? QApplication::tr("1 d") : QApplication::tr("1 Day");
|
||||
}
|
||||
return useShort ? QApplication::tr("N/A") : QApplication::tr("Unknown");
|
||||
}
|
||||
|
||||
QString toShortString(Factor factor)
|
||||
{
|
||||
return toString(factor, true);
|
||||
}
|
||||
|
||||
int majorInterval(ZoomFactor factor)
|
||||
{
|
||||
switch (factor)
|
||||
{
|
||||
case ZoomFactor::FifteenSeconds:
|
||||
return 3000;
|
||||
case ZoomFactor::ThirtySeconds:
|
||||
return 5000;
|
||||
case ZoomFactor::SixtySeconds:
|
||||
return 10000;
|
||||
case ZoomFactor::TwoMinutes:
|
||||
return 15000;
|
||||
case ZoomFactor::ThreeMinutes:
|
||||
return 30000;
|
||||
case ZoomFactor::FiveMinutes:
|
||||
return 60000;
|
||||
case ZoomFactor::TenMinutes:
|
||||
return 60000;
|
||||
case ZoomFactor::FifteenMinutes:
|
||||
return 180000;
|
||||
case ZoomFactor::ThirtyMinutes:
|
||||
return 300000;
|
||||
case ZoomFactor::SixtyMinutes:
|
||||
return 600000;
|
||||
case ZoomFactor::TwoHours:
|
||||
return 900000;
|
||||
case ZoomFactor::FourHours:
|
||||
return 1800000;
|
||||
case ZoomFactor::EightHours:
|
||||
return 3600000;
|
||||
case ZoomFactor::TwelveHours:
|
||||
return 5400000;
|
||||
case ZoomFactor::OneDay:
|
||||
return 7200000;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int mediumInterval(ZoomFactor factor)
|
||||
{
|
||||
switch (factor)
|
||||
{
|
||||
case ZoomFactor::FifteenSeconds:
|
||||
return -1;
|
||||
case ZoomFactor::ThirtySeconds:
|
||||
return -1;
|
||||
case ZoomFactor::SixtySeconds:
|
||||
return 5000;
|
||||
case ZoomFactor::TwoMinutes:
|
||||
return 6000;
|
||||
case ZoomFactor::ThreeMinutes:
|
||||
return 10000;
|
||||
case ZoomFactor::FiveMinutes:
|
||||
return 15000;
|
||||
case ZoomFactor::TenMinutes:
|
||||
return 20000;
|
||||
case ZoomFactor::FifteenMinutes:
|
||||
return 60000;
|
||||
case ZoomFactor::ThirtyMinutes:
|
||||
return 100000;
|
||||
case ZoomFactor::SixtyMinutes:
|
||||
return 150000;
|
||||
case ZoomFactor::TwoHours:
|
||||
return 300000;
|
||||
case ZoomFactor::FourHours:
|
||||
return 600000;
|
||||
case ZoomFactor::EightHours:
|
||||
return 900000;
|
||||
case ZoomFactor::TwelveHours:
|
||||
return 1800000;
|
||||
case ZoomFactor::OneDay:
|
||||
return 2400000;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int minorInterval(ZoomFactor factor)
|
||||
{
|
||||
switch (factor)
|
||||
{
|
||||
case ZoomFactor::FifteenSeconds:
|
||||
return 1000;
|
||||
case ZoomFactor::ThirtySeconds:
|
||||
return 1000;
|
||||
case ZoomFactor::SixtySeconds:
|
||||
return 1000;
|
||||
case ZoomFactor::TwoMinutes:
|
||||
return 3000;
|
||||
case ZoomFactor::ThreeMinutes:
|
||||
return 5000;
|
||||
case ZoomFactor::FiveMinutes:
|
||||
return 5000;
|
||||
case ZoomFactor::TenMinutes:
|
||||
return 10000;
|
||||
case ZoomFactor::FifteenMinutes:
|
||||
return 20000;
|
||||
case ZoomFactor::ThirtyMinutes:
|
||||
return 25000;
|
||||
case ZoomFactor::SixtyMinutes:
|
||||
return 50000;
|
||||
case ZoomFactor::TwoHours:
|
||||
return 60000;
|
||||
case ZoomFactor::FourHours:
|
||||
return 150000;
|
||||
case ZoomFactor::EightHours:
|
||||
return 300000;
|
||||
case ZoomFactor::TwelveHours:
|
||||
return 600000;
|
||||
case ZoomFactor::OneDay:
|
||||
return 800000;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user