bool QAbstractDiagramGraphicsItem::parse(const QString &data)
{
    bool success;
    QVariant p = QtJson::Json::parse(data, success);
    if (success){
        QMapIterator<QString,QVariant> it(p.toMap());
        while(it.hasNext()){
            int i = metaData()->indexOfProperty(it.key());
            if (i > -1){
                if (metaData()->property(i).type() == QDiagramToolkit::Rect){
                    //QVariantMap m = it.value().toMap();
                    //QRectF r;
                    //r.setX(m.value("x").toDouble());
                    //r.setY(m.value("y").toDouble());
                    //r.setWidth(m.value("with").toDouble());
                    //r.setHeight(m.value("height").toDouble());
                    m_properties[metaData()->property(i).name()] = it.value().toMap();
                } else {
                    m_properties[metaData()->property(i).name()] = it.value();
                }
            }
            it.next();
        }
    }
    return true;
}
Esempio n. 2
0
bool FrTextSpan::setMetaData(FrSymbol *key, const FrObject *value)
{
   if (!metaData())
      {
      setMetaData(new FrStruct(FrSymbolTable::add(METADATA_TYPENAME))) ;
      if (!metaData())
	 return false ;
      }
   m_metadata->put(key,value) ;
   return true ;
}
Esempio n. 3
0
QString NetworkCache::getPathForUrl(const QUrl &url)
{
	if (!url.isValid() || !metaData(url).isValid())
	{
		return QString();
	}

	const QDir cacheMainDirectory(cacheDirectory());
	const QStringList directories(cacheMainDirectory.entryList(QDir::AllDirs | QDir::NoDotAndDotDot));

	for (int i = 0; i < directories.count(); ++i)
	{
		const QDir cacheSubDirectory(cacheMainDirectory.absoluteFilePath(directories.at(i)));
		const QStringList subDirectories(cacheSubDirectory.entryList(QDir::AllDirs | QDir::NoDotAndDotDot));

		for (int j = 0; j < subDirectories.count(); ++j)
		{
			const QDir cacheFilesDirectory(cacheSubDirectory.absoluteFilePath(subDirectories.at(j)));
			const QStringList files(cacheFilesDirectory.entryList(QDir::Files));

			for (int k = 0; k < files.count(); ++k)
			{
				const QString cacheFilePath(cacheFilesDirectory.absoluteFilePath(files.at(k)));
				const QNetworkCacheMetaData metaData(fileMetaData(cacheFilePath));

				if (metaData.isValid() && url == metaData.url())
				{
					return cacheFilePath;
				}
			}
		}
	}

	return QString();
}
void RtspToRtmpMediaSource::makeMetaData() {
	m_pRtmpSrc.reset(new RtmpMediaSource(getApp(),getId()));
	m_pRtmpSrc->setOnSeek(m_onSeek);
	m_pRtmpSrc->setOnStamp(m_onStamp);
	AMFValue metaData(AMF_OBJECT);
	metaData.set("duration", m_pParser->getDuration());
	metaData.set("fileSize", 0);
	if (m_pParser->containVideo()) {
		metaData.set("width", m_pParser->getVideoWidth());
		metaData.set("height", m_pParser->getVideoHeight());
		metaData.set("videocodecid", 7); //h.264
		metaData.set("videodatarate", 5000);
		metaData.set("framerate", m_pParser->getVideoFps());
		makeVideoConfigPkt();
	}
	if (m_pParser->containAudio()) {
		metaData.set("audiocodecid", 10); //aac
		metaData.set("audiodatarate", 160);
		metaData.set("audiosamplerate", m_pParser->getAudioSampleRate());
		metaData.set("audiosamplesize", m_pParser->getAudioSampleBit());
		metaData.set("audiochannels", m_pParser->getAudioChannel());
		metaData.set("stereo", m_pParser->getAudioChannel() > 1);
		makeAudioConfigPkt();
	}

	m_pRtmpSrc->onGetMetaData(metaData);
}
Esempio n. 5
0
ModelManager::ModelManager(QObject* parent) : QObject(parent),
inGroup(false),
modelChangedFlag(false)
{
  connect (ScenarioManager::getInstance(), SIGNAL(scenariosChanged()),
    this, SLOT(modelHasChanged()));

  connect (ScenarioManager::getInstance(), SIGNAL(shadowVocabularyChanged()),
    this, SLOT(modelHasChanged()));

  connect (ScenarioManager::getInstance(), SIGNAL(baseModelChanged()),
    this, SLOT(modelHasChanged()));

  connect (TrainingManager::getInstance(), SIGNAL(trainingDataChanged()),
    this, SLOT(modelHasChanged()));

  connect (TrainingManager::getInstance(), SIGNAL(trainingSettingsChanged()),
    this, SLOT(modelHasChanged()));

  // read active model and build blacklistedTranscriptions
  QString activePath = KStandardDirs::locate("appdata", "model/active.sbm");
  if (QFile::exists(activePath)) {
    KTar tar(activePath, "application/x-gzip");
    ModelMetadata *data = metaData(tar);
    if (data) {
      updateBlacklistedTranscriptions(data);
      delete data;
    }
  }
}
Esempio n. 6
0
QUuid UBDocumentProxy::uuid() const
{
    QString id = metaData(UBSettings::documentIdentifer).toString();
    QString sUuid = id.replace(UBSettings::uniboardDocumentNamespaceUri + "/", "");

    return QUuid(sUuid);
}
// Find all theme desktop files in all 'data' dirs owned by kwin.
// And insert these into a DecorationInfo structure
void DecorationModel::findDecorations()
{
    beginResetModel();
    const QStringList dirList = KGlobal::dirs()->findDirs("data", "kwin");

    foreach (const QString & dir, dirList) {
        QDir d(dir);
        if (d.exists()) {
            foreach (const QFileInfo & fi, d.entryInfoList()) {
                const QString filename(fi.absoluteFilePath());
                if (KDesktopFile::isDesktopFile(filename)) {
                    const KDesktopFile desktopFile(filename);
                    const QString libName = desktopFile.desktopGroup().readEntry("X-KDE-Library");

                    if (!libName.isEmpty() && libName.startsWith(QLatin1String("kwin3_"))) {
                        if (libName == "kwin3_aurorae") {
                            // read the Aurorae themes
                            findAuroraeThemes();
                            continue;
                        }
                        if (!m_plugins->canLoad(libName))
                            continue;
                        DecorationModelData data;
                        data.name = desktopFile.readName();
                        data.libraryName = libName;
                        data.type = DecorationModelData::NativeDecoration;
                        data.borderSize = KDecorationDefines::BorderNormal;
                        metaData(data, desktopFile);
                        m_decorations.append(data);
                    }
                }
            }
        }
void Ut_MApplicationExtensionManager::testInstantiateInProcessExtensionWhichDoesNotExist()
{
    QSharedPointer<const MApplicationExtensionMetaData> metaData(
        new MApplicationExtensionMetaData("test"));
    QCOMPARE(manager->instantiateInProcessExtension(metaData), false);
    QCOMPARE(signalListener.instantiatedExtensions.count(), 0);
}
void ossimGdalImageWriterFactory::getImageFileWritersByMimeType(ossimImageWriterFactoryBase::ImageFileWriterList& result,
                                                                const ossimString& mimeType)const
{
   int c = GDALGetDriverCount();
   int idx = 0;
   for(idx = 0; idx < c; ++idx)
   {
      
      GDALDriverH h = GDALGetDriver(idx);
      if(canWrite(h))
      {
         ossimString  driverName = GDALGetDriverShortName(h);
         driverName = "gdal_" + driverName.upcase();
         ossimString metaData(GDALGetMetadataItem(h, GDAL_DMD_MIMETYPE, 0));
         if(!metaData.empty())
         {
            if(metaData == mimeType)
            {
               ossimGdalWriter* writer = new ossimGdalWriter;
               writer->setOutputImageType(driverName);
               result.push_back(writer);
               if ( driverName == "gdal_JP2KAK" )
               {
                  // Make it lossless for starters.  User can still override.
                  ossimKeywordlist kwl;
                  kwl.add("property0.name", "QUALITY");
                  kwl.add("property0.value", "100");
                  writer->loadState(kwl, NULL);
               }
               return;
            }
         }
      }
   }
}
QList<QGalleryResource> QGalleryTrackerResultSet::resources() const
{
    Q_D(const QGalleryTrackerResultSet);

    QList<QGalleryResource> resources;

    if (d->currentRow) {
        const QUrl url = d->urlColumn->value(d->currentRow).toUrl();

        if (!url.isEmpty()) {
            QMap<int, QVariant> attributes;

            typedef QVector<int>::const_iterator iterator;
            for (iterator it = d->resourceKeys.begin(), end = d->resourceKeys.end();
                    it != end;
                    ++it) {
                QVariant value = metaData(*it);

                if (!value.isNull())
                    attributes.insert(*it, value);
            }

            resources.append(QGalleryResource(url, attributes));
        }
    }
    return resources;
}
Esempio n. 11
0
void ScriptPlugins :: load(QScriptEngine *engine)
{
  auto const softpath = QProcessEnvironment::systemEnvironment().value("SOFTBASE", SOFTBASE);
  QStringList pluginList;
  QCoreApplication::addLibraryPath (softpath + "/modules");
  auto const pluginPath = softpath + "/plugins";
  QDir pluginsDir(pluginPath);
  auto files = pluginsDir.entryList(QDir::Files);
  foreach( auto const &file, files ) {
    if( QLibrary::isLibrary(file) ) {
      auto loader = new QPluginLoader(pluginsDir.absoluteFilePath(file), this);
      auto const ok = loader->load();
      if( ok ) {
        d->pluginsMap.insert(file, loader);
        auto const jsonObj = loader->metaData();
        if (jsonObj.value("IID") == "org.sintef.soft/ISoftPlugin/0.1") {
          auto pluginPtr = qobject_cast<ISoftPlugin*>(loader->instance());
          if( pluginPtr ) {
            pluginPtr->registerPlugin(engine);
            pluginList << file;
          }
          else {
            QTextStream(stdout) << "failed to register: " << loader->errorString() << endl;
          }
        }
      }
    }
  }
  auto const l = qScriptValueFromSequence(engine, pluginList);
  engine->globalObject().setProperty("__script_plugins__", l);
}
Esempio n. 12
0
FrList *FrTextSpan::printable() const
{
   FrList *span = 0 ;
   const FrStruct *meta = metaData() ;
   FrList *fields = meta ? meta->fieldNames() : 0 ;
   while (fields)
      {
      FrSymbol *key = (FrSymbol*)poplist(fields) ;
      FrObject *data = meta->get(key) ;
      if (data)
	 {
	 data = data->deepcopy() ;
	 if (!data->consp())
	    data = new FrList(data) ;
	 FrList *datalist = (FrList*)data ;
	 pushlist(key,datalist) ;
	 pushlist(datalist,span) ;
	 }
      }
   pushlist(new FrFloat(weight()),span) ;
   pushlist(new FrFloat(score()),span) ;
   pushlist(new FrString(text()),span) ;
   pushlist(new FrInteger(end()),span) ;
   pushlist(new FrInteger(start()),span) ;
   return span ;
}
void Ut_MApplicationExtensionManager::testOrdering()
{
    MWidget extensionWidget1;
    setupGoodExtension(true, &extensionWidget1);
    gMDesktopEntryStub->stubSetReturnValue("fileName", QString(APPLICATION_EXTENSION_DATA_DIR) + "/test");
    QSharedPointer<const MApplicationExtensionMetaData> metaData(new MApplicationExtensionMetaData(""));

    // order with one entry
    QStringList order;
    order << "test";
    setupTestSubject(QString(), QString(), order);
    setupGoodExtension(true, &extensionWidget1);
    QCOMPARE(manager->instantiateInProcessExtension(metaData), true);
    verifyOrderCreatedInDataStore(0);

    // order with three entries
    order.insert(0, "test2");
    order.insert(1, "");
    setupTestSubject(QString(), QString(), order);
    setupGoodExtension(true, &extensionWidget1);
    QCOMPARE(manager->instantiateInProcessExtension(metaData), true);
    verifyOrderCreatedInDataStore(2);
    // check that unordered entry goes to correct place
    gMDesktopEntryStub->stubSetReturnValue("fileName", QString(APPLICATION_EXTENSION_DATA_DIR) + "/unordered");
    setupGoodExtension(true, &extensionWidget1);
    QCOMPARE(manager->instantiateInProcessExtension(metaData), true);
    verifyOrderCreatedInDataStore(1);
    // check the first entry
    gMDesktopEntryStub->stubSetReturnValue("fileName", QString(APPLICATION_EXTENSION_DATA_DIR) + "/test2");
    setupGoodExtension(true, &extensionWidget1);
    QCOMPARE(manager->instantiateInProcessExtension(metaData), true);
    verifyOrderCreatedInDataStore(0);
}
void Ut_MApplicationExtensionManager::testInstantiateOutOfProcessExtension()
{
    QSharedPointer<const MApplicationExtensionMetaData> metaData(
        new MApplicationExtensionMetaData("test"));
    manager->instantiateOutOfProcessExtension(metaData);
    QCOMPARE(signalListener.createdWidgets.count(), 1);
}
Esempio n. 15
0
QSize UBDocumentProxy::defaultDocumentSize() const
{
    if (mMetaDatas.contains(UBSettings::documentSize))
        return metaData(UBSettings::documentSize).toSize();
    else
        return UBSettings::settings()->pageSize->get().toSize();
}
Esempio n. 16
0
void MainWindow::saveTime()
{
    //save the time
    if(haveLaunchedGame)
    {
        bool settingOk=false;
        QSettings metaData(launchedGamePath+"metadata.conf",QSettings::IniFormat);
        if(metaData.isWritable())
        {
            if(metaData.status()==QSettings::NoError)
            {
                QString locaction=CatchChallenger::BaseWindow::baseWindow->lastLocation();
                QString mapPath=datapackPath+DATAPACK_BASE_PATH_MAP;
                if(locaction.startsWith(mapPath))
                    locaction.remove(0,mapPath.size());
                if(!locaction.isEmpty())
                    metaData.setValue("location",locaction);
                metaData.setValue("time_played",metaData.value("time_played").toUInt()+(QDateTime::currentDateTimeUtc().toTime_t()-timeLaunched));
                settingOk=true;
            }
            else
                qDebug() << "Settings error: " << metaData.status();
        }
        updateSavegameList();
        if(!settingOk)
        {
            QMessageBox::critical(NULL,tr("Error"),tr("Unable to save internal value at game stopping"));
            return;
        }
        haveLaunchedGame=false;
    }
}
Esempio n. 17
0
void MainWindow::on_SaveGame_Copy_clicked()
{
    if(selectedSavegame==NULL)
        return;

    QString savegamesPath=savegamePathList[selectedSavegame];
    if(!savegameWithMetaData[selectedSavegame])
        return;
    int index=0;
    while(QDir(savegamePath+QString::number(index)+"/").exists())
        index++;
    QString destinationPath=savegamePath+QString::number(index)+"/";
    if(!QDir().mkpath(destinationPath))
    {
        QMessageBox::critical(this,tr("Error"),QString("Unable to write another savegame"));
        return;
    }
    if(!QFile::copy(savegamesPath+"metadata.conf",destinationPath+"metadata.conf"))
    {
        rmpath(destinationPath);
        QMessageBox::critical(this,tr("Error"),QString("Unable to write another savegame (Error: metadata.conf)"));
        return;
    }
    if(!QFile::copy(savegamesPath+"catchchallenger.db.sqlite",destinationPath+"catchchallenger.db.sqlite"))
    {
        rmpath(destinationPath);
        QMessageBox::critical(this,tr("Error"),QString("Unable to write another savegame (Error: catchchallenger.db.sqlite)"));
        return;
    }
    QSettings metaData(destinationPath+"metadata.conf",QSettings::IniFormat);
    metaData.setValue("title",tr("Copy of %1").arg(metaData.value("title").toString()));
    updateSavegameList();
}
void Ut_MApplicationExtensionManager::testAddWidgetInProcessExtensionWithoutWidget()
{
    setupGoodExtension();
    QSharedPointer<const MApplicationExtensionMetaData> metaData(
        new MApplicationExtensionMetaData("test"));
    manager->instantiateInProcessExtension(metaData);
    QCOMPARE(signalListener.createdWidgets.count(), 0);
}
void Ut_MApplicationExtensionManager::testInstantiateInProcessExtensionWhichDoesNotDeriveFromBaseInterface()
{
    gQPluginLoaderInstances.append(new BadExtension);
    QSharedPointer<const MApplicationExtensionMetaData> metaData(
        new MApplicationExtensionMetaData("test"));
    QCOMPARE(manager->instantiateInProcessExtension(metaData), false);
    QCOMPARE(signalListener.instantiatedExtensions.count(), 0);
}
Esempio n. 20
0
/**
 *  Mimetypes (and other service types) which this document can handle.
 */
QStringList KoDocumentEntry::mimeTypes() const {
    QJsonObject json = metaData();
#ifdef OLD_PLUGIN_MIMETYPE_DATA
    return json.value("MimeType").toString().split(';', QString::SkipEmptyParts);
#else
    QJsonObject pluginData = json.value("KPlugin").toObject();
    return pluginData.value("MimeTypes").toVariant().toStringList();
#endif
}
Esempio n. 21
0
	BaselineData BHFitsImageSet::loadData(const ImageSetIndex &index)
	{
	  const BHFitsImageSetIndex &fitsIndex = static_cast<const BHFitsImageSetIndex&>(index);

	  TimeFrequencyMetaDataPtr metaData(new TimeFrequencyMetaData());
	  TimeFrequencyData data;
	  loadImageData(data, metaData, fitsIndex);
	  return BaselineData(data, metaData, index);
	}
void Ut_MApplicationExtensionManager::testAddWidgetInProcessExtensionWithWidget()
{
    QGraphicsWidget extensionWidget;
    setupGoodExtension(true, &extensionWidget);
    QSharedPointer<const MApplicationExtensionMetaData> metaData(
        new MApplicationExtensionMetaData("test"));
    manager->instantiateInProcessExtension(metaData);
    QCOMPARE(signalListener.createdWidgets.count(), 1);
    QCOMPARE(signalListener.createdWidgets.at(0), &extensionWidget);
}
void Ut_MApplicationExtensionManager::testRemoveOutOfProcessExtension()
{
    QSharedPointer<const MApplicationExtensionMetaData> metaData(
        new MApplicationExtensionMetaData("test"));
    manager->instantiateOutOfProcessExtension(metaData);
    MExtensionHandle *handle = manager->outOfProcessHandles.value(metaData.data());
    manager->removeOutOfProcessExtension(*metaData);
    QCOMPARE(signalListener.removedWidgets.count(), 1);
    QCOMPARE(signalListener.removedWidgets.at(0), handle);
}
void Ut_MApplicationExtensionManager::testInstantiatingInProcessExtensionUsesCorrectLoaderHints()
{
    QGraphicsWidget extensionWidget;
    setupGoodExtension(true, &extensionWidget);
    QSharedPointer<const MApplicationExtensionMetaData> metaData(
        new MApplicationExtensionMetaData("test"));
    manager->instantiateInProcessExtension(metaData);

    QCOMPARE(gPluginLoaderHints, (QLibrary::ResolveAllSymbolsHint | QLibrary::ExportExternalSymbolsHint));
}
Esempio n. 25
0
bool MessageFolder::moveMessage(const QMailMessageId& id)
{
    QMailMessageMetaData metaData(id);

    // Message is already in the correct folder; report success
    if (metaData.parentFolderId() == mFolder.id())
        return true;

    metaData.setParentFolderId(mFolder.id());
    return QMailStore::instance()->updateMessage(&metaData);
}
void Ut_MApplicationExtensionManager::testInstantiateInProcessExtensionWhichSucceedsWithoutWidget()
{
    setupGoodExtension();
    QSharedPointer<const MApplicationExtensionMetaData> metaData(
        new MApplicationExtensionMetaData("test"));
    QCOMPARE(manager->instantiateInProcessExtension(metaData), true);
    QCOMPARE(signalListener.instantiatedExtensions.count(), 1);
    QCOMPARE(signalListener.instantiatedExtensions.at(0), extensions.at(0));
    QCOMPARE(signalListener.instantiatedExtensions.at(0)->widget(), (QGraphicsWidget *)NULL);
    QCOMPARE(signalListener.createdWidgets.count(), 0);
    QCOMPARE(initializedInterface, interfaceName);
}
void Ut_MApplicationExtensionManager::testRemoveInProcessExtension()
{
    QGraphicsWidget extensionWidget;
    setupGoodExtension(true, &extensionWidget);
    gMApplicationExtensionMetaDataStub->stubSetReturnValue("extensionBinary", QString("test"));
    QSharedPointer<const MApplicationExtensionMetaData> metaData(
        new MApplicationExtensionMetaData("test"));
    manager->instantiateInProcessExtension(metaData);
    manager->removeInProcessExtension(*metaData);
    QCOMPARE(signalListener.removedExtensions.count(), 1);
    QCOMPARE(signalListener.removedExtensions.at(0).first, extensions.at(0));
}
Esempio n. 28
0
ModelMetadata* ModelManager::metaDataFromBuffer(const QByteArray& input)
{
  ModelMetadata *data = 0;
  KTar *tar = archiveFromBuffer(input);
  if (tar) {
    data = metaData(*tar);
    QIODevice *d = tar->device();
    delete tar;
    delete d;
  }
  return data;
}
Esempio n. 29
0
void CheckUnSupportError(CPDF_Document* pDoc, FX_DWORD err_code) {
  // Security
  if (err_code == FPDF_ERR_SECURITY) {
    FPDF_UnSupportError(FPDF_UNSP_DOC_SECURITY);
    return;
  }
  if (!pDoc)
    return;

  // Portfolios and Packages
  CPDF_Dictionary* pRootDict = pDoc->GetRoot();
  if (pRootDict) {
    CFX_ByteString cbString;
    if (pRootDict->KeyExist("Collection")) {
      FPDF_UnSupportError(FPDF_UNSP_DOC_PORTABLECOLLECTION);
      return;
    }
    if (pRootDict->KeyExist("Names")) {
      CPDF_Dictionary* pNameDict = pRootDict->GetDict("Names");
      if (pNameDict && pNameDict->KeyExist("EmbeddedFiles")) {
        FPDF_UnSupportError(FPDF_UNSP_DOC_ATTACHMENT);
        return;
      }
      if (pNameDict && pNameDict->KeyExist("JavaScript")) {
        CPDF_Dictionary* pJSDict = pNameDict->GetDict("JavaScript");
        CPDF_Array* pArray = pJSDict ? pJSDict->GetArray("Names") : NULL;
        if (pArray) {
          int nCount = pArray->GetCount();
          for (int i = 0; i < nCount; i++) {
            CFX_ByteString cbStr = pArray->GetString(i);
            if (cbStr.Compare("com.adobe.acrobat.SharedReview.Register") == 0) {
              FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDREVIEW);
              return;
            }
          }
        }
      }
    }
  }

  // SharedForm
  CPDF_Metadata metaData(pDoc);
  const CXML_Element* pElement = metaData.GetRoot();
  if (pElement)
    CheckSharedForm(pElement, "workflowType");

  // XFA Forms
  CPDF_InterForm* pInterForm = new CPDF_InterForm(pDoc, FALSE);
  if (pInterForm->HasXFAForm()) {
    FPDF_UnSupportError(FPDF_UNSP_DOC_XFAFORM);
  }
  delete pInterForm;
}
Esempio n. 30
0
void CheckUnSupportError(CPDF_Document* pDoc, uint32_t err_code) {
  // Security
  if (err_code == FPDF_ERR_SECURITY) {
    FPDF_UnSupportError(FPDF_UNSP_DOC_SECURITY);
    return;
  }
  if (!pDoc)
    return;

  // Portfolios and Packages
  CPDF_Dictionary* pRootDict = pDoc->GetRoot();
  if (pRootDict) {
    CFX_ByteString cbString;
    if (pRootDict->KeyExist("Collection")) {
      FPDF_UnSupportError(FPDF_UNSP_DOC_PORTABLECOLLECTION);
      return;
    }
    if (pRootDict->KeyExist("Names")) {
      CPDF_Dictionary* pNameDict = pRootDict->GetDictFor("Names");
      if (pNameDict && pNameDict->KeyExist("EmbeddedFiles")) {
        FPDF_UnSupportError(FPDF_UNSP_DOC_ATTACHMENT);
        return;
      }
      if (pNameDict && pNameDict->KeyExist("JavaScript")) {
        CPDF_Dictionary* pJSDict = pNameDict->GetDictFor("JavaScript");
        CPDF_Array* pArray = pJSDict ? pJSDict->GetArrayFor("Names") : nullptr;
        if (pArray) {
          for (size_t i = 0; i < pArray->GetCount(); i++) {
            CFX_ByteString cbStr = pArray->GetStringAt(i);
            if (cbStr.Compare("com.adobe.acrobat.SharedReview.Register") == 0) {
              FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDREVIEW);
              return;
            }
          }
        }
      }
    }
  }

  // SharedForm
  CPDF_Metadata metaData(pDoc);
  const CXML_Element* pElement = metaData.GetRoot();
  if (pElement)
    CheckSharedForm(pElement, "workflowType");

#ifndef PDF_ENABLE_XFA
  // XFA Forms
  CPDF_InterForm interform(pDoc);
  if (interform.HasXFAForm())
    FPDF_UnSupportError(FPDF_UNSP_DOC_XFAFORM);
#endif  // PDF_ENABLE_XFA
}