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