Ejemplo n.º 1
0
QVariant QQmlStringConverters::variantFromString(const QString &s, int preferredType, bool *ok)
{
    switch (preferredType) {
    case QMetaType::Int:
        return QVariant(int(qRound(s.toDouble(ok))));
    case QMetaType::UInt:
        return QVariant(uint(qRound(s.toDouble(ok))));
#ifndef QT_NO_DATESTRING
    case QMetaType::QDate:
        return QVariant::fromValue(dateFromString(s, ok));
    case QMetaType::QTime:
        return QVariant::fromValue(timeFromString(s, ok));
    case QMetaType::QDateTime:
        return QVariant::fromValue(dateTimeFromString(s, ok));
#endif // QT_NO_DATESTRING
    case QMetaType::QPointF:
        return QVariant::fromValue(pointFFromString(s, ok));
    case QMetaType::QPoint:
        return QVariant::fromValue(pointFFromString(s, ok).toPoint());
    case QMetaType::QSizeF:
        return QVariant::fromValue(sizeFFromString(s, ok));
    case QMetaType::QSize:
        return QVariant::fromValue(sizeFFromString(s, ok).toSize());
    case QMetaType::QRectF:
        return QVariant::fromValue(rectFFromString(s, ok));
    case QMetaType::QRect:
        return QVariant::fromValue(rectFFromString(s, ok).toRect());
    default:
        return QQml_valueTypeProvider()->createVariantFromString(preferredType, s, ok);
    }
}
Ejemplo n.º 2
0
bool Account::checkSupported()
{
    Settings &settings = Settings::instance();
    // Read user id, start/end dates, account type
    std::string userId, startDate, endDate, accountType("true"), sign;
    bool supported = settings.getBool("account/supported", false);
    if(!supported) {
        warningMessage(_("Account is not supported"));
        return false;
    }

    userId = settings.getString("account/user_id", "");
    startDate = settings.getString("account/start_date", "");
    endDate = settings.getString("account/end_date", "");
    sign = settings.getString("account/sign", "");

    std::string baMessage = userId + startDate + endDate + accountType;

    GByte *key = reinterpret_cast<GByte*>(CPLStrdup(sign.c_str()));
    int nLength = CPLBase64DecodeInPlace(key);
    std::string baSignature;
    baSignature.assign(reinterpret_cast<const char*>(key),
                       static_cast<size_t>(nLength));
    memset(key, 0, baSignature.size());
    CPLFree(key);

    bool verify = verifyRSASignature(
                reinterpret_cast<const unsigned char*>(baMessage.c_str()),
                static_cast<unsigned int>(baMessage.size()),
                reinterpret_cast<const unsigned char*>(baSignature.c_str()),
                static_cast<unsigned int>(baSignature.size()));
    if(!verify) {
        return false;
    }

    time_t current = time(nullptr);
    time_t start = timeFromString(startDate.c_str());
    time_t end = timeFromString(endDate.c_str());
    bool out = current >= start && current <= end;
    if(!out) {
        warningMessage(_("Account is supported. Verify success. Period expired."));
    }
    return out;
}
Ejemplo n.º 3
0
NMEAMessageGLL::NMEAMessageGLL(const char *message) : BaseNMEAMessage() {
    char *fragments[10];
    int fragmentCount = 0;
    splitMessageIntoFragments(message, strlen(message), fragments, &fragmentCount);

    _latitude = degreesFromCoordinateString(fragments[1], fragments[2][0]);
    _longitude = degreesFromCoordinateString(fragments[3], fragments[4][0]);
    _time = timeFromString(fragments[5]);

    for (int i = 0; i < fragmentCount; i++) {
      free(fragments[i]);
    }
}
Ejemplo n.º 4
0
void Counter::start()
{
    qint64 time = timeFromString(_ui->counterLabel->text());
    // Stopwatch mode?
    if (!time)
    {
        _mode = Stopwatch;
        _startTime = QDateTime::currentMSecsSinceEpoch();
    }
    // ...or timer mode?
    else
    {
        _mode = Timer;
        _endTime = QDateTime::currentMSecsSinceEpoch() + time;
        _timer->start(time);
    }
    _ui->pause->show();
    _ui->start->hide();
    _updater->start();
}
Ejemplo n.º 5
0
NMEAMessageRMC::NMEAMessageRMC(const char *message) : BaseNMEAMessage() {
    char *fragments[13];
    int fragmentCount = 0;
    splitMessageIntoFragments(message, strlen(message), fragments, &fragmentCount);

    _time = timeFromString(fragments[1]);
    _status = statusFromFragment(fragments[2]);
    _latitude = degreesFromCoordinateString(fragments[3], fragments[4][0]);
    _longitude = degreesFromCoordinateString(fragments[5], fragments[6][0]);
    _speedOverGround = atof(fragments[7]);
    _trackMadeGood = headingFromFragments(fragments[8], "T");
    sscanf(fragments[9], "%2d%2d%2d", &(_date.day), &(_date.month), &(_date.year));
    _magneticVariation = atof(fragments[10]);
    if (fragments[11][0] == 'W') {
        _magneticVariation = _magneticVariation * -1;
    }

    for (int i = 0; i < fragmentCount; i++) {
      free(fragments[i]);
    }
}
Ejemplo n.º 6
0
QVariant QDeclarativeStringConverters::variantFromString(const QString &s, int preferredType, bool *ok)
{
    switch (preferredType) {
    case QMetaType::Int:
        return QVariant(int(qRound(s.toDouble(ok))));
    case QMetaType::UInt:
        return QVariant(uint(qRound(s.toDouble(ok))));
    case QMetaType::QColor:
        return QVariant::fromValue(colorFromString(s, ok));
#ifndef QT_NO_DATESTRING
    case QMetaType::QDate:
        return QVariant::fromValue(dateFromString(s, ok));
    case QMetaType::QTime:
        return QVariant::fromValue(timeFromString(s, ok));
    case QMetaType::QDateTime:
        return QVariant::fromValue(dateTimeFromString(s, ok));
#endif // QT_NO_DATESTRING
    case QMetaType::QPointF:
        return QVariant::fromValue(pointFFromString(s, ok));
    case QMetaType::QPoint:
        return QVariant::fromValue(pointFFromString(s, ok).toPoint());
    case QMetaType::QSizeF:
        return QVariant::fromValue(sizeFFromString(s, ok));
    case QMetaType::QSize:
        return QVariant::fromValue(sizeFFromString(s, ok).toSize());
    case QMetaType::QRectF:
        return QVariant::fromValue(rectFFromString(s, ok));
    case QMetaType::QRect:
        return QVariant::fromValue(rectFFromString(s, ok).toRect());
    case QMetaType::QVector3D:
        return QVariant::fromValue(vector3DFromString(s, ok));
    default:
        if (ok) *ok = false;
        return QVariant();
    }
}
Ejemplo n.º 7
0
bool QQmlStringConverters::createFromString(int type, const QString &s, void *data, size_t n)
{
    Q_ASSERT(data);

    bool ok = false;

    switch (type) {
    case QMetaType::Int:
        {
        Q_ASSERT(n >= sizeof(int));
        int *p = reinterpret_cast<int *>(data);
        *p = int(qRound(s.toDouble(&ok)));
        return ok;
        }
    case QMetaType::UInt:
        {
        Q_ASSERT(n >= sizeof(uint));
        uint *p = reinterpret_cast<uint *>(data);
        *p = uint(qRound(s.toDouble(&ok)));
        return ok;
        }
#ifndef QT_NO_DATESTRING
    case QMetaType::QDate:
        {
        Q_ASSERT(n >= sizeof(QDate));
        QDate *p = reinterpret_cast<QDate *>(data);
        *p = dateFromString(s, &ok);
        return ok;
        }
    case QMetaType::QTime:
        {
        Q_ASSERT(n >= sizeof(QTime));
        QTime *p = reinterpret_cast<QTime *>(data);
        *p = timeFromString(s, &ok);
        return ok;
        }
    case QMetaType::QDateTime:
        {
        Q_ASSERT(n >= sizeof(QDateTime));
        QDateTime *p = reinterpret_cast<QDateTime *>(data);
        *p = dateTimeFromString(s, &ok);
        return ok;
        }
#endif // QT_NO_DATESTRING
    case QMetaType::QPointF:
        {
        Q_ASSERT(n >= sizeof(QPointF));
        QPointF *p = reinterpret_cast<QPointF *>(data);
        *p = pointFFromString(s, &ok);
        return ok;
        }
    case QMetaType::QPoint:
        {
        Q_ASSERT(n >= sizeof(QPoint));
        QPoint *p = reinterpret_cast<QPoint *>(data);
        *p = pointFFromString(s, &ok).toPoint();
        return ok;
        }
    case QMetaType::QSizeF:
        {
        Q_ASSERT(n >= sizeof(QSizeF));
        QSizeF *p = reinterpret_cast<QSizeF *>(data);
        *p = sizeFFromString(s, &ok);
        return ok;
        }
    case QMetaType::QSize:
        {
        Q_ASSERT(n >= sizeof(QSize));
        QSize *p = reinterpret_cast<QSize *>(data);
        *p = sizeFFromString(s, &ok).toSize();
        return ok;
        }
    case QMetaType::QRectF:
        {
        Q_ASSERT(n >= sizeof(QRectF));
        QRectF *p = reinterpret_cast<QRectF *>(data);
        *p = rectFFromString(s, &ok);
        return ok;
        }
    case QMetaType::QRect:
        {
        Q_ASSERT(n >= sizeof(QRect));
        QRect *p = reinterpret_cast<QRect *>(data);
        *p = rectFFromString(s, &ok).toRect();
        return ok;
        }
    default:
        return QQml_valueTypeProvider()->createValueFromString(type, s, data, n);
    }
}