# HG changeset patch # User insilmaril # Date 1140008095 0 # Node ID 30c4a6c7ff100f385ae360c1690349f5dc816671 # Parent 657078664946472d017e7ddd90d678699e297728 1.7.9 Import of KDE bookmarks, some _de translations diff -r 657078664946 -r 30c4a6c7ff10 exports.cpp --- a/exports.cpp Wed Feb 15 12:54:55 2006 +0000 +++ b/exports.cpp Wed Feb 15 12:54:55 2006 +0000 @@ -4,7 +4,6 @@ #include "file.h" #include "linkablemapobj.h" #include "misc.h" -#include "texteditor.h" #include "mainwindow.h" extern Main *mainWindow; @@ -31,6 +30,7 @@ QString ExportBase::getSectionString(BranchObj *bostart) { + // Make prefix like "2.5.3" for "bo:2,bo:5,bo:3" QString r; BranchObj *bo=bostart; int depth=bo->getDepth(); @@ -69,8 +69,6 @@ // Make indentstring for (i=0;igetDepth();i++) actIndent+= indentPerDepth; - // Write heading - // write (actIndent + getSectionString(bo) + bo->getHeading()+ "\n"); if (bo->getDepth()==0) { ts << (bo->getHeading()+ "\n"); @@ -106,8 +104,8 @@ // that makes a full LaTex document. QFile file (outputFile); if ( !file.open( IO_WriteOnly ) ) { - // FIXME - cout << "Export::exportMap couldn't open "<statusMessage(QString(QObject::tr("Export failed."))); return; } QTextStream ts( &file ); // use LANG decoding here... @@ -247,7 +245,8 @@ QFile f (contentFile); if ( !f.open( IO_WriteOnly ) ) { - mainWindow->statusMessage(QString(QObject::tr("Could not write to %1")).arg(contentFile)); + QMessageBox::critical (0,QObject::tr("Critical Export Error"),QObject::tr("Could not write %1").arg(contentFile)); + mainWindow->statusMessage(QString(QObject::tr("Export failed."))); return; } diff -r 657078664946 -r 30c4a6c7ff10 exports.h --- a/exports.h Wed Feb 15 12:54:55 2006 +0000 +++ b/exports.h Wed Feb 15 12:54:55 2006 +0000 @@ -8,8 +8,6 @@ #include "mapcenterobj.h" #include "settings.h" -//using namespace std; - /////////////////////////////////////////////////////////////////////// class ExportBase @@ -26,7 +24,7 @@ void exportXML(); protected: - QDir outdir; + QDir tmpDir; QString outputDir; QString outputFile; MapCenterObj *mapCenter; @@ -50,7 +48,6 @@ bool setConfigFile (const QString &); private: QString buildList (BranchObj*); - QDir tmpDir; bool useSections; QString configFile; QString configDir; diff -r 657078664946 -r 30c4a6c7ff10 exportxhtmldialog.ui --- a/exportxhtmldialog.ui Wed Feb 15 12:54:55 2006 +0000 +++ b/exportxhtmldialog.ui Wed Feb 15 12:54:55 2006 +0000 @@ -578,11 +578,11 @@ - process.h - showtextdialog.h qfiledialog.h qmessagebox.h settings.h + xsltproc.h + process.h exportxhtmldialog.ui.h @@ -592,16 +592,15 @@ QString css; bool useImage; bool showOutput; - Process *xsltProc; - ShowTextDialog *dia; QString dir; - QString xsltprocessor; QString filepath; QString prescript; QString postscript; bool settingsChanged; QString mapname; bool saveSettingsInMap; + XSLTProc p; + Process *scriptProc; readSettings() diff -r 657078664946 -r 30c4a6c7ff10 file.cpp --- a/file.cpp Wed Feb 15 12:54:55 2006 +0000 +++ b/file.cpp Wed Feb 15 12:54:55 2006 +0000 @@ -131,9 +131,9 @@ d.mkdir ("flags"); } -errorCode zipDir (const QDir &zipDir, const QString &zipName) +ErrorCode zipDir (const QDir &zipDir, const QString &zipName) { - errorCode err=success; + ErrorCode err=success; // zip the temporary directory Process *zipProc=new Process (); @@ -171,13 +171,12 @@ } } } // zip could be started - if (err==aborted) qWarning("file.cpp: zip aborted"); return err; } -errorCode unzipDir (const QDir &zipDir, const QString &zipName) +ErrorCode unzipDir (const QDir &zipDir, const QString &zipName) { - errorCode err=success; + ErrorCode err=success; // Try to unzip file Process *zipProc=new Process (); diff -r 657078664946 -r 30c4a6c7ff10 file.h --- a/file.h Wed Feb 15 12:54:55 2006 +0000 +++ b/file.h Wed Feb 15 12:54:55 2006 +0000 @@ -5,7 +5,7 @@ enum LoadMode {NewMap,ImportAdd,ImportReplace}; enum SaveMode {PartOfMap,CompleteMap,UndoCommand}; -enum errorCode {success,aborted,nozip}; +enum ErrorCode {success,aborted,nozip}; ///////////////////////////////////////////////////////////////////////////// @@ -14,8 +14,8 @@ QString makeUniqueDir (QString); void removeDir(QDir); void makeSubDirs (const QString &); -errorCode zipDir (const QDir &,const QString&); -errorCode unzipDir (const QDir &,const QString&); +ErrorCode zipDir (const QDir &,const QString&); +ErrorCode unzipDir (const QDir &,const QString&); bool loadStringFromDisk (const QString &, QString &); bool saveStringToDisk (const QString &, const QString &s); diff -r 657078664946 -r 30c4a6c7ff10 imports.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imports.cpp Wed Feb 15 12:54:55 2006 +0000 @@ -0,0 +1,56 @@ +#include + +#include "imports.h" +#include "file.h" +#include "linkablemapobj.h" +#include "misc.h" +#include "mainwindow.h" +#include "xsltproc.h" + +extern Main *mainWindow; + +ImportBase::ImportBase() +{ + // Create tmpdir + tmpDir.setPath (makeUniqueDir("/tmp/vym-XXXXXX")); +} + + +ImportBase::~ImportBase() +{ + // Remove tmpdir + removeDir (tmpDir); +} + +void ImportBase::setDir(const QString &p) +{ + inputDir=p; +} + +void ImportBase::setFile (const QString &p) +{ + inputFile=p; +} + +void ImportBase::setMapCenter(MapCenterObj *mc) +{ + mapCenter=mc; +} + +///////////////////////////////////////////////// +void ImportKDEBookmarks::transform() +{ + transformedFile=tmpDir.path()+"/bookmarks.xml"; + + XSLTProc p; + p.setInputFile (tmpDir.home().path()+"/.kde/share/apps/konqueror/bookmarks.xml"); + p.setOutputFile (transformedFile); + p.setXSLFile ("styles/kdebookmarks2vym.xsl"); + p.process(); +} + +QString ImportKDEBookmarks::getTransformedFile() +{ + return transformedFile; +} + diff -r 657078664946 -r 30c4a6c7ff10 imports.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imports.h Wed Feb 15 12:54:55 2006 +0000 @@ -0,0 +1,42 @@ +#ifndef IMPORTS_H +#define IMPORTS_H + +#include +#include +#include + +#include "mapcenterobj.h" +#include "settings.h" + + +/////////////////////////////////////////////////////////////////////// + +class ImportBase +{ +public: + ImportBase(); + ~ImportBase(); + void setDir(const QString &); + void setFile(const QString &); + void setMapCenter (MapCenterObj*); +protected: + QDir tmpDir; + QString inputDir; + QString inputFile; + MapCenterObj *mapCenter; + +}; + +/////////////////////////////////////////////////////////////////////// +class ImportKDEBookmarks:public ImportBase +{ +public: + void transform(); + QString getTransformedFile(); +private: + QString transformedFile; +}; + + + +#endif diff -r 657078664946 -r 30c4a6c7ff10 main.cpp --- a/main.cpp Wed Feb 15 12:54:55 2006 +0000 +++ b/main.cpp Wed Feb 15 12:54:55 2006 +0000 @@ -12,6 +12,7 @@ #include "mainwindow.h" #include "icons/vym-48x48.xpm" +#include "icons/vym-128x128.xpm" #include "icons/vym-editor.xpm" #include "flagrowobj.h" @@ -111,6 +112,7 @@ QPopupMenu *saveImageFormatMenu; QPopupMenu *canvasContextMenu; QPopupMenu *lastMapsMenu; +QPopupMenu *importMenu; QPopupMenu *exportMenu; QPopupMenu *exportImageFormatMenu; @@ -125,7 +127,8 @@ QApplication app(argc,argv); QMimeSourceFactory *factory = QMimeSourceFactory::defaultFactory(); - factory->setPixmap("vym_logo", QPixmap(vym_logo_xpm)); + factory->setPixmap("vym_48x48", QPixmap(vym_48x48_xpm)); + factory->setPixmap("vym_128x128", QPixmap(vym_128x128_xpm)); qInitNetworkProtocols(); // Use /usr/share/vym or /usr/local/share/vym or . @@ -194,7 +197,7 @@ // Initialize mainwindow Main m; //m.resize(m.sizeHint()); - m.setIcon (QPixmap (vym_logo_xpm)); + m.setIcon (QPixmap (vym_48x48_xpm)); m.show(); m.fileNew(); m.loadCmdLine(); diff -r 657078664946 -r 30c4a6c7ff10 mainwindow.cpp --- a/mainwindow.cpp Wed Feb 15 12:54:55 2006 +0000 +++ b/mainwindow.cpp Wed Feb 15 12:54:55 2006 +0000 @@ -19,12 +19,6 @@ #include #include -#include "file.h" -#include "misc.h" -#include "version.h" -#include "aboutdialog.h" -#include "exportoofiledialog.h" - #include "icons/filenew.xpm" #include "icons/fileopen.xpm" #include "icons/filesave.xpm" @@ -45,8 +39,6 @@ #include "icons/modecolor.xpm" #include "icons/modelink.xpm" #include "icons/modecopy.xpm" -//#include "icons/vym-48x48.xpm" - #include "icons/flag-questionmark.xpm" #include "icons/flag-exclamationmark.xpm" #include "icons/flag-hook-green.xpm" @@ -63,22 +55,27 @@ #include "icons/flag-heart.xpm" #include "icons/flag-flash.xpm" #include "icons/flag-lifebelt.xpm" - #include "icons/flag-note.xpm" #include "icons/flag-url.xpm" #include "icons/flag-vymlink.xpm" #include "icons/flag-scrolled-right.xpm" #include "icons/flag-tmpUnscrolled-right.xpm" +#include "aboutdialog.h" +#include "exporthtmldialog.h" +#include "exportoofiledialog.h" +#include "exportxhtmldialog.h" +#include "file.h" #include "flagrowobj.h" -#include "texteditor.h" +#include "imports.h" #include "mapeditor.h" -#include "exporthtmldialog.h" -#include "exportxhtmldialog.h" -#include "showtextdialog.h" +#include "misc.h" +#include "options.h" #include "process.h" #include "settings.h" -#include "options.h" +#include "showtextdialog.h" +#include "texteditor.h" +#include "version.h" extern TextEditor *textEditor; extern Main *mainWindow; @@ -86,7 +83,6 @@ extern QString clipboardDir; extern bool clipboardEmpty; extern int statusbarTime; -extern MapEditor *clipboardME; extern FlagRowObj* standardFlagsDefault; extern FlagRowObj* systemFlagsDefault; @@ -172,6 +168,7 @@ extern QPopupMenu* saveImageFormatMenu; extern QPopupMenu* canvasContextMenu; extern QPopupMenu* lastMapsMenu; +extern QPopupMenu* importMenu; extern QPopupMenu* exportMenu; extern QPopupMenu* exportImageFormatMenu; @@ -386,9 +383,16 @@ menu->insertSeparator(); + importMenu = new QPopupMenu (this); + menu->insertItem (tr("Import"),importMenu ); + + a = new QAction( tr( "Import")+" "+tr("KDE Bookmarks" ), QPixmap(), tr("KDE Bookmarks"), 0, this, "importKDEBookmarks" ); + connect( a, SIGNAL( activated() ), this, SLOT( fileImportKDEBookmarks() ) ); + a->addTo (importMenu); + a = new QAction( tr( "Import directory structure (experimental)" ), QPixmap(), tr( "Import Dir"+QString("...") ), 0, this, "export" ); connect( a, SIGNAL( activated() ), this, SLOT( fileImportDir() ) ); - a->addTo( menu ); + a->addTo( importMenu); exportMenu = new QPopupMenu (this); menu->insertItem (tr("Export"),exportMenu ); @@ -1058,7 +1062,7 @@ connect( a, SIGNAL( activated() ), this, SLOT( helpDoc() ) ); a->addTo( menu ); - a = new QAction( tr( "Information about")+" "__VYM, QPixmap(), tr( "About VYM" ), 0, this, "about" ); + a = new QAction( tr( "About VYM")+" "__VYM, QPixmap(), tr( "About VYM" ), 0, this, "about" ); connect( a, SIGNAL( activated() ), this, SLOT( helpAbout() ) ); a->addTo( menu ); @@ -1162,32 +1166,32 @@ floatimageContextMenu->insertSeparator(); actionFormatHideLinkUnselected->addTo( floatimageContextMenu ); - a = new QAction( tr( "Export as Open Office 2.0 (Open Document) " ), QPixmap(), "Open Office"+QString("..."), 0, this, "exportOOPresentation" ); + a = new QAction( tr( "Export in Open Document Format used e.g. in Open Office " ), QPixmap(), "Open Office"+QString("..."), 0, this, "exportOOPresentation" ); connect( a, SIGNAL( activated() ), this, SLOT( fileExportOOPresentation() ) ); a->addTo (exportMenu); - exportMenu->insertItem ( tr("Image"),exportImageFormatMenu); + exportMenu->insertItem ( tr("Export as Image"),exportImageFormatMenu); - a = new QAction( tr( "Export as ASCII (still experimental)" ), QPixmap(), "ASCII...", 0, this, "exportASCII" ); + a = new QAction( tr( "Export as ASCII")+" "+tr("(still experimental)" ), QPixmap(), "ASCII...", 0, this, "exportASCII" ); connect( a, SIGNAL( activated() ), this, SLOT( fileExportASCII() ) ); a->addTo( exportMenu ); - a = new QAction( tr( "Export as LaTeX (still experimental)" ), QPixmap(), "LaTeX...", 0, this, "exportLaTeX" ); + a = new QAction( tr( "Export as LaTeX")+" "+tr("(still experimental)" ), QPixmap(), "LaTeX...", 0, this, "exportLaTeX" ); connect( a, SIGNAL( activated() ), this, SLOT( fileExportLaTeX() ) ); a->addTo( exportMenu ); - a = new QAction( tr( "Export (XML)" ), QPixmap(), "XML...", 0, this, "exportXML" ); + a = new QAction( tr( "Export as XML" ), QPixmap(), "XML...", 0, this, "exportXML" ); connect( a, SIGNAL( activated() ), this, SLOT( fileExportXML() ) ); a->addTo( exportMenu ); if (settings.readBoolEntry( "/vym/mainwindow/showTestMenu",false)) { - a = new QAction( tr( "Export HTML" ), QPixmap(), "HTML...", 0, this, "exportHTML"); + a = new QAction( tr( "Export as HTML" ), QPixmap(), "HTML...", 0, this, "exportHTML"); connect( a, SIGNAL( activated() ), this, SLOT( fileExportHTML() ) ); a->addTo( exportMenu ); } - a = new QAction( tr( "Export XHTML" ), QPixmap(), "XHTML...", ALT + Key_X, this, "exportXHTML" ); + a = new QAction( tr( "Export as XHTML" ), QPixmap(), "XHTML...", ALT + Key_X, this, "exportXHTML" ); connect( a, SIGNAL( activated() ), this, SLOT( fileExportXHTML() ) ); a->addTo( exportMenu ); @@ -1344,9 +1348,9 @@ medit->select("mc:"); } -void Main::fileLoad(QString fn, const LoadMode &lmode) +ErrorCode Main::fileLoad(QString fn, const LoadMode &lmode) { - errorCode err=success; + ErrorCode err=success; // fn is usually the archive, mapfile the file after uncompressing QString mapfile; @@ -1385,7 +1389,7 @@ break; case QMessageBox::Cancel: // do nothing - return; + return aborted; break; } } @@ -1431,13 +1435,13 @@ tabWidget->setTabLabel (currentMapEditor(), currentMapEditor()->getFileName() ); statusBar()->message( "Created " + fn , statusbarTime ); - return; + return success; case QMessageBox::Cancel: // don't create new map statusBar()->message( "Loading " + fn + " failed!", statusbarTime ); fileCloseMap(); - return; + return aborted; } } @@ -1503,8 +1507,7 @@ // Finally load map into mapEditor me->setFilePath (mapfile,fn); - if (me->load(mapfile,lmode)) - err=aborted; + err=me->load(mapfile,lmode); // Restore old (maybe empty) filepath, if this is an import if (lmode!=NewMap) @@ -1522,8 +1525,13 @@ { me->setFilePath (fn); tabWidget->changeTab(tabWidget->page(tabIndex), me->getFileName()); - lastMaps.prepend(me->getFilePath() ); - setupLastMapsMenu(); + if (fn.left(9)!="/tmp/vym-") + { + // Only append to lastMaps if not loaded from a tmpDir + // e.g. imported bookmarks are in a tmpDir + lastMaps.prepend(me->getFilePath() ); + setupLastMapsMenu(); + } actionFilePrint->setEnabled (true); } statusBar()->message( "Loaded " + fn, statusbarTime ); @@ -1532,6 +1540,7 @@ // Delete tmpDir removeDir (QDir(tmpMapDir)); } + return err; } @@ -1589,8 +1598,7 @@ QString tmpMapDir; // Error codes - enum errorCode {success,aborted}; - errorCode err=success; + ErrorCode err=success; QString safeFilePath; @@ -1776,6 +1784,14 @@ currentMapEditor()->importDir(); } +void Main::fileImportKDEBookmarks() +{ + ImportKDEBookmarks im; + im.transform(); + if (success==fileLoad (im.getTransformedFile(),NewMap) && currentMapEditor() ) + currentMapEditor()->setFilePath (""); +} + void Main::fileExportXML() { if (currentMapEditor()) @@ -2500,8 +2516,7 @@ void Main::testFunction() { - fileExportOOPresentation(); -// currentMapEditor()->testFunction(); + currentMapEditor()->testFunction(); } void Main::helpDoc() diff -r 657078664946 -r 30c4a6c7ff10 mainwindow.h --- a/mainwindow.h Wed Feb 15 12:54:55 2006 +0000 +++ b/mainwindow.h Wed Feb 15 12:54:55 2006 +0000 @@ -57,7 +57,7 @@ void newView(); void editorChanged(QWidget*); - void fileLoad(QString ,const LoadMode &); + ErrorCode fileLoad(QString ,const LoadMode &); void fileLoad(const LoadMode &); void fileLoad(); void fileLoadLast(int); @@ -66,6 +66,7 @@ void fileSaveAs(const SaveMode &); void fileSaveAs(); void fileImportDir(); + void fileImportKDEBookmarks(); void fileExportXML(); void fileExportHTML(); void fileExportXHTML(); diff -r 657078664946 -r 30c4a6c7ff10 mapeditor.cpp --- a/mapeditor.cpp Wed Feb 15 12:54:55 2006 +0000 +++ b/mapeditor.cpp Wed Feb 15 12:54:55 2006 +0000 @@ -717,7 +717,7 @@ void MapEditor::setFilePath(QString fname, QString destname) { - if (fname.isEmpty()) + if (fname.isEmpty() || fname=="") { filePath=""; fileName=""; @@ -761,12 +761,12 @@ return destPath; } -int MapEditor::load (QString fname, LoadMode lmode) +ErrorCode MapEditor::load (QString fname, LoadMode lmode) { // Finish open lineEdits if (lineedit) finishedLineEditNoSave(); - int returnCode=0; + ErrorCode err=success; if (lmode==NewMap) { @@ -790,7 +790,7 @@ { QMessageBox::critical( 0, tr( "Critical Parse Error" ), tr("Couldn't open map " +fname)+"."); - returnCode=1; + err=aborted; } else { blockReposition=true; @@ -826,7 +826,7 @@ } } updateActions(); - return returnCode; + return err; } int MapEditor::save (const SaveMode &savemode) @@ -1065,9 +1065,9 @@ ExportBase ex; ex.setMapCenter(mapCenter); - QFileDialog *fd=new QFileDialog( this, __VYM " - " +tr("Export (ASCII)")); + QFileDialog *fd=new QFileDialog( this, __VYM " - " +tr("Export as ASCII")); fd->addFilter ("TXT (*.txt)"); - fd->setCaption(__VYM " -" +tr("Export (ASCII) (still experimental)")); + fd->setCaption(__VYM " -" +tr("Export as ASCII")+" "+tr("(still experimental)")); fd->setMode( QFileDialog::AnyFile ); fd->show(); @@ -1104,9 +1104,9 @@ void MapEditor::exportLaTeX() { // TODO still experimental - QFileDialog *fd=new QFileDialog( this, __VYM " - " +tr("Export (LaTex)")); + QFileDialog *fd=new QFileDialog( this, __VYM " - " +tr("Export as LaTeX")); fd->addFilter ("TEX (*.tex)"); - fd->setCaption(__VYM " - " + tr("Export (LaTex) (still experimental)")); + fd->setCaption(__VYM " - " + tr("Export as LaTeX")+" "+tr("(still experimental)")); fd->setMode( QFileDialog::AnyFile ); fd->show(); @@ -3017,10 +3017,13 @@ void MapEditor::testFunction() { cout << "MapEditor::testFunction() called\n"; + + /* if (selection && (typeid(*selection) == typeid(BranchObj))) { cout << "Note:\n"<<((BranchObj*)selection)->getNoteOpenDoc()< +#include + +#include "process.h" + + +XSLTProc::XSLTProc () +{ + xsltprocessor="xsltproc"; + showOutput=false; + dia=new ShowTextDialog; +} + +XSLTProc::~XSLTProc () +{ + delete (dia); +} + +void XSLTProc::addStringParam (const QString & k, const QString &v) +{ + stringParamKey.append (k); + stringParamVal.append (v); +} + +void XSLTProc::setOutputFile (const QString &s) +{ + outputFile=s; +} + +void XSLTProc::setXSLFile(const QString &s) +{ + xslFile=s; +} + +void XSLTProc::setInputFile (const QString &s) +{ + inputFile=s; +} + +void XSLTProc::addOutput (const QString &s) +{ + dia->append (s); +} + +void XSLTProc::process() +{ + ShowTextDialog dia; + Process *xsltProc=new Process (); + xsltProc->clearArguments(); + xsltProc->addArgument (xsltprocessor); + + QStringList::Iterator itk; + QStringList::Iterator itv=stringParamVal.begin(); + + for ( itk = stringParamKey.begin(); itk != stringParamKey.end(); ++itk ) + { + xsltProc->addArgument ("--stringparam"); + xsltProc->addArgument (*itk); + xsltProc->addArgument (*itv); + ++itv; + } + + xsltProc->addArgument ("--output"); + xsltProc->addArgument (outputFile); + xsltProc->addArgument (xslFile); + xsltProc->addArgument (inputFile); + dia.append ("vym is executing: \n" + xsltProc->arguments().join(" ") ); + if (!xsltProc->start() ) + { + QMessageBox::critical( 0, QObject::tr( "Critical Error" ), + QObject::tr("Could not start %1").arg(xsltprocessor) ); + } else + { + xsltProc->waitFinished(); + if (!xsltProc->normalExit() ) + QMessageBox::critical( 0, QObject::tr( "Critical Error" ), + QObject::tr("%1 didn't exit normally").arg(xsltprocessor) + + xsltProc->getErrout() ); + else + if (xsltProc->exitStatus()>0) showOutput=true; + + } + dia.append ("\n"); + dia.append (xsltProc->getErrout()); + dia.append (xsltProc->getStdout()); + + if (showOutput) dia.exec(); +} +