void ClassDiagramView::save(QTextStream & st, QString & warning, bool copy) const { DiagramItemList items(canvas()->allItems()); DiagramItem * di; if (!copy) // sort is useless for a copy items.sort(); st << "format " << FILEFORMAT << "\n"; // save first the classes packages fragment notes and icons for (di = items.first(); di != 0; di = items.next()) { switch (di->type()) { case UmlClass: case UmlNote: case UmlText: case UmlImage: case UmlPackage: case UmlFragment: case UmlIcon: if (!copy || di->copyable()) di->save(st, FALSE, warning); // no break default: break; } } // then saves relations for (di = items.first(); di != 0; di = items.next()) { if (!copy || di->copyable()) { UmlCode k = di->type(); if (IsaRelation(k) || IsaSimpleRelation(k) || (k == UmlInner)) di->save(st, FALSE, warning); } } // then saves anchors for (di = items.first(); di != 0; di = items.next()) if ((!copy || di->copyable()) && (di->type() == UmlAnchor)) di->save(st, FALSE, warning); if (!copy && (preferred_zoom != 0)) { nl_indent(st); st << "preferred_whz " << preferred_size.width() << ' ' << preferred_size.height() << ' ' << preferred_zoom; } nl_indent(st); st << "end\n"; }
void ComponentDiagramView::save(Q3TextStream & st, QString & warning, bool copy) const { DiagramItemList items(canvas()->allItems()); DiagramItem * di; if (!copy) // sort is useless for a copy items.sort(); st << "format " << FILEFORMAT << "\n"; // save first component packages fragment notes junctions and icons for (di = items.first(); di != 0; di = items.next()) { switch (di->type()) { case UmlComponent: case UmlNote: case UmlText: case UmlImage: case UmlPackage: case UmlFragment: case UmlArrowJunction: case UmlIcon: if (!copy || di->copyable()) di->save(st, FALSE, warning); // no break default: break; } } // then saves relations for (di = items.first(); di != 0; di = items.next()) { switch (di->type()) { case UmlInherit: case UmlDependency: case UmlDependOn: case UmlRequired: case UmlProvided: if (!copy || di->copyable()) di->save(st, FALSE, warning); default: // to avoid compiler warning break; } } // then saves anchors for (di = items.first(); di != 0; di = items.next()) if ((!copy || di->copyable()) && (di->type() == UmlAnchor)) di->save(st, FALSE, warning); if (!copy && (preferred_zoom != 0)) { nl_indent(st); st << "preferred_whz " << preferred_size.width() << ' ' << preferred_size.height() << ' ' << preferred_zoom; } nl_indent(st); st << "end\n"; }
void ActivityDiagramView::save(QTextStream & st, QString & warning, bool copy) const { DiagramItemList items(canvas()->allItems()); DiagramItem * di; if (!copy) // sort is useless for a copy items.sort(); st << "format " << api_format() << "\n"; // save first activity, activity nodes, actions, objects, packages, fragments, notes and icons for (di = items.first(); di != 0; di = items.next()) { switch (di->type()) { case UmlActivity: case UmlInterruptibleActivityRegion: case UmlExpansionRegion: case UmlActivityPartition: case InitialAN: case ActivityFinalAN: case FlowFinalAN: case DecisionAN: case MergeAN: case ForkAN: case JoinAN: case UmlActivityAction: case UmlActivityObject: case UmlNote: case UmlText: case UmlImage: case UmlPackage: case UmlFragment: case UmlIcon: if (!copy || di->copyable()) di->save(st, FALSE, warning); // no break default: // Parameters, parameter sets and pins are saved by their parents // pre & post conditions are saved by activity action break; } } // then saves relations for (di = items.first(); di != 0; di = items.next()) { switch (di->type()) { case UmlFlow: case UmlDependOn: if (!copy || di->copyable()) di->save(st, FALSE, warning); default: break; } } // then saves anchors for (di = items.first(); di != 0; di = items.next()) if ((!copy || di->copyable()) && (di->type() == UmlAnchor)) di->save(st, FALSE, warning); if (!copy && (preferred_zoom != 0)) { nl_indent(st); st << "preferred_whz " << preferred_size.width() << " " << preferred_size.height() << " " << preferred_zoom; } nl_indent(st); st << "end\n"; }