diff -r 7a71a914afdb -r 6d2b32f305f9 vymmodel.cpp --- a/vymmodel.cpp Thu May 07 08:48:53 2009 +0000 +++ b/vymmodel.cpp Wed May 13 08:26:27 2009 +0000 @@ -44,8 +44,6 @@ extern QDir lastImageDir; extern QDir lastFileDir; -extern FlagRowObj *standardFlagsDefault; - extern Settings settings; @@ -234,7 +232,7 @@ xml.incIndent(); // Find the used flags while traversing the tree // FIXME-2 this can be done local to vymmodel maybe... - standardFlagsDefault->resetUsedCounter(); + //FIXME-2 not used any longer: standardFlagsDefault->resetUsedCounter(); // Reset the counters before saving // TODO constr. of FIO creates lots of objects, better do this in some other way... @@ -267,8 +265,7 @@ xml.decIndent(); s+=xml.endElement("vymmap"); - if (writeflags) - standardFlagsDefault->saveToDir (tmpdir+"/flags/","",writeflags); + // FIXME-2 if (writeflags) standardFlagsDefault->saveToDir (tmpdir+"/flags/","",writeflags); return s; } @@ -1514,14 +1511,11 @@ "setHeading (\""+s+"\")", QString("Set heading of %1 to \"%2\"").arg(getObjectName(selbi)).arg(s) ); selbi->setHeading(s ); - QModelIndex ix2=index (selbi); - emit (dataChanged ( ix2,ix2)); - /* FIXME-3 testing only - */ + emitDataHasChanged ( selbi); //FIXME-3 maybe emit signal from TreeItem? reposition(); // selection.update(); //FIXME-4 - emitShowSelection(); + updateSelection(); } } @@ -1597,38 +1591,33 @@ // which is (still) needed to create MapCenters } -void VymModel::setURL(const QString &url) //FIXME-2 -{ -/* - BranchObj *bo=getSelectedBranch(); - if (bo) +void VymModel::setURL(const QString &url) +{ + TreeItem *selti=getSelectedItem(); + if (selti) { - QString oldurl=bo->getURL(); - bo->setURL (url); + QString oldurl=selti->getURL(); + selti->setURL (url); saveState ( - bo, + selti, QString ("setURL (\"%1\")").arg(oldurl), - bo, + selti, QString ("setURL (\"%1\")").arg(url), - QString ("set URL of %1 to %2").arg(getObjectName(bo)).arg(url) + QString ("set URL of %1 to %2").arg(getObjectName(selti)).arg(url) ); - updateActions(); reposition(); - selection.update(); + emitDataHasChanged (selti); emitShowSelection(); } -*/ } -QString VymModel::getURL() //FIXME-2 -{ -/* - BranchObj *bo=getSelectedBranch(); - if (bo) - return bo->getURL(); - else - return ""; -*/ +QString VymModel::getURL() +{ + TreeItem *selti=getSelectedItem(); + if (selti) + return selti->getURL(); + else + return QString(); } QStringList VymModel::getURLs() // FIXME-1 first, next moved to vymmodel @@ -1864,20 +1853,19 @@ } -void VymModel::copy() //FIXME-2 -{ -/* - LinkableMapObj *sel=getSelectedLMO(); - if (sel && - (selectionType() == TreeItem::Branch || - selectionType() == TreeItem::MapCenter || - selectionType() == TreeItem::Image )) +void VymModel::copy() +{ + TreeItem *selti=getSelectedItem(); + if (selti && + (selti->getType() == TreeItem::Branch || + selti->getType() == TreeItem::MapCenter || + selti->getType() == TreeItem::Image )) { if (redosAvail == 0) { // Copy to history - QString s=getSelectString(sel); - saveState (PartOfMap, s, "nop ()", s, "copy ()","Copy selection to clipboard",sel ); + QString s=getSelectString(selti); + saveState (PartOfMap, s, "nop ()", s, "copy ()","Copy selection to clipboard",selti ); curClipboard=curStep; } @@ -1889,13 +1877,11 @@ clipboardEmpty=false; updateActions(); } -*/ } -void VymModel::pasteNoSave(const int &n) //FIXME-2 -{ -/* +void VymModel::pasteNoSave(const int &n) +{ bool old=blockSaveState; blockSaveState=true; bool zippedOrg=zipped; @@ -1910,87 +1896,59 @@ load (clipboardDir+"/"+clipboardFile,ImportAdd, VymMap); zipped=zippedOrg; blockSaveState=old; -*/ } -void VymModel::paste() //FIXME-2 +void VymModel::paste() { -/* - BranchObj *sel=getSelectedBranch(); - if (sel) + BranchItem *selbi=getSelectedBranchItem(); + if (selbi) { saveStateChangingPart( - sel, - sel, + selbi, + selbi, QString ("paste (%1)").arg(curClipboard), - QString("Paste to %1").arg( getObjectName(sel)) + QString("Paste to %1").arg( getObjectName(selbi)) ); pasteNoSave(0); reposition(); } -*/ } -void VymModel::cut() //FIXME-2 -{ -/* - LinkableMapObj *sel=getSelectedLMO(); - if ( sel && (selectionType() == TreeItem::Branch || - selectionType()==TreeItem::MapCenter || - selectionType()==TreeItem::Image)) +void VymModel::cut() +{ + TreeItem *selti=getSelectedItem(); + if ( selti && (selti->isBranchLikeType() ||selti->getType()==TreeItem::Image)) { -*/ - /* No savestate! savestate is called in cutNoSave - saveStateChangingPart( - sel->getParObj(), - sel, - "cut ()", - QString("Cut %1").arg(getObjectName(sel )) - ); - */ -/* copy(); deleteSelection(); reposition(); } -*/} - -void VymModel::moveBranchUp() //FIXME-2 -{ -/* - BranchObj* bo=getSelectedBranch(); - BranchObj* par; - if (bo) +} + +void VymModel::moveUp() +{ + BranchItem *selbi=getSelectedBranchItem(); + if (selbi) { - if (!bo->canMoveBranchUp()) return; - par=(BranchObj*)(bo->getParObj()); - BranchObj *obo=par->moveBranchUp (bo); // bo will be the one below selection - saveState (getSelectString(bo),"moveBranchDown ()",getSelectString(obo),"moveBranchUp ()",QString("Move up %1").arg(getObjectName(bo))); - reposition(); - //FIXME-3 VM needed? scene()->update(); - selection.update(); - emitShowSelection(); + if (!selbi->canMoveUp()) return; + QString oldsel=getSelectString(); + if (relinkBranch (selbi,(BranchItem*)selbi->parent(),selbi->num()-1) ) + + saveState (getSelectString(),"moveDown ()",oldsel,"moveUp ()",QString("Move up %1").arg(getObjectName(selbi))); } - */ } -void VymModel::moveBranchDown() //FIXME-2 -{ -/* - BranchObj* bo=getSelectedBranch(); - BranchObj* par; - if (bo) +void VymModel::moveDown() +{ + BranchItem *selbi=getSelectedBranchItem(); + if (selbi) { - if (!bo->canMoveBranchDown()) return; - par=(BranchObj*)(bo->getParObj()); - BranchObj *obo=par->moveBranchDown(bo); // bo will be the one above selection - saveState(getSelectString(bo),"moveBranchUp ()",getSelectString(obo),"moveBranchDown ()",QString("Move down %1").arg(getObjectName(bo))); - reposition(); - //FIXME-3 VM needed? scene()->update(); - selection.update(); - emitShowSelection(); - } -*/ + if (!selbi->canMoveDown()) return; + QString oldsel=getSelectString(); + if ( relinkBranch (selbi,(BranchItem*)selbi->parent(),selbi->num()+1) ) + + saveState (getSelectString(),"moveUp ()",oldsel,"moveDown ()",QString("Move down %1").arg(getObjectName(selbi))); + } } void VymModel::sortChildren() // FIXME-2 not implemented yet @@ -2084,7 +2042,6 @@ rootItem->appendChild (mci); endInsertRows(); - emit (newChildObject (parix)); emit (layoutChanged() ); // Create MapObj @@ -2162,7 +2119,6 @@ parbi->insertBranch(n,newbi); endInsertRows (); } - emit (newChildObject (parix)); emit (layoutChanged() ); // save scroll state. If scrolled, automatically select @@ -2251,10 +2207,11 @@ return NULL; } -BranchItem* VymModel::relinkBranch (BranchItem *branch, BranchItem *dst, int pos) +bool VymModel::relinkBranch (BranchItem *branch, BranchItem *dst, int pos) { if (branch && dst) { + cout << "VM::relinkBranch "<getHeadingStd()<<" to "<getHeadingStd()<<" at "<parent(); // Remove at current position @@ -2276,8 +2233,11 @@ branch->getLMO()->setParObj(dst->getLMO()); //FIXME-5 update parObj in View emit (layoutChanged() ); + reposition(); // both for moveUp/Down and relinking select (branch); + return true; } + return false; } void VymModel::deleteSelection() @@ -2393,21 +2353,23 @@ if (bi->isScrolled()) return false; if (bi->branchCount()==0) return false; if (bi->depth()==0) return false; - QString u,r; - r="scroll"; - u="unscroll"; - /* FIXME-3 no savestate yet - saveState( - bo, - QString ("%1 ()").arg(u), - bo, - QString ("%1 ()").arg(r), - QString ("%1 %2").arg(r).arg(getObjectName(bo)) - ); - */ - bi->toggleScroll(); - mapScene->update(); //Needed for _quick_ update - return true; + if (bi->toggleScroll()) + { + QString u,r; + r="scroll"; + u="unscroll"; + saveState( + bi, + QString ("%1 ()").arg(u), + bi, + QString ("%1 ()").arg(r), + QString ("%1 %2").arg(r).arg(getObjectName(bi)) + ); + emitDataHasChanged(bi); + updateSelection(); + mapScene->update(); //Needed for _quick_ update, even in 1.13.x //FIXME-3 force update via signal... + return true; + } } return false; } @@ -2423,32 +2385,34 @@ QString u,r; u="scroll"; r="unscroll"; - /* FIXME-3 no savestate yet saveState( - bo, + bi, QString ("%1 ()").arg(u), - bo, + bi, QString ("%1 ()").arg(r), - QString ("%1 %2").arg(r).arg(getObjectName(bo)) + QString ("%1 %2").arg(r).arg(getObjectName(bi)) ); - */ bi->toggleScroll(); - mapScene->update(); // Needed for _quick_ update + emitDataHasChanged(bi); + updateSelection(); + + mapScene->update(); //Needed for _quick_ update, even in 1.13.x //FIXME-3 force update via signal... return true; } return false; } -void VymModel::toggleScroll() +void VymModel::toggleScroll() { BranchItem *bi=(BranchItem*)getSelectedBranchItem(); - if (bi && bi->getType()==TreeItem::Branch ) + if (bi && bi->isBranchLikeType() ) { if (bi->isScrolled()) unscrollBranch (bi); else scrollBranch (bi); } + // saveState is called in above functions } void VymModel::unscrollChildren() // FIXME-2 first, next moved to vymmodel @@ -2473,9 +2437,8 @@ emit (expandAll() ); } -void VymModel::toggleStandardFlag (const QString &name) -{ - cout << "VM::toggleStandardFlag "<toggleStandardFlag (name); //FIXME-0,mainWindow->useFlagGroups()); - //FIXME-0 model->updateSelection(); // geometry has changed + bi->toggleStandardFlag (name, master); + reposition(); + updateSelection(); } } @@ -2568,28 +2532,25 @@ -void VymModel::editURL() //FIXME-2 -{ -/* - BranchObj *bo=getSelectedBranch(); - if (bo) +void VymModel::editURL() +{ + TreeItem *selti=getSelectedItem(); + if (selti) { bool ok; QString text = QInputDialog::getText( "VYM", tr("Enter URL:"), QLineEdit::Normal, - bo->getURL(), &ok, NULL); + selti->getURL(), &ok, NULL); if ( ok) // user entered something and pressed OK setURL(text); } -*/ } -void VymModel::editLocalURL() //FIXME-2 -{ -/* - BranchObj *bo=getSelectedBranch(); - if (bo) +void VymModel::editLocalURL() +{ + TreeItem *selti=getSelectedItem(); + if (selti) { QStringList filters; filters <<"All files (*)"; @@ -2601,8 +2562,8 @@ fd->setFilters (filters); fd->setCaption(vymName+" - " +tr("Set URL to a local file")); fd->setDirectory (lastFileDir); - if (! bo->getVymLink().isEmpty() ) - fd->selectFile( bo->getURL() ); + if (! selti->getVymLink().isEmpty() ) + fd->selectFile( selti->getURL() ); fd->show(); if ( fd->exec() == QDialog::Accepted ) @@ -2611,49 +2572,42 @@ setURL (fd->selectedFile() ); } } - */ } -void VymModel::editHeading2URL() //FIXME-2 -{ -/* - BranchObj *bo=getSelectedBranch(); - if (bo) - setURL (bo->getHeading()); -*/ +void VymModel::editHeading2URL() +{ + TreeItem *selti=getSelectedItem(); + if (selti) + setURL (selti->getHeading()); } -void VymModel::editBugzilla2URL() //FIXME-2 -{ -/* - BranchObj *bo=getSelectedBranch(); - if (bo) +void VymModel::editBugzilla2URL() +{ + TreeItem *selti=getSelectedItem(); + if (selti) { - QString url= "https://bugzilla.novell.com/show_bug.cgi?id="+bo->getHeading(); + QString url= "https://bugzilla.novell.com/show_bug.cgi?id="+selti->getHeading(); setURL (url); } -*/ } -void VymModel::editFATE2URL() //FIXME-2 -{ -/* - BranchObj *bo=getSelectedBranch(); - if (bo) +void VymModel::editFATE2URL() +{ + TreeItem *selti=getSelectedItem(); + if (selti) { - QString url= "http://keeper.suse.de:8080/webfate/match/id?value=ID"+bo->getHeading(); + QString url= "http://keeper.suse.de:8080/webfate/match/id?value=ID"+selti->getHeading(); saveState( - bo, - "setURL (\""+bo->getURL()+"\")", - bo, + selti, + "setURL (\""+selti->getURL()+"\")", + selti, "setURL (\""+url+"\")", - QString("Use heading of %1 as link to FATE").arg(getObjectName(bo)) + QString("Use heading of %1 as link to FATE").arg(getObjectName(selti)) ); - bo->setURL (url); - updateActions(); + selti->setURL (url); + // FIXME-4 updateActions(); } -*/ } void VymModel::editVymLink() @@ -2693,7 +2647,7 @@ BranchItem *bi=getSelectedBranchItem(); if (bi) { - bi->getBranchObj()->setVymLink(s); //FIXME-3 check getBO + bi->setVymLink(s); reposition(); updateActions(); //selection.update(); @@ -2708,16 +2662,14 @@ { saveState( bi, - "setVymLink (\""+bi->getBranchObj()->getVymLink()+"\")", //FIXME-3 check getBO - + "setVymLink (\""+bi->getVymLink()+"\")", bi, "setVymLink (\"\")", QString("Unset vymlink of %1").arg(getObjectName(bi)) ); - bi->getBranchObj()->setVymLink ("" ); //FIXME-3 check getBO + bi->setVymLink ("" ); updateActions(); reposition(); - // FIXME-3 VM needed? scene()->update(); } } @@ -2725,7 +2677,7 @@ { BranchItem *bi=getSelectedBranchItem(); if (bi) - return bi->getBranchObj()->getVymLink(); //FIXME-3 check getBO here... + return bi->getVymLink(); else return ""; @@ -2907,7 +2859,7 @@ } } ///////////////////////////////////////////////////////////////////// - } else /*if (com=="clearFlags") // FIXME-2 + } else if (com=="clearFlags") { if (!selti ) { @@ -2917,11 +2869,10 @@ parser.setError (Aborted,"Type of selection is not a branch"); } else if (parser.checkParCount(0)) { - selb->clearStandardFlags(); - selb->updateFlagsToolbar(); + selbi->deactivateAllStandardFlags(); } ///////////////////////////////////////////////////////////////////// - } else */ if (com=="colorBranch") + } else if (com=="colorBranch") { if (!selti) { @@ -3172,7 +3123,7 @@ if (ok) loadFloatImageInt (s); } ///////////////////////////////////////////////////////////////////// - } else if (com=="moveBranchUp") + } else if (com=="moveUp") { if (!selti ) { @@ -3182,10 +3133,10 @@ parser.setError (Aborted,"Type of selection is not a branch"); } else if (parser.checkParCount(0)) { - moveBranchUp(); + moveUp(); } ///////////////////////////////////////////////////////////////////// - } else if (com=="moveBranchDown") + } else if (com=="moveDown") { if (!selti ) { @@ -3195,7 +3146,7 @@ parser.setError (Aborted,"Type of selection is not a branch"); } else if (parser.checkParCount(0)) { - moveBranchDown(); + moveDown(); } ///////////////////////////////////////////////////////////////////// } else if (com=="move") @@ -3624,7 +3575,7 @@ } } ///////////////////////////////////////////////////////////////////// - else /* FIXME-2 if (com=="setFlag") + else if (com=="setFlag") { if (!selti ) { @@ -3636,13 +3587,10 @@ { s=parser.parString(ok,0); if (ok) - { - selb->activateStandardFlag(s); - selb->updateFlagsToolbar(); - } + selbi->activateStandardFlag(s); } ///////////////////////////////////////////////////////////////////// - } else */ /* FIXME-2 if (com=="setFrameType") + } else /* FIXME-2 if (com=="setFrameType") { if (!selti ) { @@ -3670,7 +3618,7 @@ sortChildren(); } ///////////////////////////////////////////////////////////////////// - } else /* FIXME-2 if (com=="toggleFlag") + } else if (com=="toggleFlag") { if (!selti ) { @@ -3682,13 +3630,10 @@ { s=parser.parString(ok,0); if (ok) - { selbi->toggleStandardFlag(s); - selb->updateFlagsToolbar(); - } } ///////////////////////////////////////////////////////////////////// - } else */ if (com=="unscroll") + } else if (com=="unscroll") { if (!selti) { @@ -3715,9 +3660,9 @@ unscrollChildren (); } ///////////////////////////////////////////////////////////////////// - } else /* FIXME-2 if (com=="unsetFlag") + } else if (com=="unsetFlag") { - if (selection.isEmpty() ) + if (!selti) { parser.setError (Aborted,"Nothing selected"); } else if (! selbi ) @@ -3727,12 +3672,9 @@ { s=parser.parString(ok,0); if (ok) - { - selb->deactivateStandardFlag(s); - selb->updateFlagsToolbar(); - } + selbi->deactivateStandardFlag(s); } - } else */ + } else parser.setError (Aborted,"Unknown command"); // Any errors? @@ -3946,18 +3888,20 @@ void VymModel::updateNoteFlag() { setChanged(); - cout << "VM::updateNoteFlag()\n"; - /* FIXME-1 modify note flag - BranchObj *bo=getSelectedBranch(); - if (bo) + TreeItem *selti=getSelectedItem(); + if (selti) { - bo->updateNoteFlag(); - mainWindow->updateActions(); - } - */ + if (textEditor->isEmpty()) + selti->clearNote(); + else + selti->setNote (textEditor->getText()); + emitDataHasChanged(selti); + updateSelection(); + + } } -void VymModel::updateRelPositions() //FIXME-2 VM should have no need to updateRelPos +void VymModel::updateRelPositions() //FIXME-3 VM should have no need to updateRelPos { //cout << "VM::updateRelPos...\n"; for (int i=0; ibranchCount(); i++) @@ -4694,7 +4638,7 @@ void VymModel::emitDataHasChanged (TreeItem *ti) { QModelIndex ix=index(ti); - emit (dataHasChanged (ix) ); + emit (dataChanged (ix,ix) ); }