diff -r 7a71a914afdb -r 6d2b32f305f9 treeitem.cpp --- a/treeitem.cpp Thu May 07 08:48:53 2009 +0000 +++ b/treeitem.cpp Wed May 13 08:26:27 2009 +0000 @@ -278,20 +278,72 @@ return headingColor; } -void TreeItem::setNote(const QString s) +void TreeItem::setURL (const QString &u) { - note.setNote(s); - // updateNoteFlag(); FIXME-2 needed? - if (model) - model->emitNoteHasChanged (this); + url=u; + if (!url.isEmpty()) + systemFlags.activate ("system-url"); + else + systemFlags.deactivate ("system-url"); +} + +QString TreeItem::getURL () +{ + return url; +} + +void TreeItem::setVymLink (const QString &vl) +{ + if (!vl.isEmpty()) + { + // We need the relative (from loading) + // or absolute path (from User event) + // and build the absolute path. + // Note: If we have relative, use path of + // current map to build absolute path + QDir d(vl); + if (!d.path().startsWith ("/")) + { + QString p=model->getDestPath(); + int i=p.findRev("/",-1); + d.setPath(p.left(i)+"/"+vl); + d.convertToAbs(); + } + vymLink=d.path(); + systemFlags.activate("system-vymLink"); + } + else + { + systemFlags.deactivate("system-vymLink"); + vymLink.clear(); + } +} + +QString TreeItem::getVymLink () +{ + return vymLink; +} + +void TreeItem::setNote(const QString &s) +{ + NoteObj n; + n.setNote(s); + setNoteObj (n,false); +} + +void TreeItem::clearNote() +{ + note.clear(); + systemFlags.deactivate ("system-note"); } void TreeItem::setNoteObj(const NoteObj &n, bool updateNoteEditor) { note=n; - // updateNoteFlag(); FIXME-2 needed? - if (model && updateNoteEditor) - model->emitNoteHasChanged (this); + if (!note.isEmpty() && !systemFlags.isActive ("system-note")) + systemFlags.activate ("system-note"); + if (note.isEmpty() && systemFlags.isActive ("system-note")) + systemFlags.deactivate ("system-note"); } QString TreeItem::getNote() @@ -321,28 +373,26 @@ void TreeItem::activateStandardFlag (const QString &name) { - cout << "TI::activateStandardFlag "<activateStandardFlag (name); + model->emitDataHasChanged(this); } void TreeItem::deactivateStandardFlag (const QString &name) { - cout << "TI::deactivateStandardFlag "<deactivateStandardFlag (name); + model->emitDataHasChanged(this); } -void TreeItem::toggleStandardFlag(const QString &name) +void TreeItem::deactivateAllStandardFlags () { - cout << "TI::toggleStandardFlag "<emitDataHasChanged(this); +} + +void TreeItem::toggleStandardFlag(const QString &name, FlagRow *master) +{ + standardFlags.toggle (name,master); + model->emitDataHasChanged(this); } bool TreeItem::isActiveStandardFlag (const QString &name) @@ -350,6 +400,52 @@ return standardFlags.isActive (name); } +QStringList TreeItem::activeStandardFlagNames () +{ + return standardFlags.activeFlagNames(); +} + +QStringList TreeItem::activeSystemFlagNames () //FIXME-1 missing: scrolled-tmp,hideInExport +{ + return systemFlags.activeFlagNames(); +} + +bool TreeItem::canMoveDown() +{ + switch (type) + { + case Undefined: return false; + case MapCenter: + case Branch: + if (!parentItem) return false; + if (parentItem->num (this) < parentItem->branchCount()-1) + return true; + else + return false; + break; + case Image: return false; + default: return false; + } +} + +bool TreeItem::canMoveUp() +{ + switch (type) + { + case Undefined: return false; + case MapCenter: + case Branch: + if (!parentItem) return false; + if (parentItem->num (this) > 0) + return true; + else + return false; + break; + case Image: return false; + default: return false; + } +} + void TreeItem::setID (const QString &s) { objID=s;