diff -r 6a0342b3c519 -r ec3d2962893d mainwindow.cpp --- a/mainwindow.cpp Tue Jun 13 08:49:12 2006 +0000 +++ b/mainwindow.cpp Tue Jun 13 13:54:53 2006 +0000 @@ -25,7 +25,6 @@ #include //#include // for random seed - #include #include #include @@ -131,23 +130,25 @@ extern QAction* actionSettingsUseFlagGroups; extern QAction* actionSettingsUseHideExport; -extern Q3PopupMenu* branchContextMenu; -extern Q3PopupMenu* branchAddContextMenu; -extern Q3PopupMenu* branchRemoveContextMenu; -extern Q3PopupMenu* branchLinksContextMenu; -extern Q3PopupMenu* branchLinksContextMenuDup; -extern Q3PopupMenu* floatimageContextMenu; -extern Q3PopupMenu* saveImageFormatMenu; -extern Q3PopupMenu* canvasContextMenu; -extern Q3PopupMenu* lastMapsMenu; -extern Q3PopupMenu* importMenu; -extern Q3PopupMenu* exportMenu; -extern Q3PopupMenu* exportImageFormatMenu; +extern QMenu* branchContextMenu; +extern QMenu* branchAddContextMenu; +extern QMenu* branchRemoveContextMenu; +extern QMenu* branchLinksContextMenu; +extern QMenu* branchLinksContextMenuDup; +extern QMenu* floatimageContextMenu; +extern QMenu* saveImageFormatMenu; +extern QMenu* canvasContextMenu; +extern QMenu* fileLastMapsMenu; +extern QMenu* fileImportMenu; +extern QMenu* fileExportMenu; extern Settings settings; extern Options options; +extern ImageIO imageIO; + extern QDir vymBaseDir; +extern QDir lastImageDir; extern QString iconPath; extern QString flagsPath; @@ -234,7 +235,7 @@ setupHelpActions(); // After menu is created, we can enable some actions - actionFilePrint->setEnabled (true); +//FIXME testing actionFilePrint->setEnabled (true); statusBar(); @@ -321,97 +322,130 @@ // File Actions void Main::setupFileActions() { + QMenu *fileMenu = menuBar()->addMenu ( tr ("&File") ); QToolBar *tb = addToolBar( tr ("&File") ); - Q3PopupMenu *menu = new Q3PopupMenu( this ); - menuBar()->insertItem( tr( "&File" ), menu ); - - // Keycodes: /usr/lib64/qt3/include/qnamespace.h QAction *a; a = new QAction(QPixmap( iconPath+"filenew.png"), tr( "&New..." ),this); a->setStatusTip ( tr( "New map","File menu" ) ); a->setShortcut ( Qt::CTRL + Qt::Key_N ); a->addTo( tb ); - a->addTo( menu ); + fileMenu->addAction (a); connect( a, SIGNAL( activated() ), this, SLOT( fileNew() ) ); a = new QAction( QPixmap( iconPath+"fileopen.png"), tr( "&Open..." ),this); a->setStatusTip (tr( "Open","File menu" ) ); a->setShortcut ( Qt::CTRL + Qt::Key_O ); a->addTo( tb ); - a->addTo( menu ); + fileMenu->addAction (a); connect( a, SIGNAL( activated() ), this, SLOT( fileLoad() ) ); - lastMapsMenu = new Q3PopupMenu (this); - - menu->insertItem (tr("Open Recent"),lastMapsMenu ); - menu->insertSeparator(); + fileLastMapsMenu = fileMenu->addMenu (tr("Open Recent")); + fileMenu->addSeparator(); a = new QAction( QPixmap( iconPath+"filesave.png"), tr( "&Save..." ), this); a->setStatusTip ( tr( "Save" )); a->setShortcut (Qt::CTRL + Qt::Key_S ); a->addTo( tb ); - a->addTo( menu ); + fileMenu->addAction (a); connect( a, SIGNAL( activated() ), this, SLOT( fileSave() ) ); actionFileSave=a; a = new QAction( QPixmap(iconPath+"filesaveas.png"), tr( "Save &As..." ), this); a->setStatusTip (tr( "Save &As" ) ); - a->addTo( menu ); + fileMenu->addAction (a); connect( a, SIGNAL( activated() ), this, SLOT( fileSaveAs() ) ); - menu->insertSeparator(); - - importMenu = new Q3PopupMenu (this); - menu->insertItem (tr("Import"),importMenu ); + fileMenu->addSeparator(); + + fileImportMenu = fileMenu->addMenu (tr("Import")); a = new QAction(tr("KDE Bookmarks"), this); a->setStatusTip ( tr( "Import")+" "+tr("KDE Bookmarks" )); - a->addTo (importMenu); + a->addTo (fileImportMenu); connect( a, SIGNAL( activated() ), this, SLOT( fileImportKDEBookmarks() ) ); if (settings.readBoolEntry( "/vym/mainwindow/showTestMenu",false)) { a = new QAction( QPixmap(), tr("Firefox Bookmarks"),this); a->setStatusTip (tr( "Import")+" "+tr("Firefox Bookmarks" ) ); - a->addTo (importMenu); + a->addTo (fileImportMenu); connect( a, SIGNAL( activated() ), this, SLOT( fileImportFirefoxBookmarks() ) ); } a = new QAction("Mind Manager...",this); a->setStatusTip ( tr( "Import")+" Mind Manager" ); - a->addTo (importMenu); + fileImportMenu->addAction (a); connect( a, SIGNAL( activated() ), this, SLOT( fileImportMM() ) ); a = new QAction( tr( "Import Dir"+QString("...") ), this); a->setStatusTip (tr( "Import directory structure (experimental)" ) ); - a->addTo( importMenu); + fileImportMenu->addAction (a); connect( a, SIGNAL( activated() ), this, SLOT( fileImportDir() ) ); - exportMenu = new Q3PopupMenu (this); - menu->insertItem (tr("Export"),exportMenu ); - - menu->insertSeparator(); - + fileExportMenu = fileMenu->addMenu (tr("Export")); + + a = new QAction( tr("Image")+QString("..."), this); + a->setStatusTip( tr( "Export map as image" )); + connect( a, SIGNAL( activated() ), this, SLOT( fileExportImage() ) ); + fileExportMenu->addAction (a); + + a = new QAction( "Open Office"+QString("..."), this); + a->setStatusTip( tr( "Export in Open Document Format used e.g. in Open Office " )); + connect( a, SIGNAL( activated() ), this, SLOT( fileExportOOPresentation() ) ); + fileExportMenu->addAction (a); + + a = new QAction( "Webpage (XHTML)...",this ); + a->setShortcut (Qt::ALT + Qt::Key_X); + a->setStatusTip ( tr( "Export as")+" webpage (XHTML)"); + connect( a, SIGNAL( activated() ), this, SLOT( fileExportXHTML() ) ); + fileExportMenu->addAction (a); + + a = new QAction( "Text (ASCII)...", this); + a->setStatusTip ( tr( "Export as")+" ASCII"+" "+tr("(still experimental)" )); + connect( a, SIGNAL( activated() ), this, SLOT( fileExportASCII() ) ); + fileExportMenu->addAction (a); + + a = new QAction( tr("KDE Bookmarks"), this); + a->setStatusTip( tr( "Export as")+" "+tr("KDE Bookmarks" )); + connect( a, SIGNAL( activated() ), this, SLOT( fileExportKDEBookmarks() ) ); + fileExportMenu->addAction (a); + + a = new QAction( "Taskjuggler...", this ); + a->setStatusTip( tr( "Export as")+" Taskjuggler"+" "+tr("(still experimental)" )); + connect( a, SIGNAL( activated() ), this, SLOT( fileExportTaskjuggler() ) ); + fileExportMenu->addAction (a); + + a = new QAction( "LaTeX...", this); + a->setStatusTip( tr( "Export as")+" LaTeX"+" "+tr("(still experimental)" )); + connect( a, SIGNAL( activated() ), this, SLOT( fileExportLaTeX() ) ); + fileExportMenu->addAction (a); + + a = new QAction( "XML..." , this ); + a->setStatusTip (tr( "Export as")+" XML"); + connect( a, SIGNAL( activated() ), this, SLOT( fileExportXML() ) ); + fileExportMenu->addAction (a); + + fileMenu->addSeparator(); a = new QAction(QPixmap( iconPath+"fileprint.png"), tr( "&Print")+QString("..."), this); a->setStatusTip ( tr( "Print" ) ); a->setShortcut (Qt::CTRL + Qt::Key_P ); a->addTo( tb ); - a->addTo( menu ); + fileMenu->addAction (a); connect( a, SIGNAL( activated() ), this, SLOT( filePrint() ) ); actionFilePrint=a; a = new QAction( QPixmap(iconPath+"fileclose.png"), tr( "&Close Map" ), this); a->setStatusTip (tr( "Close Map" ) ); a->setShortcut (Qt::ALT + Qt::Key_C ); - a->addTo( menu ); + fileMenu->addAction (a); connect( a, SIGNAL( activated() ), this, SLOT( fileCloseMap() ) ); a = new QAction(QPixmap(iconPath+"exit.png"), tr( "E&xit")+" "+__VYM, this); a->setStatusTip ( tr( "Exit")+" "+__VYM ); a->setShortcut (Qt::CTRL + Qt::Key_Q ); - a->addTo( menu ); + fileMenu->addAction (a); connect( a, SIGNAL( activated() ), this, SLOT( fileExitVYM() ) ); } @@ -1435,34 +1469,34 @@ QAction*a; // Context Menu for branch or mapcenter - branchContextMenu =new Q3PopupMenu (this); + branchContextMenu =new QMenu (this); // Submenu "Add" - branchAddContextMenu =new Q3PopupMenu (this); - actionEditPaste->addTo ( branchAddContextMenu ); - actionEditAddBranch->addTo ( branchAddContextMenu ); - actionEditAddBranchHere->addTo ( branchAddContextMenu ); - actionEditAddBranchAbove->addTo ( branchAddContextMenu ); - actionEditAddBranchBelow->addTo ( branchAddContextMenu ); - branchAddContextMenu->insertSeparator(); - actionEditLoadImage->addTo( branchAddContextMenu ); - branchAddContextMenu->insertSeparator(); - actionEditImportAdd->addTo ( branchAddContextMenu ); - actionEditImportReplace->addTo ( branchAddContextMenu ); + branchAddContextMenu =branchContextMenu->addMenu (tr("Add")); + branchAddContextMenu->addAction (actionEditPaste ); + branchAddContextMenu->addAction ( actionEditAddBranch ); + branchAddContextMenu->addAction ( actionEditAddBranchHere ); + branchAddContextMenu->addAction ( actionEditAddBranchAbove); + branchAddContextMenu->addAction ( actionEditAddBranchBelow ); + branchAddContextMenu->addSeparator(); + branchAddContextMenu->addAction ( actionEditLoadImage); + branchAddContextMenu->addSeparator(); + branchAddContextMenu->addAction ( actionEditLoadImage); + branchAddContextMenu->addAction ( actionEditImportAdd ); + branchAddContextMenu->addAction ( actionEditImportReplace ); // Submenu "Remove" - branchRemoveContextMenu =new Q3PopupMenu (this); - actionEditCut->addTo ( branchRemoveContextMenu ); - actionEditDelete->addTo ( branchRemoveContextMenu ); - actionEditRemoveBranchKeepChilds->addTo( branchRemoveContextMenu ); - actionEditRemoveChilds->addTo( branchRemoveContextMenu ); + branchRemoveContextMenu =branchContextMenu->addMenu (tr ("Remove")); + branchRemoveContextMenu->addAction (actionEditCut); + branchRemoveContextMenu->addAction ( actionEditDelete ); + branchRemoveContextMenu->addAction ( actionEditRemoveBranchKeepChilds ); + branchRemoveContextMenu->addAction ( actionEditRemoveChilds ); - branchContextMenu->insertItem (tr("Add"),branchAddContextMenu); - branchContextMenu->insertItem (tr("Remove"),branchRemoveContextMenu); actionEditSaveBranch->addTo( branchContextMenu ); - branchContextMenu->insertSeparator(); +/* + branchContextMenu->addSeparator(); actionEditOpenURL->addTo ( branchContextMenu ); actionEditOpenURLTab->addTo ( branchContextMenu ); actionEditURL->addTo ( branchContextMenu ); @@ -1496,19 +1530,17 @@ branchContextMenu->insertItem (tr("Goto XLink"),branchLinksContextMenu); connect( branchLinksContextMenu, SIGNAL( activated(int) ), this, SLOT( editFollowXLink(int ) ) ); +*/ // Context menu for floatimage - floatimageContextMenu =new Q3PopupMenu (this); - saveImageFormatMenu=new Q3PopupMenu (this); - exportImageFormatMenu=new Q3PopupMenu (this); - -/* FIXME strange error + floatimageContextMenu =new QMenu (this); + saveImageFormatMenu=floatimageContextMenu->addMenu (tr("Save image")); + foreach (QByteArray format, QImageWriter::supportedImageFormats()) { QString text = tr("%1...").arg(QString(format).toUpper()); - saveImageFormatMenu->insertItem( text ); - exportImageFormatMenu->insertItem( text ); + a= new QAction (text,this); + saveImageFormatMenu->addAction ( a ); } -*/ /* FIXME not needed any longer Q3StrList fmt = QImageWriter::supportedImageFormats(); @@ -1518,57 +1550,19 @@ exportImageFormatMenu->insertItem( f ); } */ - connect( saveImageFormatMenu, SIGNAL( activated(int) ), this, SLOT( editSaveImage(int ) ) ); - connect( exportImageFormatMenu, SIGNAL( activated(int) ), this, SLOT( fileExportImage(int ) ) ); - floatimageContextMenu->insertItem( tr("Save image"),saveImageFormatMenu ); +// connect( saveImageFormatMenu, SIGNAL( activated(int) ), this, SLOT( editSaveImage(int ) ) ); +// connect( exportImageFormatMenu, SIGNAL( activated(int) ), this, SLOT( fileExportImage(int ) ) ); - floatimageContextMenu->insertSeparator(); + floatimageContextMenu->addSeparator(); actionEditCopy->addTo( floatimageContextMenu ); actionEditCut->addTo( floatimageContextMenu ); - floatimageContextMenu->insertSeparator(); - actionFormatHideLinkUnselected->addTo( floatimageContextMenu ); - - exportMenu->insertItem ( tr("Export as")+" Image",exportImageFormatMenu); - - a = new QAction( "Open Office"+QString("..."), this); - a->setStatusTip( tr( "Export in Open Document Format used e.g. in Open Office " )); - connect( a, SIGNAL( activated() ), this, SLOT( fileExportOOPresentation() ) ); - a->addTo (exportMenu); - - a = new QAction( "Webpage (XHTML)...",this ); - a->setShortcut (Qt::ALT + Qt::Key_X); - a->setStatusTip ( tr( "Export as")+" webpage (XHTML)"); - connect( a, SIGNAL( activated() ), this, SLOT( fileExportXHTML() ) ); - a->addTo( exportMenu ); - - a = new QAction( "Text (ASCII)...", this); - a->setStatusTip ( tr( "Export as")+" ASCII"+" "+tr("(still experimental)" )); - connect( a, SIGNAL( activated() ), this, SLOT( fileExportASCII() ) ); - a->addTo( exportMenu ); - - a = new QAction( tr("KDE Bookmarks"), this); - a->setStatusTip( tr( "Export as")+" "+tr("KDE Bookmarks" )); - connect( a, SIGNAL( activated() ), this, SLOT( fileExportKDEBookmarks() ) ); - a->addTo (exportMenu); - - a = new QAction( "Taskjuggler...", this ); - a->setStatusTip( tr( "Export as")+" Taskjuggler"+" "+tr("(still experimental)" )); - connect( a, SIGNAL( activated() ), this, SLOT( fileExportTaskjuggler() ) ); - a->addTo( exportMenu ); - - a = new QAction( "LaTeX...", this); - a->setStatusTip( tr( "Export as")+" LaTeX"+" "+tr("(still experimental)" )); - connect( a, SIGNAL( activated() ), this, SLOT( fileExportLaTeX() ) ); - a->addTo( exportMenu ); - - a = new QAction( "XML..." , this ); - a->setStatusTip (tr( "Export as")+" XML"); - connect( a, SIGNAL( activated() ), this, SLOT( fileExportXML() ) ); - a->addTo( exportMenu ); + floatimageContextMenu->addSeparator(); + floatimageContextMenu->addAction ( actionFormatHideLinkUnselected ); + // Context menu for canvas - canvasContextMenu =new Q3PopupMenu (this); + canvasContextMenu =new QMenu (this); actionEditMapInfo->addTo( canvasContextMenu ); canvasContextMenu->insertSeparator(); actionGroupFormatLinkStyles->addTo( canvasContextMenu ); @@ -1588,7 +1582,7 @@ lastMaps.append(s); } setupLastMapsMenu(); - connect( lastMapsMenu, SIGNAL( activated(int) ), this, SLOT( fileLoadLast(int ) ) ); +// connect( lastMapsMenu, SIGNAL( activated(int) ), this, SLOT( fileLoadLast(int ) ) ); } void Main::setupLastMapsMenu() @@ -1614,9 +1608,11 @@ while ((int)(lastMaps.count()) > maxLastMaps) lastMaps.pop_back(); // build Menu from lastMaps string list - lastMapsMenu->clear(); + fileLastMapsMenu->clear(); + /* FIXME add actions instead of strings in QT4 for (it = lastMaps.begin(); it != lastMaps.end(); ++it ) - lastMapsMenu->insertItem (*it ); + fileLastMapsMenu->addAction (*it ); + */ } @@ -1960,7 +1956,7 @@ void Main::fileLoadLast(int i) { - fileLoad(QString(*lastMaps.at(lastMapsMenu->indexOf (i)) ),NewMap); + fileLoad(QString(*lastMaps.at(fileLastMapsMenu->indexOf (i)) ),NewMap); } void Main::fileSave(const SaveMode &savemode) @@ -2263,18 +2259,23 @@ } } -void Main::fileExportImage(int item) +void Main::fileExportImage() { MapEditor *me=currentMapEditor(); if (me) { - QString fn = Q3FileDialog::getSaveFileName( QString::null, "Image (*.bmp *.jpg *.pbm *.pgm *.png *.ppm *xbm *.xpm)", - this ); - if ( !fn.isEmpty() ) - me->exportImage(fn,item); - else - statusBar()->message( tr("Couldn't save %1").arg(fn), statusbarTime ); - + QStringList fl; + QFileDialog *fd=new QFileDialog (this); + fd->setCaption (tr("Export map as image")); + fd->setFileMode(QFileDialog::AnyFile); + fd->setFilters (imageIO.getFilters() ); + fd->setDirectory (lastImageDir); + if (fd->exec()) + { + fl=fd->selectedFiles(); + qWarning ("Selected "+fl.first()+" filter: "+fd->selectedFilter()); + me->exportImage (fl.first(), imageIO.getType (fd->selectedFilter() ) ); + } } }