Пример #1
1
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();
}
Пример #2
0
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();
}
Пример #3
0
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;
}