コード例 #1
0
ファイル: configpackagepage.cpp プロジェクト: CyberSys/qutim
void ConfigPackagePage::initializePage()
{
	packageInfo info;
	if(qGen->type() == GeneratorWindow::Plugin)
	{
		plugLibInfo libInfo(field("path").toString());
		if(libInfo.isValid())
		{
			info = libInfo.toInfo();
		}
	}
	else if(qGen->type() == GeneratorWindow::Art)
	{
		QFileInfo file(field("path").toString());
		info.properties["name"] = file.fileName();
		QDir dir = file.dir();
		info.properties["type"] = dir.dirName();
		info.properties["platform"] = "all";
	}
	setField("name", info.properties["name"]);
	setField("type", info.properties["type"]);
	setField("version", info.properties["version"]);
	setField("category", qGen->type());
	setField("shortdesc", info.properties["description"]);
	setField("url", info.properties["url"]);
	setField("author", info.properties["author"]);
	setField("platform", info.properties["platform"]);
	setField("license", info.properties["license"]);
}
コード例 #2
0
ファイル: CProfileDatabase.cpp プロジェクト: Vanuan/iviLink
 std::list<LibInfo> CProfileDatabase::findProfiles(UID id, const std::map<std::string, std::string> & profileArguments, std::string platform)
 {
    LOG4CPLUS_TRACE_METHOD(msLogger, __PRETTY_FUNCTION__ );
    mpRequestMutex->lock();
    LOG4CPLUS_INFO(msLogger, "- CProfileDatabase::findProfiles() Find UID : " + id.value);
    std::list<LibInfo> result;
    for (std::map<UID,CProfileInfo>::iterator pit = mProfiles.begin(); mProfiles.end() != pit; ++pit)
    {
       CProfileInfo &info = pit->second;
       LOG4CPLUS_INFO(msLogger, "-- UID: "+ info.uid().value + ", API UID : " + info.apiUid().value);
       if ((info.uid() == id || info.apiUid() == id)/* && (platform == "" || "" != info.lib(platform))*/)
       {
          int rel = getRelevance(info,profileArguments);
          if (!rel)
          {
             continue;
          }
          if ("" == platform)
          {
             for (std::map<std::string,std::string>::const_iterator libIt = info.libs().begin(); info.libs().end() != libIt; ++libIt)
             {
                LibInfo libInfo(info.uid(),libIt->first, libIt->second,rel);
                result.push_back(libInfo);
             }
          }
          else
          {
             std::string rPath = info.lib(platform);
             if ("" != rPath)
             {
                LibInfo libInfo(info.uid(),platform,rPath);
                result.push_back(libInfo);
             }
          }
       }
    }
    mpRequestMutex->unlock();
    /// todo: sort results by relevance (add operator < to to LibInfo structure) (after first AXIS implementation, this task is on future)
    LOG4CPLUS_WARN(msLogger, "Add sorting results by relevance");
    return result;
 }
コード例 #3
0
ファイル: LegacyUpdate.cpp プロジェクト: Nightreaver/MultiMC5
void LegacyUpdate::fmllibsStart()
{
	// Get the mod list
	LegacyInstance *inst = (LegacyInstance *)m_inst;
	auto modList = inst->jarModList();

	bool forge_present = false;

	QString version = inst->intendedVersionId();
	if (!fmlLibsMapping.contains(version))
	{
		lwjglStart();
		return;
	}

	auto &libList = fmlLibsMapping[version];

	// determine if we need some libs for FML or forge
	setStatus(tr("Checking for FML libraries..."));
	for (unsigned i = 0; i < modList->size(); i++)
	{
		auto &mod = modList->operator[](i);

		// do not use disabled mods.
		if (!mod.enabled())
			continue;

		if (mod.type() != Mod::MOD_ZIPFILE)
			continue;

		if (mod.mmc_id().contains("forge", Qt::CaseInsensitive))
		{
			forge_present = true;
			break;
		}
		if (mod.mmc_id().contains("fml", Qt::CaseInsensitive))
		{
			forge_present = true;
			break;
		}
	}
	// we don't...
	if (!forge_present)
	{
		lwjglStart();
		return;
	}

	// now check the lib folder inside the instance for files.
	for (auto &lib : libList)
	{
		QFileInfo libInfo(PathCombine(inst->libDir(), lib.name));
		if (libInfo.exists())
			continue;
		fmlLibsToProcess.append(lib);
	}

	// if everything is in place, there's nothing to do here...
	if (fmlLibsToProcess.isEmpty())
	{
		lwjglStart();
		return;
	}

	// download missing libs to our place
	setStatus(tr("Dowloading FML libraries..."));
	auto dljob = new NetJob("FML libraries");
	auto metacache = MMC->metacache();
	for (auto &lib : fmlLibsToProcess)
	{
		auto entry = metacache->resolveEntry("fmllibs", lib.name);
		QString urlString = lib.ours ? URLConstants::FMLLIBS_OUR_BASE_URL + lib.name
									 : URLConstants::FMLLIBS_FORGE_BASE_URL + lib.name;
		dljob->addNetAction(CacheDownload::make(QUrl(urlString), entry));
	}

	connect(dljob, SIGNAL(succeeded()), SLOT(fmllibsFinished()));
	connect(dljob, SIGNAL(failed()), SLOT(fmllibsFailed()));
	connect(dljob, SIGNAL(progress(qint64, qint64)), SIGNAL(progress(qint64, qint64)));
	legacyDownloadJob.reset(dljob);
	legacyDownloadJob->start();
}