int CommonView::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { if (_id < 9) qt_static_metacall(this, _c, _id, _a); _id -= 9; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< Interval*>(_v) = interval(); break; case 1: *reinterpret_cast< ProtConf*>(_v) = getProtSubmit(); break; case 2: *reinterpret_cast< bool*>(_v) = showSource(); break; case 3: *reinterpret_cast< bool*>(_v) = selectParamsEnabled(); break; case 4: *reinterpret_cast< QString*>(_v) = dateTimeFormat(); break; case 5: *reinterpret_cast< QFont*>(_v) = font(); break; case 6: *reinterpret_cast< QString*>(_v) = printTitle(); break; case 7: *reinterpret_cast< QFont*>(_v) = printTitleFont(); break; case 8: *reinterpret_cast< QFont*>(_v) = printFont(); break; case 9: *reinterpret_cast< bool*>(_v) = getSaveChanges(); break; } _id -= 10; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setInterval(*reinterpret_cast< Interval*>(_v)); break; case 1: setProtConf(*reinterpret_cast< ProtConf*>(_v)); break; case 2: setShowSource(*reinterpret_cast< bool*>(_v)); break; case 3: setSelectParamsEnabled(*reinterpret_cast< bool*>(_v)); break; case 4: setDateTimeFormat(*reinterpret_cast< QString*>(_v)); break; case 5: setFont(*reinterpret_cast< QFont*>(_v)); break; case 6: setPrintTitle(*reinterpret_cast< QString*>(_v)); break; case 7: setPrintTitleFont(*reinterpret_cast< QFont*>(_v)); break; case 8: setPrintFont(*reinterpret_cast< QFont*>(_v)); break; case 9: setSaveChanges(*reinterpret_cast< bool*>(_v)); break; } _id -= 10; } else if (_c == QMetaObject::ResetProperty) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 10; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 10; } #endif // QT_NO_PROPERTIES return _id; }
static void GetDateBoundary(nsIX509Cert* ix509, nsString &formattedDate, nsString &nowDate, bool &trueExpired_falseNotYetValid) { trueExpired_falseNotYetValid = true; formattedDate.Truncate(); PRTime notAfter, notBefore, timeToUse; nsCOMPtr<nsIX509CertValidity> validity; nsresult rv; rv = ix509->GetValidity(getter_AddRefs(validity)); if (NS_FAILED(rv)) return; rv = validity->GetNotAfter(¬After); if (NS_FAILED(rv)) return; rv = validity->GetNotBefore(¬Before); if (NS_FAILED(rv)) return; PRTime now = PR_Now(); if (now > notAfter) { timeToUse = notAfter; } else { timeToUse = notBefore; trueExpired_falseNotYetValid = false; } nsCOMPtr<nsIDateTimeFormat> dateTimeFormat(do_CreateInstance(NS_DATETIMEFORMAT_CONTRACTID, &rv)); if (NS_FAILED(rv)) return; dateTimeFormat->FormatPRTime(nullptr, kDateFormatShort, kTimeFormatNoSeconds, timeToUse, formattedDate); dateTimeFormat->FormatPRTime(nullptr, kDateFormatShort, kTimeFormatNoSeconds, now, nowDate); }
NS_IMETHODIMP nsScriptableDateFormat::FormatDateTime( const char16_t *aLocale, nsDateFormatSelector dateFormatSelector, nsTimeFormatSelector timeFormatSelector, int32_t year, int32_t month, int32_t day, int32_t hour, int32_t minute, int32_t second, char16_t **dateTimeString) { // We can't have a valid date with the year, month or day // being lower than 1. if (year < 1 || month < 1 || day < 1) return NS_ERROR_INVALID_ARG; nsresult rv; nsAutoString localeName(aLocale); *dateTimeString = nullptr; nsCOMPtr<nsILocale> locale; // re-initialise locale pointer only if the locale was given explicitly if (!localeName.IsEmpty()) { // get locale service nsCOMPtr<nsILocaleService> localeService(do_GetService(kLocaleServiceCID, &rv)); NS_ENSURE_SUCCESS(rv, rv); // get locale rv = localeService->NewLocale(localeName, getter_AddRefs(locale)); NS_ENSURE_SUCCESS(rv, rv); } nsCOMPtr<nsIDateTimeFormat> dateTimeFormat(do_CreateInstance(kDateTimeFormatCID, &rv)); NS_ENSURE_SUCCESS(rv, rv); tm tmTime; time_t timetTime; memset(&tmTime, 0, sizeof(tmTime)); tmTime.tm_year = year - 1900; tmTime.tm_mon = month - 1; tmTime.tm_mday = day; tmTime.tm_hour = hour; tmTime.tm_min = minute; tmTime.tm_sec = second; tmTime.tm_yday = tmTime.tm_wday = 0; tmTime.tm_isdst = -1; timetTime = mktime(&tmTime); if ((time_t)-1 != timetTime) { rv = dateTimeFormat->FormatTime(locale, dateFormatSelector, timeFormatSelector, timetTime, mStringOut); } else { // if mktime fails (e.g. year <= 1970), then try NSPR. PRTime prtime; char string[32]; sprintf(string, "%.2d/%.2d/%d %.2d:%.2d:%.2d", month, day, year, hour, minute, second); if (PR_SUCCESS != PR_ParseTimeString(string, false, &prtime)) return NS_ERROR_INVALID_ARG; rv = dateTimeFormat->FormatPRTime(locale, dateFormatSelector, timeFormatSelector, prtime, mStringOut); } if (NS_SUCCEEDED(rv)) *dateTimeString = ToNewUnicode(mStringOut); return rv; }
/*! Validates the specified parameter \a hash by the set rules. As default, TF::Required is set for all parameters. If not required, set the rule to \a false like this: setRule("xxx", Tf::Required, false); */ bool TFormValidator::validate(const QVariantHash &hash) { errors.clear(); // Add default rules, Tf::Required. QString msg = Tf::app()->validationErrorMessage(Tf::Required); for (QStringListIterator i(hash.keys()); i.hasNext(); ) { const QString &k = i.next(); if (!containsRule(k, Tf::Required)) { rules.append(RuleEntry(k, (int)Tf::Required, true, msg)); } } for (QListIterator<RuleEntry> i(rules); i.hasNext(); ) { const RuleEntry &r = i.next(); QString str = hash.value(r.key).toString(); // value string if (str.isEmpty()) { bool req = r.value.toBool(); if (r.rule == Tf::Required && req) { tSystemDebug("validation error: required parameter is empty, key:%s", qPrintable(r.key)); errors << qMakePair(r.key, r.rule); } } else { bool ok1, ok2; tSystemDebug("validating key:%s value: %s", qPrintable(r.key), qPrintable(str)); switch (r.rule) { case Tf::Required: break; case Tf::MaxLength: { int max = r.value.toInt(&ok2); if (!ok2 || str.length() > max) { errors << qMakePair(r.key, r.rule); } break; } case Tf::MinLength: { int min = r.value.toInt(&ok2); if (!ok2 || str.length() < min) { errors << qMakePair(r.key, r.rule); } break; } case Tf::IntMax: { qint64 n = str.toLongLong(&ok1); qint64 max = r.value.toLongLong(&ok2); if (!ok1 || !ok2 || n > max) { errors << qMakePair(r.key, r.rule); } break; } case Tf::IntMin: { qint64 n = str.toLongLong(&ok1); qint64 min = r.value.toLongLong(&ok2); if (!ok1 || !ok2 || n < min) { errors << qMakePair(r.key, r.rule); } break; } case Tf::DoubleMax: { double n = str.toDouble(&ok1); double max = r.value.toLongLong(&ok2); if (!ok1 || !ok2 || n > max) { errors << qMakePair(r.key, r.rule); } break; } case Tf::DoubleMin: { double n = str.toDouble(&ok1); double min = r.value.toDouble(&ok2); if (!ok1 || !ok2 || n < min) { errors << qMakePair(r.key, r.rule); } break; } case Tf::EmailAddress: { // refer to RFC5321 if ( r.value.toBool() ) { QRegExp reg("^" ADDR_SPEC "$"); if (!reg.exactMatch(str)) { errors << qMakePair(r.key, r.rule); } } break; } case Tf::Url: { if ( r.value.toBool() ) { QUrl url(str, QUrl::StrictMode); if (!url.isValid()) { errors << qMakePair(r.key, r.rule); } } break; } case Tf::Date: { if ( r.value.toBool() ) { QDate date = QLocale().toDate(str, dateFormat()); if (!date.isValid()) { errors << qMakePair(r.key, r.rule); tSystemDebug("Validation error: Date format: %s", qPrintable(dateFormat())); } } break; } case Tf::Time: { if ( r.value.toBool() ) { QTime time = QLocale().toTime(str, timeFormat()); if (!time.isValid()) { errors << qMakePair(r.key, r.rule); tSystemDebug("Validation error: Time format: %s", qPrintable(timeFormat())); } } break; } case Tf::DateTime: { if ( r.value.toBool() ) { QDateTime dt = QLocale().toDateTime(str, dateTimeFormat()); if (!dt.isValid()) { errors << qMakePair(r.key, r.rule); tSystemDebug("Validation error: DateTime format: %s", qPrintable(dateTimeFormat())); } } break; } case Tf::Pattern: { QRegExp rx = r.value.toRegExp(); if (rx.isEmpty() || !rx.exactMatch(str)) { errors << qMakePair(r.key, r.rule); } break; } default: tSystemError("Internal Error, invalid rule: %d [%s:%d]", r.rule, __FILE__, __LINE__); break; } } } return errors.isEmpty(); }
/*! Converts the log \a log to its textual representation and returns a QByteArray containing the data. */ QByteArray TLogger::logToByteArray(const TLog &log) const { return logToByteArray(log, layout(), dateTimeFormat(), codec_); }