void BrowserArtifact::menu() { QMenu m(name,0); QMenu clsubm(0); QMenu gensubm(0); QMenu editsubm(0); QMenu roundtripbodysubm(0); QMenu roundtripsubm(0); QMenu toolm(0); QString cpp_h_path; QString cpp_src_path; QString java_path; QString php_path; QString python_path; QString idl_path; MenuFactory::createTitle(m, def->definition(FALSE, TRUE)); m.addSeparator(); if (!deletedp()) { if (!is_edited) { MenuFactory::addItem(m, QObject::tr("Edit"), 0, QObject::tr("to edit the <i>artifact</i>, \ a double click with the left mouse button does the same thing")); if (!is_read_only && (edition_number == 0)) { m.addSeparator(); MenuFactory::addItem(m, QObject::tr("Delete"), 1, QObject::tr("to delete the <i>artifact</i>. \ Note that you can undelete it after")); } }
void ArtifactCanvas::menu(const QPoint&) { Q3PopupMenu m(0); Q3PopupMenu gensubm(0); Q3PopupMenu toolm(0); int index; m.insertItem(new MenuTitle(browser_node->get_data()->definition(FALSE, TRUE), m.font()), -1); m.insertSeparator(); m.insertItem(TR("Upper"), 0); m.insertItem(TR("Lower"), 1); m.insertItem(TR("Go up"), 15); m.insertItem(TR("Go down"), 16); m.insertSeparator(); m.insertItem(TR("Add related elements"), 17); m.insertSeparator(); m.insertItem(TR("Edit drawing settings"), 2); m.insertSeparator(); m.insertItem(TR("Edit artifact"), 3); m.insertSeparator(); m.insertItem(TR("Select in browser"), 4); if (linked()) m.insertItem(TR("Select linked items"), 5); m.insertSeparator(); if (browser_node->is_writable()) { if (browser_node->get_associated() != (BrowserNode *) the_canvas()->browser_diagram()) m.insertItem(TR("Set associated diagram"),6); if (browser_node->get_associated()) m.insertItem(TR("Remove diagram association"),12); } m.insertSeparator(); m.insertItem(TR("Remove from diagram"), 7); if (browser_node->is_writable()) m.insertItem(TR("Delete from model"), 8); m.insertSeparator(); bool cpp = GenerationSettings::cpp_get_default_defs(); bool java = GenerationSettings::java_get_default_defs(); bool php = GenerationSettings::php_get_default_defs(); bool python = GenerationSettings::python_get_default_defs(); bool idl = GenerationSettings::idl_get_default_defs(); if (cpp || java || php || python || idl) m.insertItem(TR("Generate"), &gensubm); if (Tool::menu_insert(&toolm, UmlArtifact, 20)) m.insertItem(TR("Tool"), &toolm); if (cpp) gensubm.insertItem("C++", 9); if (java) gensubm.insertItem("Java", 10); if (php) gensubm.insertItem("Php", 13); if (python) gensubm.insertItem("Python", 14); if (idl) gensubm.insertItem("Idl", 11); switch (index = m.exec(QCursor::pos())) { case 0: upper(); modified(); // call package_modified() return; case 1: lower(); modified(); // call package_modified() return; case 15: z_up(); modified(); // call package_modified() return; case 16: z_down(); modified(); // call package_modified() return; case 2: edit_drawing_settings(); return; case 3: browser_node->open(TRUE); return; case 4: browser_node->select_in_browser(); return; case 5: the_canvas()->unselect_all(); select_associated(); return; case 6: ((BrowserArtifact *) browser_node) ->set_associated_diagram((BrowserDeploymentDiagram *) the_canvas()->browser_diagram()); return; case 12: ((BrowserArtifact *) browser_node) ->set_associated_diagram(0); return; case 7: //remove from diagram delete_it(); break; case 8: //delete from model browser_node->delete_it(); // will delete the canvas break; case 9: browser_node->apply_shortcut("Generate C++"); return; case 10: browser_node->apply_shortcut("Generate Java"); return; case 11: browser_node->apply_shortcut("Generate Idl"); return; case 13: browser_node->apply_shortcut("Generate Php"); return; case 14: browser_node->apply_shortcut("Generate Python"); return; case 17: ((UmlCanvas *) canvas())->get_view() ->add_related_elements(this, TR("artifact"), TRUE, FALSE); return; default: if (index >= 20) ToolCom::run(Tool::command(index - 20), browser_node); return; } package_modified(); }