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