BrowserObjectDiagram::BrowserObjectDiagram(BrowserObjectDiagram * model, BrowserNode * p) : BrowserDiagram(p->get_name(), p, 0), window(0), used_settings(0) { def = new SimpleData(model->def); def->set_browser_node(this); comment = model->comment; settings = model->settings; note_color = model->note_color; fragment_color = model->fragment_color; package_color = model->package_color; class_instance_color = model->class_instance_color; canvas_size = model->canvas_size; is_modified = TRUE; if (model->window != 0) model->window->duplicate(get_ident(), "diagram"); else { char * diagram; if ((diagram = read_definition(model->get_ident(), "diagram")) != 0) { save_definition(get_ident(), "diagram", diagram, is_new); delete [] diagram; } } }
void DiagramWindow::save(const char * ext, QString & warning, BooL & is_new) const { double zm = canvas->zoom(); if (zm != 1) get_view()->set_zoom(1); QString diagram_def; QTextOStream st(&diagram_def); int current_indent = indent(); indent0(); get_view()->save(st, warning, FALSE); save_definition(browser_node->get_ident(), ext, diagram_def, is_new); indent(current_indent); if (zm != 1) get_view()->set_zoom(zm); }
void DiagramWindow::duplicate(int dest_id, const char * ext) const { QString warning; double zm = canvas->zoom(); if (zm != 1) get_view()->set_zoom(1); QString diagram_def; QTextOStream st(&diagram_def); int current_indent = indent(); BooL is_new = TRUE; indent0(); get_view()->save(st, warning, FALSE); save_definition(dest_id, ext, diagram_def, is_new); indent(current_indent); if (zm != 1) get_view()->set_zoom(zm); }