##// END OF EJS Templates
Sets the name of the plugin for products and components...
Sets the name of the plugin for products and components Since there is only one common root in the data source widget, it is no longer possible to retrieve on the fly the name of the plugin in which a component or product is located. This name is therefore attached to their creation.

File last commit:

r660:e4c0228e8d67
r1076:9c3bb5e93c54
Show More
SqpRange.h
58 lines | 1.5 KiB | text/x-c | CLexer
#ifndef SCIQLOP_SQPRANGE_H
#define SCIQLOP_SQPRANGE_H
#include <QObject>
#include <QDebug>
#include <Common/DateUtils.h>
#include <Common/MetaTypes.h>
#include <cmath>
/**
* @brief The SqpRange struct holds the information of time parameters
*/
struct SqpRange {
/// Start time (UTC)
double m_TStart;
/// End time (UTC)
double m_TEnd;
bool contains(const SqpRange &dateTime) const noexcept
{
return (m_TStart <= dateTime.m_TStart && m_TEnd >= dateTime.m_TEnd);
}
bool intersect(const SqpRange &dateTime) const noexcept
{
return (m_TEnd >= dateTime.m_TStart && m_TStart <= dateTime.m_TEnd);
}
bool operator==(const SqpRange &other) const
{
auto equals = [](const auto &v1, const auto &v2) {
return (std::isnan(v1) && std::isnan(v2)) || v1 == v2;
};
return equals(m_TStart, other.m_TStart) && equals(m_TEnd, other.m_TEnd);
}
bool operator!=(const SqpRange &other) const { return !(*this == other); }
};
const auto INVALID_RANGE
= SqpRange{std::numeric_limits<double>::quiet_NaN(), std::numeric_limits<double>::quiet_NaN()};
inline QDebug operator<<(QDebug d, SqpRange obj)
{
auto tendDateTimeStart = DateUtils::dateTime(obj.m_TStart);
auto tendDateTimeEnd = DateUtils::dateTime(obj.m_TEnd);
d << "ts: " << tendDateTimeStart << " te: " << tendDateTimeEnd;
return d;
}
// Required for using shared_ptr in signals/slots
SCIQLOP_REGISTER_META_TYPE(SQPRANGE_REGISTRY, SqpRange)
#endif // SCIQLOP_SQPRANGE_H