QVariant TimezoneModel::data(const QModelIndex& index, int role) const { if (!index.isValid()) return QVariant(); if (role == Qt::DisplayRole) { const QTimeZone tz(m_ids.at(index.row())); switch (index.column()) { case TimezoneModelColumns::IanaIdColumn: return tz.id(); case TimezoneModelColumns::CountryColumn: return QLocale::countryToString(tz.country()); case TimezoneModelColumns::StandardDisplayNameColumn: return tz.displayName(QTimeZone::StandardTime); case TimezoneModelColumns::DSTColumn: return tz.hasDaylightTime(); case TimezoneModelColumns::WindowsIdColumn: return QTimeZone::ianaIdToWindowsId(tz.id()); } } else if (role == Qt::ToolTipRole && index.column() == 0) { const QTimeZone tz(m_ids.at(index.row())); return tz.comment(); } else if (role == TimezoneModelRoles::LocalZoneRole && index.column() == 0) { if (m_ids.at(index.row()) == QTimeZone::systemTimeZoneId()) return true; return QVariant(); } return QVariant(); }
void InputRoku::handleQueryDeviceInfo(QHttpRequest* request, QHttpResponse* response) { QByteArray data; QXmlStreamWriter writer(&data); writer.setAutoFormatting(true); writer.writeStartDocument(); writer.writeStartElement("device-info"); writer.writeTextElement("udn", Utils::ClientUUID()); writer.writeTextElement("serial-number", ROKU_SERIAL_NUMBER); writer.writeTextElement("device-id", ROKU_SERIAL_NUMBER); writer.writeTextElement("vendor-name", "Roku"); writer.writeTextElement("model-number", "4200X"); writer.writeTextElement("model-name", "Roku 3"); writer.writeTextElement("wifi-mac", "00:00:00:00:00:00"); writer.writeTextElement("ethernet-mac", "00:00:00:00:00:00"); writer.writeTextElement("network-type", "ethernet"); writer.writeTextElement("user-device-name", Utils::ComputerName()); writer.writeTextElement("software-version", "7.00"); writer.writeTextElement("software-build", "09021"); QLocale locale = QLocale::system(); QString lcl = locale.name(); QStringList landc = lcl.split("_"); writer.writeTextElement("language", landc.value(0)); writer.writeTextElement("country", landc.value(1)); writer.writeTextElement("locale", locale.name()); QTimeZone tz = QTimeZone::systemTimeZone(); writer.writeTextElement("time-zone", tz.displayName(QTimeZone::StandardTime, QTimeZone::LongName)); writer.writeTextElement("time-zone-offset", QString::number(tz.offsetFromUtc(QDateTime::currentDateTime()) / 60)); writer.writeEndElement(); // device-info writer.writeEndDocument(); response->setStatusCode(qhttp::ESTATUS_OK); response->write(data); response->end(); }
QString LXQtWorldClock::preformat(const QString &format, const QTimeZone &timeZone, const QDateTime &dateTime) { QString result = format; int from = 0; for (;;) { int apos = result.indexOf(QLatin1Char('\''), from); int tz = result.indexOf(QLatin1Char('T'), from); if ((apos != -1) && (tz != -1)) { if (apos > tz) apos = -1; else tz = -1; } if (apos != -1) { from = apos + 1; apos = result.indexOf(QLatin1Char('\''), from); if (apos == -1) // misformat break; from = apos + 1; } else if (tz != -1) { int length = 1; for (; result[tz + length] == QLatin1Char('T'); ++length); if (length > 6) length = 6; QString replacement; switch (length) { case 1: replacement = timeZone.displayName(dateTime, QTimeZone::OffsetName); if (replacement.startsWith(QLatin1String("UTC"))) replacement = replacement.mid(3); break; case 2: replacement = QString::fromLatin1(timeZone.id()); break; case 3: replacement = timeZone.abbreviation(dateTime); break; case 4: replacement = timeZone.displayName(dateTime, QTimeZone::ShortName); break; case 5: replacement = timeZone.displayName(dateTime, QTimeZone::LongName); break; case 6: replacement = mTimeZoneCustomNames[QString::fromLatin1(timeZone.id())]; } if ((tz > 0) && (result[tz - 1] == QLatin1Char('\''))) { --tz; ++length; } else replacement.prepend(QLatin1Char('\'')); if (result[tz + length] == QLatin1Char('\'')) ++length; else replacement.append(QLatin1Char('\'')); result.replace(tz, length, replacement); from = tz + replacement.length(); } else break; } return result; }