Fixed bugs in uniboard->sankore documents conversion

preferencesAboutTextFull
Claudio Valerio 13 years ago
parent 7602a1849b
commit 816168fb97
  1. 58
      src/transition/UniboardSankoreTransition.cpp
  2. 2
      src/transition/UniboardSankoreTransition.h

@ -12,6 +12,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "UniboardSankoreTransition.h"
#include "core/UBSettings.h"
#include "frameworks/UBDesktopServices.h"
@ -90,6 +91,59 @@ void UniboardSankoreTransition::startDocumentTransition()
connect(this,SIGNAL(transitioningFile(QString)),mTransitionDlg,SLOT(transitioningFile(QString)));
}
bool UniboardSankoreTransition::checkPage(QString& sankorePagePath)
{
QFile file(sankorePagePath);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return false;
QByteArray documentByteArray = file.readAll();
file.close();
QString sankoreDirectory = sankorePagePath.left(sankorePagePath.indexOf("/page"));
;
sankoreDirectory = QUrl::fromLocalFile(sankoreDirectory).toString();
QString documentString(documentByteArray);
qDebug() << documentString;
documentString.replace("xlink:href=\"videos/","xlink:href=\"" + sankoreDirectory + "/videos/");
documentString.replace("xlink:href=\"widgets/","xlink:href=\"" + sankoreDirectory + "/widgets/");
documentString.replace("xlink:href=\"objects/","xlink:href=\"" + sankoreDirectory + "/objects/");
documentString.replace("xlink:href=\"audios/","xlink:href=\"" + sankoreDirectory + "/audios/");
qDebug() << documentString;
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
return false;
file.write(documentString.toAscii());
file.close();
return true;
}
bool UniboardSankoreTransition::updateSankoreHRef(QString& sankoreDocumentPath)
{
bool result = true;
QFileInfoList fileInfoList = UBFileSystemUtils::allElementsInDirectory(sankoreDocumentPath);
QFileInfoList::iterator fileInfo;
QString sankoreDocumentDirectory = UBSettings::uniboardDocumentDirectory();
for (fileInfo = fileInfoList.begin(); fileInfo != fileInfoList.end() && result; fileInfo += 1) {
if (fileInfo->fileName().endsWith("svg")){
qDebug() << fileInfo->absolutePath();
QString path = fileInfo->absolutePath() + "/" + fileInfo->fileName();
result = checkPage(path);
}
}
return result;
}
void UniboardSankoreTransition::executeTransition()
{
bool result = false;
@ -109,7 +163,9 @@ void UniboardSankoreTransition::executeTransition()
QString sankoreDocumentName = fileInfo->fileName();
emit transitioningFile(sankoreDocumentName);
sankoreDocumentName.replace("Uniboard","Sankore");
result = UBFileSystemUtils::copyDir(fileInfo->filePath(),sankoreDocumentDirectory + "/" + sankoreDocumentName);
QString sankoreDocumentPath = sankoreDocumentDirectory + "/" + sankoreDocumentName;
result = UBFileSystemUtils::copyDir(fileInfo->filePath(),sankoreDocumentPath);
result &= updateSankoreHRef(sankoreDocumentPath);
}
}

@ -39,6 +39,8 @@ public:
explicit UniboardSankoreTransition(QObject *parent = 0);
~UniboardSankoreTransition();
void documentTransition();
bool checkPage(QString& sankorePagePath);
bool updateSankoreHRef(QString &sankoreDocumentPath);
void executeTransition();

Loading…
Cancel
Save