insilmaril@215: #include "file.h" insilmaril@205: #include "imports.h" insilmaril@205: #include "linkablemapobj.h" insilmaril@205: #include "misc.h" insilmaril@205: #include "mainwindow.h" insilmaril@205: #include "xsltproc.h" insilmaril@205: insilmaril@205: extern Main *mainWindow; insilmaril@215: extern QDir vymBaseDir; insilmaril@205: insilmaril@205: ImportBase::ImportBase() insilmaril@205: { insilmaril@377: bool ok; insilmaril@393: tmpDir.setPath (makeUniqueDir(ok,"/tmp/vym-import-XXXXXX")); insilmaril@377: if (!tmpDir.exists() || !ok) insilmaril@377: QMessageBox::critical( 0, QObject::tr( "Error" ), insilmaril@377: QObject::tr("Couldn't access temporary directory\n")); insilmaril@205: } insilmaril@205: insilmaril@205: insilmaril@205: ImportBase::~ImportBase() insilmaril@205: { insilmaril@205: // Remove tmpdir insilmaril@228: removeDir (tmpDir); insilmaril@205: } insilmaril@205: insilmaril@205: void ImportBase::setDir(const QString &p) insilmaril@205: { insilmaril@205: inputDir=p; insilmaril@205: } insilmaril@205: insilmaril@205: void ImportBase::setFile (const QString &p) insilmaril@205: { insilmaril@205: inputFile=p; insilmaril@205: } insilmaril@205: insilmaril@205: void ImportBase::setMapCenter(MapCenterObj *mc) insilmaril@205: { insilmaril@205: mapCenter=mc; insilmaril@205: } insilmaril@205: insilmaril@215: bool ImportBase::transform() insilmaril@215: { insilmaril@215: return true; insilmaril@215: } insilmaril@215: insilmaril@215: QString ImportBase::getTransformedFile() insilmaril@215: { insilmaril@215: return transformedFile; insilmaril@215: } insilmaril@215: insilmaril@205: ///////////////////////////////////////////////// insilmaril@215: bool ImportKDEBookmarks::transform() insilmaril@205: { insilmaril@205: transformedFile=tmpDir.path()+"/bookmarks.xml"; insilmaril@205: insilmaril@205: XSLTProc p; insilmaril@205: p.setInputFile (tmpDir.home().path()+"/.kde/share/apps/konqueror/bookmarks.xml"); insilmaril@205: p.setOutputFile (transformedFile); insilmaril@215: p.setXSLFile (vymBaseDir.path()+"/styles/kdebookmarks2vym.xsl"); insilmaril@205: p.process(); insilmaril@215: insilmaril@215: return true; insilmaril@205: } insilmaril@205: insilmaril@215: insilmaril@215: ///////////////////////////////////////////////// insilmaril@312: bool ImportFirefoxBookmarks::transform() insilmaril@312: { insilmaril@312: transformedFile=tmpDir.path()+"/bookmarks.xml"; insilmaril@312: insilmaril@326: QStringList lines; insilmaril@326: QFile file( inputFile ); insilmaril@366: if ( file.open( QIODevice::ReadOnly ) ) insilmaril@326: { insilmaril@326: QTextStream stream( &file ); insilmaril@326: while ( !stream.atEnd() ) insilmaril@326: lines += stream.readLine(); // line of text excluding '\n' insilmaril@326: file.close(); insilmaril@326: } insilmaril@393: // TODO Generate vym from broken bookmarks above... insilmaril@312: insilmaril@312: return true; insilmaril@312: } insilmaril@312: insilmaril@312: insilmaril@312: ///////////////////////////////////////////////// insilmaril@215: bool ImportMM::transform() insilmaril@205: { insilmaril@215: // try to unzip insilmaril@215: if (success==unzipDir (tmpDir, inputFile)) insilmaril@215: { insilmaril@215: insilmaril@215: // Set short name, too. Search from behind: insilmaril@215: transformedFile=inputFile; insilmaril@215: int i=transformedFile.findRev("/"); insilmaril@215: if (i>=0) transformedFile=transformedFile.remove (0,i+1); insilmaril@215: transformedFile.replace(".mmap",".xml"); insilmaril@215: transformedFile=tmpDir.path()+"/"+transformedFile; insilmaril@215: insilmaril@215: XSLTProc p; insilmaril@215: p.setInputFile (tmpDir.path()+"/Document.xml"); insilmaril@215: p.setOutputFile (transformedFile); insilmaril@215: p.setXSLFile (vymBaseDir.path()+"/styles/mmap2vym.xsl"); insilmaril@215: p.process(); insilmaril@215: insilmaril@215: cout << " xslt done"<