fixed Uniboard to sankore document importation

preferencesAboutTextFull
Claudio Valerio 13 years ago
parent 4302e89cea
commit 0edf49ad36
  1. 46
      src/transition/UniboardSankoreTransition.cpp

@ -106,11 +106,16 @@ bool UniboardSankoreTransition::checkPage(QString& sankorePagePath)
sankoreDirectory = QUrl::fromLocalFile(sankoreDirectory).toString();
QString documentString(documentByteArray);
documentString.replace("xlink:href=\"videos/","xlink:href=\"" + sankoreDirectory + "/videos/");
QRegExp videoRegExp("<video(.*)xlink:href=\"(.*)videos/(.*)/>");
videoRegExp.setMinimal(true);
documentString.replace("xlink:href=\"objects/","xlink:href=\"" + sankoreDirectory + "/objects/");
documentString.replace(videoRegExp,"<video\\1xlink:href=\"videos/\\3/>");
documentString.replace("xlink:href=\"audios/","xlink:href=\"" + sankoreDirectory + "/audios/");
QRegExp audioRegExp("<audio(.*)xlink:href=\"(.*)audios/(.*)/>");
audioRegExp.setMinimal(true);
documentString.replace(audioRegExp,"<audio\\1xlink:href=\"audios/\\3/>");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
return false;
@ -133,7 +138,36 @@ bool UniboardSankoreTransition::checkWidget(QString& sankoreWidgetIndexPath)
QString documentString(documentByteArray);
documentString.replace("/Uniboard/interactive content","/Sankore/interactive content");
QRegExp swfOriginFilePathRegExp("<param name=\"movie\" value=\"(.*)\">");
swfOriginFilePathRegExp.setMinimal(true);
swfOriginFilePathRegExp.indexIn(documentString);
QString origin = swfOriginFilePathRegExp.cap(1);
if(origin.contains("http://")){
// an url is the source of the swf. The source is kept as is.
return true;
}
//changing the path
QRegExp swfDataPathRegExp("<object(.*)data=\"(.*)interactive content/Web/(.*)\"(.*)>");
swfDataPathRegExp.setMinimal(true);
documentString.replace(swfDataPathRegExp,"<object\\1data=\"\\3\">");
QRegExp swfMoviePathRegExp("<param name=\"movie\" value=\"(.*)interactive content/Web/(.*)\">");
swfMoviePathRegExp.setMinimal(true);
documentString.replace(swfMoviePathRegExp,"<param name=\"movie\" value=\"\\2\">");
//copy the swf on the right place
QRegExp swfFileNameRegExp("<param name=\"movie\" value=\"(.*)\">");
swfFileNameRegExp.setMinimal(true);
swfFileNameRegExp.indexIn(documentString);
QString swfFileName = swfFileNameRegExp.cap(1);
int lastDirectoryLevel = sankoreWidgetIndexPath.lastIndexOf("/");
if (lastDirectoryLevel == -1)
lastDirectoryLevel = sankoreWidgetIndexPath.lastIndexOf("\\");
QString destination(sankoreWidgetIndexPath.left(lastDirectoryLevel) + "/" + swfFileName);
QFile(origin).copy(destination);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
return false;
@ -217,10 +251,6 @@ void UniboardSankoreTransition::executeTransition()
UBFileSystemUtils::deleteDir(backupDestinationPath);
}
else{
QString sankoreInteractiveAppPath = sankoreDocumentDirectory;
sankoreInteractiveAppPath = sankoreInteractiveAppPath.replace("document","") + "interactive content/";
UBFileSystemUtils::copyDir(mOldSankoreDirectory + "/interactive content", sankoreInteractiveAppPath);
UBFileSystemUtils::copyDir(mUniboardSourceDirectory + "/interactive content", sankoreInteractiveAppPath);
UBFileSystemUtils::deleteDir(mOldSankoreDirectory);
UBFileSystemUtils::deleteDir(mUniboardSourceDirectory);
}

Loading…
Cancel
Save