Ejemplo n.º 1
0
FileTemplates::FileTemplates(QObject *parent) :
    QObject(parent)
{
    m_menu.setTitle(tr("New"));
    templateDir = QCoreApplication::applicationDirPath()+QDir::toNativeSeparators("/templates/");
    QFile file(templateDir + "file.json");
    file.open(QIODevice::ReadOnly);
    QTextStream stream ( &file );
    JsonReader reader;
    reader.parse(stream.readAll());
    if(reader.errorString().isEmpty())
        buildMenu(reader.result());

}
Ejemplo n.º 2
0
bool Skin::parseManifest()
{
    QFile skinConfig(m_config);
    if (!skinConfig.open(QIODevice::ReadOnly)) {
        qWarning() << "Can't read " << m_config << " of skin " << m_name;
        return false;
    }

    JsonReader reader;
    if (!reader.parse(skinConfig.readAll())) {
        qWarning() << "Failed to parse config file " << m_config << reader.errorString();
        return false;
    }

    const QVariantMap root = reader.result().toMap();

    m_version = root["version"].toString();
    if (m_version.isEmpty())
        qWarning() << "Skin has no version";

    m_defaultResolution = root["default_resolution"].toString();
    if (m_defaultResolution.isEmpty())
        qWarning() << "Skin has no default resolution";

    m_resolutions = root["resolutions"].toMap();
    if (m_resolutions.isEmpty())
        qWarning() << "Skin does not declare any supported resolutions";

    m_screenshot = root["screenshot"].toString();
    if (m_screenshot.isEmpty())
        qWarning() << "Skin does not have any screenshot";

    m_website = root["website"].toString();
    if (m_website.isEmpty())
        qWarning() << "Skin does not have any website";

    // load default settings
    const QVariantList settings = root["settings"].toList();
    foreach (const QVariant &s, settings) {
        const QVariantMap entry = s.toMap();
        m_settings->addOptionEntry(entry.value("name").toString(), entry.value("default_value").toString(), entry.value("doc").toString());
    }
    const QString configFilePath = QFileInfo(QSettings().fileName()).absolutePath() + QLatin1String("/") + name() + QLatin1String(".conf");
    m_settings->loadConfigFile(configFilePath);
    m_settings->parseArguments(qApp->arguments());

    return true;
}