##// END OF EJS Templates
Separate the initialization of the properties of the graph of the update of the units of the graph....
Separate the initialization of the properties of the graph of the update of the units of the graph. The initialization of the properties is carried out when adding a variable in the graph, the update of the units is carried out when loading the data of this variable

File last commit:

r21:45edf6844d32
r1308:41b7c6aab8be
Show More
Version.cpp.in
78 lines | 3.0 KiB | text/plain | TextLexer
#include "Version.h"
/***************************************************
* @SCIQLOP_CMAKE_GENERATION_WARNING@ *
***************************************************/
#include <QtCore/QDateTime>
#include <QtCore/QStringList>
namespace sciqlop {
const char *Version::VERSION_SUFFIX = "@SCIQLOP_VERSION_SUFFIX@";
/**
* From the C99 standard:
* __DATE__: The date of translation of the preprocessing translation unit:
* a character string literal of the form "Mmm dd yyyy", where the names of
* the months are the same as those generated by the asctime function, and
* the first character of dd is a space character if the value is less than
* 10. If the date of translation is not available, an
* implementation-defined valid date shall be supplied.
*/
const char *Version::BUILD_DATE = __DATE__;
/**
* From the C99 standard:
* __TIME__: The time of translation of the preprocessing translation unit:
* a character string literal of the form "hh:mm:ss" as in the time
* generated by the asctime function. If the time of translation is not
* available, an implementation-defined valid time shall be supplied.
*/
const char *Version::BUILD_TIME = __TIME__;
QDateTime Version::buildDateTime()
{
static QDateTime buildDateTime;
if (!buildDateTime.isValid()) {
// Convert BUILD_DATE to a QDate
// The __DATE__ macro return the month name with the asctime() function,
// which doesn't support localization, the month names returned are
// always the same. On the contrary, the "MMM" format on
// QDate::fromString() is localized, so this method can't be used to
// retrieve the month and we must manually do it instead.
QString buildDateStr = QString(BUILD_DATE);
QString buildMonthStr = buildDateStr.left(3);
QString buildDayAndYearStr = buildDateStr.mid(4).trimmed();
QDate buildDate = QDate::fromString(buildDayAndYearStr, "d yyyy");
QStringList monthList = QStringList() << "Jan"
<< "Feb"
<< "Mar"
<< "Apr"
<< "May"
<< "Jun"
<< "Jul"
<< "Aug"
<< "Sep"
<< "Oct"
<< "Nov"
<< "Dec";
for (int i = 0; i < monthList.size(); ++i) {
if (buildMonthStr == monthList.at(i)) {
buildDate.setDate(buildDate.year(), i + 1, buildDate.day());
break;
}
}
// Convert BUILD_TIME to a QTime
QTime buildTime = QTime::fromString(BUILD_TIME, "hh:mm:ss");
// Set the buildDateTime
buildDateTime.setDate(buildDate);
buildDateTime.setTime(buildTime);
}
return buildDateTime;
}
} // namespace sciqlop