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); } }
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; }
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]); } }
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(); }
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]); } }
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(); } }
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); } }