diff -r 0b048b6bb6f4 -r 58adc2d2ed08 mapeditor.cpp --- a/mapeditor.cpp Thu Apr 21 19:14:38 2005 +0000 +++ b/mapeditor.cpp Wed May 04 20:35:39 2005 +0000 @@ -61,6 +61,8 @@ extern FlagRowObj *standardFlagsDefault; extern MapEditor *clipboardME; +extern QPtrList actionListBranches; + extern QAction *actionFileSave; extern QAction *actionEditUndo; extern QAction *actionEditCopy; @@ -81,6 +83,8 @@ extern QAction *actionEditAddBranch; extern QAction *actionEditAddBranchAbove; extern QAction *actionEditAddBranchBelow; +extern QAction *actionEditRemoveBranchHere; +extern QAction *actionEditRemoveChilds; extern QAction *actionEditImportAdd; extern QAction *actionEditImportReplace; extern QAction *actionEditSaveBranch; @@ -1343,7 +1347,6 @@ } } - void MapEditor::addNewBranch(int pos) { // Finish open lineEdits @@ -1410,6 +1413,57 @@ } } + +void MapEditor::addNewBranchHere() +{ + // Finish open lineEdits + if (lineedit) finishedLineEditNoSave(); + + if (selection && + (typeid(*selection) == typeid(BranchObj) ) ) + { + setChanged(); + saveState(PartOfMap,selection); + + BranchObj* bo1 = (BranchObj*) (selection); + bool wasScrolled=false; + BranchObj *newbo=NULL; + BranchObj *parbo=(BranchObj*)(selection->getParObj()); + if (parbo) + { + // add below selection + newbo=parbo->insertBranch(bo1->getNum()+1); + } + + LinkableMapObj *oldselection=selection; + ((BranchObj*)(selection))->moveBranchTo (newbo,-1); + + mapCenter->reposition(); + adjustCanvasSize(); + if (actionSettingsAutoedit->isOn() || + actionSettingsAutoselectHeading->isOn() ) + { + selection->unselect(); + selection=newbo; + selection->select(); + if (actionSettingsPasteNewHeading->isOn() ) + { + BranchObj *bo2= (BranchObj*)(selection); + bo2->setHeading(""); + } + if (actionSettingsAutoedit->isOn() ) + editHeading(); + if (!actionSettingsAutoselectHeading->isOn() + && !wasScrolled) + { + selection->unselect(); + selection=oldselection; + selection->select(); + } + } + } +} + void MapEditor::deleteSelection() { // Finish open lineEdits @@ -1459,7 +1513,7 @@ // Finally select the found object if (lmo) { - if (selection) selection->unselect(); + if (selection) unselect(); selection=lmo; selection->select(); adjustCanvasSize(); @@ -2127,6 +2181,33 @@ } +void MapEditor::removeBranchHere() +{ + if (selection && (typeid(*selection) == typeid(BranchObj) )) + { + setChanged(); + saveState(PartOfMap,selection->getParObj()); + QString sel=selection->getSelectString(); + BranchObj* bo=(BranchObj*)(selection); + BranchObj* par=(BranchObj*)(bo->getParObj()); + unselect(); + par->removeBranchHere(bo); + mapCenter->reposition(); + select (sel); + } +} + +void MapEditor::removeChilds() +{ + if (selection && (typeid(*selection) == typeid(BranchObj) )) + { + setChanged(); + saveState(PartOfMap,selection->getParObj()); + ((BranchObj*)(selection))->removeChilds(); + mapCenter->reposition(); + } +} + void MapEditor::editMapInfo() { ExtraInfoDialog dia; @@ -2170,6 +2251,7 @@ void MapEditor::updateActions() { + QAction *a; if (getLinkColorHint()==HeadingColor) actionFormatLinkColorHint->setOn(true); else @@ -2242,9 +2324,6 @@ actionEditOpenURL->setEnabled (false); else actionEditOpenURL->setEnabled (true); - actionEditURL->setEnabled (true); - actionEditHeading2URL->setEnabled (true); - actionEditBugzilla2URL->setEnabled (true); if ( bo->getVymLink().isEmpty() ) { @@ -2255,28 +2334,14 @@ actionEditOpenVymLink->setEnabled (true); actionEditDeleteVymLink->setEnabled (true); } - actionEditVymLink->setEnabled (true); actionEditCopy->setEnabled (true); actionEditCut->setEnabled (true); actionEditPaste->setEnabled (true); - actionEditMoveUp->setEnabled (true); - actionEditMoveDown->setEnabled (true); - actionEditToggleScroll->setEnabled (true); - actionEditHeading->setEnabled (true); + for (a=actionListBranches.first();a;a=actionListBranches.next()) + a->setEnabled(true); actionEditDelete->setEnabled (true); - actionEditAddBranch->setEnabled (true); - actionEditAddBranchAbove->setEnabled (true); - actionEditAddBranchBelow->setEnabled (true); - actionEditImportAdd->setEnabled (true); - actionEditImportReplace->setEnabled (true); - actionEditSaveBranch->setEnabled (true); - actionEditSelectFirst->setEnabled (true); - actionEditSelectLast->setEnabled (true); actionEditToggleFloatExport->setEnabled (false); - actionFormatPickColor->setEnabled (true); - actionFormatColorBranch->setEnabled (true); - actionFormatColorSubtree->setEnabled (true); switch (selection->getFrameType()) { case NoFrame: @@ -2294,34 +2359,17 @@ standardFlagsDefault->setEnabled (false); actionEditOpenURL->setEnabled (false); - actionEditURL->setEnabled (false); - actionEditHeading2URL->setEnabled (false); - actionEditBugzilla2URL->setEnabled (false); actionEditOpenVymLink->setEnabled (false); - actionEditVymLink->setEnabled (false); actionEditDeleteVymLink->setEnabled (false); actionEditCopy->setEnabled (true); actionEditCut->setEnabled (true); actionEditPaste->setEnabled (false); //FIXME - actionEditMoveUp->setEnabled (false); - actionEditMoveDown->setEnabled (false); - actionEditToggleScroll->setEnabled (false); - actionEditHeading->setEnabled (false); + for (a=actionListBranches.first();a;a=actionListBranches.next()) + a->setEnabled(false); actionEditDelete->setEnabled (true); - actionEditAddBranch->setEnabled (false); - actionEditAddBranchAbove->setEnabled (false); - actionEditAddBranchBelow->setEnabled (false); - actionEditImportAdd->setEnabled (false); - actionEditSaveBranch->setEnabled (false); - actionEditImportReplace->setEnabled (false); - actionEditSelectFirst->setEnabled (false); - actionEditSelectLast->setEnabled (false); actionEditToggleFloatExport->setOn ( ((FloatImageObj*)(selection))->getFloatExport() ); - actionFormatPickColor->setEnabled (false); - actionFormatColorBranch->setEnabled (false); - actionFormatColorSubtree->setEnabled (false); } } else @@ -2331,29 +2379,15 @@ actionEditCopy->setEnabled (false); actionEditCut->setEnabled (false); actionEditPaste->setEnabled (false); - actionEditMoveUp->setEnabled (false); - actionEditMoveDown->setEnabled (false); - actionEditToggleScroll->setEnabled (false); + for (a=actionListBranches.first();a;a=actionListBranches.next()) + a->setEnabled(false); + actionEditOpenURL->setEnabled (false); - actionEditURL->setEnabled (false); actionEditOpenVymLink->setEnabled (false); - actionEditVymLink->setEnabled (false); actionEditDeleteVymLink->setEnabled (false); actionEditHeading2URL->setEnabled (false); - actionEditBugzilla2URL->setEnabled (false); - actionEditHeading->setEnabled (false); actionEditDelete->setEnabled (false); - actionEditAddBranch->setEnabled (false); - actionEditAddBranchAbove->setEnabled (false); - actionEditAddBranchBelow->setEnabled (false); - actionEditSaveBranch->setEnabled (false); - actionEditImportReplace->setEnabled (false); - actionEditSelectFirst->setEnabled (false); - actionEditSelectLast->setEnabled (false); actionEditToggleFloatExport->setEnabled (false); - actionFormatPickColor->setEnabled (false); - actionFormatColorBranch->setEnabled (false); - actionFormatColorSubtree->setEnabled (false); } } @@ -2716,20 +2750,20 @@ void MapEditor::testFunction() { cout << "MapEditor::testFunction() called\n"; - //cout <<((BranchObj*)(selection))->getSelectString()< (selection); - QPoint p; - if (selection->getOrientation() == OrientLeftOfCenter) - p= worldMatrix().map(QPoint (lmo->x(),lmo->y())); - else - p= worldMatrix().map(QPoint (lmo->x()+lmo->width(),lmo->y()+lmo->height())); - ensureVisible (p.x(), p.y() ); + if (selection) + { + LinkableMapObj* lmo= dynamic_cast (selection); + QPoint p; + if (selection->getOrientation() == OrientLeftOfCenter) + p= worldMatrix().map(QPoint (lmo->x(),lmo->y())); + else + p= worldMatrix().map(QPoint (lmo->x()+lmo->width(),lmo->y()+lmo->height())); + ensureVisible (p.x(), p.y() ); + } }