bool BrowserNode::undelete(bool rec, QString & warning, QString & renamed) { bool result; if (deletedp()) { // undelete the node QString s = name; bool ren = FALSE; while (((BrowserNode *)parent()) ->wrong_child_name(s, get_type(), allow_spaces(), allow_empty())) { s = "_" + s; ren = TRUE; } is_deleted = FALSE; is_modified = TRUE; get_data()->undelete(warning, renamed); if (ren) { set_name(s); renamed += QString("<li><b>") + full_name() + "</b>\n"; } result = TRUE; package_modified(); } else result = FALSE; if (rec) { // undelete the sub elts Q3ListViewItem * child; for (child = firstChild(); child != 0; child = child->nextSibling()) result |= ((BrowserNode *) child)->undelete(rec, warning, renamed); } if (result) repaint(); return result; }
void HubCanvas::menu(const QPoint &) { Q3PopupMenu m; MenuFactory::createTitle(m, TR("Network connexion")); m.insertSeparator(); m.insertItem(TR("Remove from diagram"), 0); switch (m.exec(QCursor::pos())) { case 0: delete_it(); break; default: return; } package_modified(); }
void UcClassCanvas::edit_drawing_settings() { for (;;) { StateSpecVector st; ColorSpecVector co(1); settings.complete(st); co[0].set(TR("class color"), &itscolor); SettingsDialog dialog(&st, &co, FALSE); dialog.raise(); if (dialog.exec() == QDialog::Accepted) { modified(); package_modified(); } if (!dialog.redo()) break; } }
void UcUseCaseCanvas::modified() { used_color = (itscolor == UmlDefaultColor) ? the_canvas()->browser_diagram()->get_color(UmlUseCase) : itscolor; update_name(); // force son reaffichage hide(); show(); force_self_rel_visible(); if (the_canvas()->must_draw_all_relations()) draw_all_simple_relations(); check_stereotypeproperties(); canvas()->update(); package_modified(); }
bool BrowserSimpleRelation::undelete(bool, QString & warning, QString & renamed) { if (! deletedp()) return FALSE; if (def->get_start_node()->deletedp() || def->get_end_node()->deletedp()) { warning += QString("<li><b>") + quote(def->definition(FALSE, FALSE)) + "</b> " + TR("from") + " <b>" + def->get_start_node()->full_name() + "</b> " + TR("to") + " <b>" + def->get_end_node()->full_name() + "</b>\n"; return FALSE; } else { switch (get_type()) { case UmlInherit: // use case if (!def->get_start_node()->check_inherit(def->get_end_node()).isEmpty()) { warning += QString("<li><b>") + quote(def->definition(FALSE, FALSE)) + "</b> " + TR("because <b>%1</b> cannot (or already) inherit on <b>%2</b>", def->get_start_node()->full_name(), def->get_end_node()->full_name()) + "\n"; return FALSE; } break; default: break; } } is_deleted = FALSE; def->undelete(warning, renamed); package_modified(); repaint(); return TRUE; }
void SdLifeLineCanvas::exec_menu(int rank) { double old_z = z(); switch (rank) { case 0: SdDurationCanvas::propag_visible(durations, FALSE); upper(); SdDurationCanvas::propag_visible(durations, TRUE); break; case 1: lower(); break; case 2: SdDurationCanvas::propag_visible(durations, FALSE); z_up(); SdDurationCanvas::propag_visible(durations, TRUE); break; case 3: z_down(); break; default: return; } double dz = z() - old_z; if (dz != 0) { SdDurationCanvas::propag_dz(durations, dz); // force son reaffichage hide(); show(); canvas()->update(); package_modified(); } }
bool BrowserFlow::undelete(bool, QString & warning, QString & renamed) { if (! deletedp()) return FALSE; if (def->get_start_node()->deletedp() || def->get_end_node()->deletedp()) { warning += QString("<li><b>") + quote(name) + "</b> " + TR("from") + " <b>" + def->get_start_node()->full_name() + "</b> " + TR("to") + " <b>" + def->get_end_node()->full_name() + "</b>\n"; return FALSE; } is_deleted = FALSE; def->undelete(warning, renamed); package_modified(); repaint(); return TRUE; }
void PseudoStateCanvas::apply_shortcut(QString s) { if (s == "Select in browser") { browser_node->select_in_browser(); return; } else if (s == "Upper") upper(); else if (s == "Lower") lower(); else if (s == "Go up") z_up(); else if (s == "Go down") z_down(); else { browser_node->apply_shortcut(s); return; } modified(); package_modified(); }
void ArrowJunctionCanvas::menu(const QPoint&) { #if 0 if (lines.at(0)->may_join()) { Q3PopupMenu m; m.insertItem(new MenuTitle(TR("Line break"), m.font()), -1); m.insertSeparator(); m.insertItem(TR("Remove from diagram"), 0); switch (m.exec(QCursor::pos())) { case 0: // removes the point replacing the lines around it by a single line lines.at(0)->join(lines.at(1), this); break; default: return; } package_modified(); } #endif }
void FlowCanvas::apply_shortcut(QString s) { if (s == "Select in browser") { data->get_start()->select_in_browser(); return; } else if (s == "Edit drawing settings") { ArrowCanvas * aplabel; ArrowCanvas * apstereotype; search_supports(aplabel, apstereotype); if ((aplabel != 0) || (apstereotype != 0)) edit_drawing_settings(); return; } else { data->get_start()->apply_shortcut(s); return; } modified(); package_modified(); }
void ArrowPointCanvas::menu(const QPoint &) { QMenu m; MenuFactory::createTitle(m, QObject::tr("Line break")); m.addSeparator(); MenuFactory::addItem(m,QObject::tr("Remove from diagram"), 0); m.setEnabled(lines.at(0)->may_join()); // m.actions().at(0)->setItemEnabled(0, lines.at(0)->may_join()); QAction *retAction = m.exec(QCursor::pos()); if(retAction) switch (retAction->data().toInt()) { case 0: // removes the point replacing the lines around it by a single line lines.at(0)->join(lines.at(1), this); break; default: return; } package_modified(); }
void TextCanvas::apply_shortcut(QString s) { if (s == "Upper") upper(); else if (s == "Lower") lower(); else if (s == "Go up") z_up(); else if (s == "Go down") z_down(); else if (s == "Edit") { open(); // call package_modified return; } else return; // force son reaffichage hide(); show(); canvas()->update(); package_modified(); }
void FragmentCanvas::apply_shortcut(QString s) { if (s == "Upper") upper(); else if (s == "Lower") lower(); else if (s == "Go up") z_up(); else if (s == "Go down") z_down(); else if (s == "Edit drawing settings") { edit_drawing_settings(); return; } else if (s == "Edit") { open(); // call modified then package_modified return; } else return; modified(); package_modified(); }
void OdClassInstCanvas::modified() { if (visible()) { hide(); hide_lines(); compute_size(); show(); update_show_lines(); if (browser_node->get_type() != UmlClass) check_stereotypeproperties(); if (the_canvas()->must_draw_all_relations()) draw_all_relations(); foreach (ArrowCanvas *canvas, lines) if (IsaRelation(canvas->type())) // useless to check UmlObjectLink ie unset link ((ObjectLinkCanvas *) canvas)->check(); canvas()->update(); package_modified(); } }
void SdSelfMsgCanvas::apply_shortcut(QString s) { if (s == "Upper") upper(); else if (s == "Lower") lower(); else if (s == "Go up") z_up(); else if (s == "Go down") z_down(); else if (s == "Edit drawing settings") { edit_drawing_settings(); return; } else if (s == "Edit") open(); else return; // force son reaffichage hide(); show(); package_modified(); canvas()->update(); }
void OdClassInstCanvas::modified() { if (visible()) { hide(); hide_lines(); compute_size(); show(); update_show_lines(); if (browser_node->get_type() != UmlClass) check_stereotypeproperties(); if (the_canvas()->must_draw_all_relations()) draw_all_relations(); QListIterator<ArrowCanvas> it(lines); for (; it.current(); ++it) if (IsaRelation(it.current()->type())) // useless to check UmlObjectLink ie unset link ((ObjectLinkCanvas *) it.current())->check(); canvas()->update(); package_modified(); } }
void SdDurationCanvas::menu(const QPoint & p) { Q3PopupMenu m(0); Q3CanvasItemList items = collisions(TRUE); Q3PtrList<SdDurationCanvas> l; Q3CanvasItemList::ConstIterator it; Q3CanvasItemList::ConstIterator end = items.end(); for (it = items.begin(); it != end; ++it) { if ((*it)->visible()) { DiagramItem * di = QCanvasItemToDiagramItem(*it); if ((di != 0) && (di->type() == UmlActivityDuration) && (((SdDurationCanvas *) di)->support == support)) l.append((SdDurationCanvas *) di); } } m.insertItem(new MenuTitle(TR("Activity bar"), m.font()), -1); m.insertSeparator(); m.insertItem(TR("Upper"), 0); m.insertItem(TR("Lower"), 1); m.insertItem(TR("Go up"), 9); m.insertItem(TR("Go down"), 10); m.insertSeparator(); m.insertItem((coregion) ? TR("Draw as activity bar") : TR("Draw as a coregion"), 7); m.insertItem(TR("Edit drawing settings"), 2); m.insertSeparator(); m.insertItem(TR("Select linked items"), 3); m.insertSeparator(); m.insertItem(TR("Remove from diagram"), 4); m.insertSeparator(); m.insertItem(TR("Cut here"), 5); if (!l.isEmpty()) m.insertItem(TR("Merge juxtaposed activity bars"), 6); if (support->isaDuration()) m.insertItem(TR("Collapse in parent bar"), 8); switch (m.exec(QCursor::pos())) { case 0: upper(); modified(); return; case 1: lower(); modified(); return; case 9: z_up(); modified(); // call package_modified() return; case 10: z_down(); modified(); // call package_modified() return; case 2: edit_drawing_settings(); return; case 3: select_associated(); break; case 4: delete_it(); package_modified(); break; case 5: cut(p); package_modified(); break; case 6: merge(l); package_modified(); break; case 7: coregion = !coregion; modified(); return; case 8: { SdDurationCanvas * d = (SdDurationCanvas *) support; d->collapse(this); d->update_hpos(); // update sub duration and msg hpos d->update_self(); } package_modified(); break; default: return; } canvas()->update(); }
void FragmentCanvas::menu(const QPoint&) { Q3PopupMenu m(0); MenuFactory::createTitle(m, TR("Fragment")); m.insertSeparator(); m.insertItem(TR("Upper"), 0); m.insertItem(TR("Lower"), 1); m.insertItem(TR("Go up"), 7); m.insertItem(TR("Go down"), 8); m.insertSeparator(); m.insertItem(TR("Edit"), 2); m.insertItem(TR("Add separator"), 6); m.insertSeparator(); m.insertItem(TR("Edit drawing settings"), 3); if (linked()) { m.insertSeparator(); m.insertItem(TR("Select linked items"), 4); } m.insertSeparator(); m.insertItem(TR("Remove from diagram"),5); if ((refer != 0) && !refer->deletedp()) { m.insertSeparator(); m.insertItem(TR("Show referenced diagram"),9); } int index = m.exec(QCursor::pos()); switch (index) { case 0: upper(); modified(); // call package_modified() return; case 1: lower(); modified(); // call package_modified() return; case 7: z_up(); modified(); // call package_modified() return; case 8: z_down(); modified(); // call package_modified() return; case 2: open(); // modified then package_modified already called return; case 3: edit_drawing_settings(); return; case 4: the_canvas()->unselect_all(); select_associated(); return; case 5: delete_it(); break; case 6: { FragmentSeparatorCanvas * sp = new FragmentSeparatorCanvas(the_canvas(), this); separators.append(sp); the_canvas()->unselect_all(); the_canvas()->select(sp); } break; case 9: refer->open(FALSE); return; default: return; } package_modified(); }
void SimpleRelationCanvas::stereotype_default_position() const { default_stereotype_position(); package_modified(); }
void SimpleRelationCanvas::menu(const QPoint &) { if ((data != 0) && !data->get_start()->in_edition()) { SimpleRelationCanvas * pstereotype; { ArrowCanvas * aplabel; // cannot exist ArrowCanvas * apstereotype; search_supports(aplabel, apstereotype); pstereotype = (SimpleRelationCanvas *) apstereotype; } Q3PopupMenu m(0); Q3PopupMenu geo(0); Q3PopupMenu toolm(0); MenuFactory::createTitle(m, data->definition(FALSE, TRUE)); m.insertSeparator(); m.insertItem("Edit", 0); m.insertSeparator(); m.insertItem("Select in browser", 2); if (pstereotype) { m.insertSeparator(); m.insertItem("Select stereotype", 3); m.insertItem("Stereotype default position", 4); if (stereotype == 0) m.insertItem("Attach stereotype to this segment", 6); } if (get_start() != get_end()) { m.insertSeparator(); init_geometry_menu(geo, 10); m.insertItem("Geometry (Ctrl+l)", &geo); } m.insertSeparator(); m.insertItem("Remove from diagram", 7); if (data->get_start()->is_writable()) m.insertItem("Delete from model", 8); m.insertSeparator(); if (Tool::menu_insert(&toolm, itstype, 20)) m.insertItem("Tool", &toolm); int rank = m.exec(QCursor::pos()); switch (rank) { case 0: data->edit(); return; case 2: data->get_start()->select_in_browser(); return; case 3: the_canvas()->unselect_all(); the_canvas()->select(pstereotype->stereotype); return; case 4: pstereotype->stereotype_default_position(); return; case 6: stereotype = pstereotype->stereotype; pstereotype->stereotype = 0; stereotype_default_position(); break; case 7: // not removed from the browser : just hide it remove(FALSE); break; case 8: data->delete_it(); // will delete the canvas break; default: if (rank >= 20) { ToolCom::run(Tool::command(rank - 20), data->get_start()); return; } else if (rank >= 10) { rank -= 10; if (rank == RecenterBegin) set_decenter(-1.0, decenter_end); else if (rank == RecenterEnd) set_decenter(decenter_begin, -1.0); else if (rank != (int) geometry) set_geometry((LineGeometry) rank, TRUE); else return; } else return; } package_modified(); } }
void SimpleRelationCanvas::deleted() { delete_it(); canvas()->update(); package_modified(); }
void IconCanvas::menu(const QPoint&) { Q3PopupMenu m(0); m.insertItem(new MenuTitle(browser_node->get_name() + TR("\nshort cut"), m.font()), -1); m.insertSeparator(); m.insertItem(TR("Upper"), 0); m.insertItem(TR("Lower"), 1); m.insertItem(TR("Go up"), 6); m.insertItem(TR("Go down"), 7); m.insertSeparator(); if (! browser_node->deletedp()) { m.insertItem(TR("Open"), 2); m.insertSeparator(); } m.insertItem(TR("Select diagram in browser"), 3); m.insertItem(TR("Select linked items"), 4); m.insertSeparator(); m.insertItem(TR("Remove from diagram"),5); switch (m.exec(QCursor::pos())) { case 0: upper(); // force son reaffichage hide(); show(); canvas()->update(); break; case 1: lower(); // force son reaffichage hide(); show(); canvas()->update(); break; case 6: z_up(); // force son reaffichage hide(); show(); canvas()->update(); break; case 7: z_down(); // force son reaffichage hide(); show(); canvas()->update(); break; case 2: browser_node->open(FALSE); return; case 3: browser_node->select_in_browser(); return; case 4: the_canvas()->unselect_all(); select_associated(); return; case 5: // delete delete_it(); break; default: return; } package_modified(); }
void ParameterSetCanvas::menu(const QPoint &) { QPopupMenu m(0); QPopupMenu 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"), 13); m.insertItem(TR("Go down"), 14); m.insertSeparator(); m.insertItem(TR("Edit drawing settings"), 2); m.insertSeparator(); m.insertItem(TR("Edit parameter set"), 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()) { m.insertItem(TR("Delete from model"), 8); m.insertSeparator(); } if (Tool::menu_insert(&toolm, UmlParameterSet, 20)) m.insertItem(TR("Tool"), &toolm); switch (index = m.exec(QCursor::pos())) { case 0: act->upper(); modified(); // call package_modified() return; case 1: act->lower(); modified(); // call package_modified() return; case 13: act->z_up(); modified(); // call package_modified() return; case 14: act->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 8: //delete from model browser_node->delete_it(); // will delete the canvas break; default: if (index >= 20) ToolCom::run(Tool::command(index - 20), browser_node); return; } package_modified(); }
void UcUseCaseCanvas::menu(const QPoint&) { Q3PopupMenu m(0); Q3PopupMenu toolm(0); MenuFactory::createTitle(m, browser_node->get_data()->definition(FALSE, TRUE)); m.insertSeparator(); m.insertItem("Upper", 0); m.insertItem("Lower", 1); m.insertItem("Go up", 13); m.insertItem("Go down", 14); m.insertSeparator(); m.insertItem("Add related elements", 10); m.insertSeparator(); m.insertItem("Edit", 2); m.insertSeparator(); m.insertItem("Edit drawing settings", 3); m.insertSeparator(); m.insertItem("Select in browser",4); if (linked()) m.insertItem("Select linked items", 5); m.insertSeparator(); if (browser_node->is_writable()) { if (browser_node->get_associated() != (BrowserNode *) the_canvas()->browser_diagram()) m.insertItem("Set associated diagram",6); if (browser_node->get_associated()) m.insertItem("Remove diagram association",9); } m.insertSeparator(); m.insertItem("Remove from diagram",7); if (browser_node->is_writable()) m.insertItem("Delete from model", 8); m.insertSeparator(); if (Tool::menu_insert(&toolm, UmlUseCase, 20)) m.insertItem("Tool", &toolm); int rank = m.exec(QCursor::pos()); switch (rank) { case 0: upper(); modified(); return; case 1: lower(); modified(); return; case 13: z_up(); modified(); return; case 14: z_down(); modified(); return; case 2: browser_node->open(TRUE); break; case 3: edit_drawing_settings(); return; case 4: browser_node->select_in_browser(); return; case 5: the_canvas()->unselect_all(); select_associated(); return; case 6: ((BrowserUseCase *) browser_node)->set_associated_diagram((BrowserUseCaseDiagram *) the_canvas()->browser_diagram()); break; case 12: ((BrowserUseCase *) 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 remove canvas break; case 10: ((UmlCanvas *) canvas())->get_view() ->add_related_elements(this, TR("use case"), TRUE, FALSE); return; default: if (rank >= 20) ToolCom::run(Tool::command(rank - 20), browser_node); return; } package_modified(); }
void ActivityPartitionCanvas::menu(const QPoint&) { Q3PopupMenu m(0); Q3PopupMenu toolm(0); int index; MenuFactory::createTitle(m, browser_node->get_data()->definition(FALSE, TRUE)); m.insertSeparator(); m.insertItem(TR("Upper"), 0); m.insertItem(TR("Lower"), 1); m.insertItem(TR("Go up"), 13); m.insertItem(TR("Go down"), 14); m.insertSeparator(); m.insertItem((horiz) ? TR("draw vertically") : TR("draw horizontally"), 10); m.insertSeparator(); m.insertItem(TR("Edit drawing settings"), 2); m.insertSeparator(); m.insertItem(TR("Edit activity partition"), 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"),9); } m.insertSeparator(); m.insertItem(TR("Remove from diagram"), 7); if (browser_node->is_writable()) m.insertItem(TR("Delete from model"), 8); m.insertSeparator(); if (Tool::menu_insert(&toolm, UmlActivityPartition, 20)) m.insertItem(TR("Tool"), &toolm); switch (index = m.exec(QCursor::pos())) { case 0: upper(); modified(); // call package_modified() return; case 1: lower(); modified(); // call package_modified() return; case 13: z_up(); modified(); // call package_modified() return; case 14: 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: ((BrowserActivityPartition *) browser_node) ->set_associated_diagram((BrowserActivityDiagram *) the_canvas()->browser_diagram()); 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: ((BrowserActivityPartition *) browser_node) ->set_associated_diagram(0); return; case 10: turn(-1000, -1000); break; default: if (index >= 20) ToolCom::run(Tool::command(index - 20), browser_node); return; } package_modified(); }
void SdDurationCanvas::cut(const QPoint & p) { cut_internal(p.y()); package_modified(); }
void AssocContainCanvas::menu(const QPoint&) { Q3PopupMenu m(0); Q3PopupMenu geo(0); ArrowCanvas * aplabel; ArrowCanvas * apstereotype; search_supports(aplabel, apstereotype); AssocContainCanvas * plabel = (AssocContainCanvas *) aplabel; AssocContainCanvas * pstereotype = (AssocContainCanvas *) apstereotype; MenuFactory::createTitle(m, TR("Association")); m.insertSeparator(); m.insertItem(TR("Edit"),1); if (pstereotype || plabel) { m.insertSeparator(); m.insertItem(TR("Select stereotype and label"), 2); m.insertItem(TR("Default stereotype and label position"), 3); if (plabel && (label == 0)) m.insertItem(TR("Attach label to this segment"), 4); if (pstereotype && (stereotype == 0)) m.insertItem(TR("Attach stereotype to this segment"), 5); } if (get_start() != get_end()) { m.insertSeparator(); init_geometry_menu(geo, 10); m.insertItem(TR("Geometry (Ctrl+l)"), &geo); } m.insertSeparator(); m.insertItem(TR("Remove from diagram"), 6); m.insertItem(TR("Delete from model"), 7); int rank = m.exec(QCursor::pos()); switch (rank) { case 1: open(); return; case 2: the_canvas()->unselect_all(); if (plabel) the_canvas()->select(plabel->label); if (pstereotype) the_canvas()->select(pstereotype->stereotype); return; case 3: if (plabel) plabel->default_label_position(); if (pstereotype) pstereotype->default_stereotype_position(); break; case 4: label = plabel->label; plabel->label = 0; default_label_position(); break; case 5: stereotype = pstereotype->stereotype; pstereotype->stereotype = 0; default_stereotype_position(); break; case 6: // not removed from the model : just hide it remove(FALSE); break; case 7: get_start()->unassociate(get_end()); // line will be deleted break; default: if (rank >= 10) { rank -= 10; if (rank == RecenterBegin) set_decenter(-1.0, decenter_end); else if (rank == RecenterEnd) set_decenter(decenter_begin, -1.0); else if (rank != (int) geometry) set_geometry((LineGeometry) rank, TRUE); else return; } else return; } package_modified(); }
void InfoCanvas::menu(const QPoint&) { Q3PopupMenu m(0); Q3PopupMenu fontsubm(0); MenuFactory::createTitle(m, TR("Information")); m.insertSeparator(); m.insertItem(TR("Upper"), 0); m.insertItem(TR("Lower"), 1); m.insertItem(TR("Go up"), 5); m.insertItem(TR("Go down"), 6); m.insertSeparator(); m.insertItem(TR("Edit"), 2); m.insertSeparator(); m.insertItem(TR("Font"), &fontsubm); init_font_menu(fontsubm, the_canvas(), 10); m.insertItem(TR("Edit drawing settings"), 3); if (linked()) { m.insertSeparator(); m.insertItem(TR("Select linked items"), 4); } m.insertSeparator(); int index = m.exec(QCursor::pos()); switch (index) { case 0: upper(); modified(); // call package_modified() return; case 1: lower(); modified(); // call package_modified() return; case 5: z_up(); modified(); // call package_modified() return; case 6: z_down(); modified(); // call package_modified() return; case 2: who->open(); return; case 3: for (;;) { ColorSpecVector co(1); co[0].set(TR("note color"), &itscolor); SettingsDialog dialog(0, &co, FALSE); dialog.raise(); if (dialog.exec() == QDialog::Accepted) modified(); if (!dialog.redo()) return; } break; case 4: the_canvas()->unselect_all(); select_associated(); return; default: if (index >= 10) { itsfont = (UmlFont) (index - 10); modified(); } return; } package_modified(); }
void CodLinkCanvas::menu(const QPoint&) { bool new_dirs; CodDirsCanvas * d = find_dirs(); CodObjCanvas * from; CodObjCanvas * to; get_start_end(from, to); if (d == 0) { new_dirs = TRUE; (d = dirs = new CodDirsCanvas(the_canvas(), this, 0))->show(); } else new_dirs = FALSE; Q3PopupMenu m; Q3PopupMenu geo; m.insertItem(new MenuTitle(TR("Link"), m.font()), -1); m.insertSeparator(); m.insertItem(TR("add messages to ") + from->get_full_name(), 1); m.insertItem(TR("add messages to ") + to->get_full_name(), 2); m.insertSeparator(); m.insertItem(TR("Edit its messages"), 3); m.insertItem(TR("Edit all the messages"), 4); m.insertSeparator(); m.insertItem(TR("Select linked items"), 7); m.insertSeparator(); if (!new_dirs) { m.insertItem(TR("Edit drawing settings"), 5); m.insertSeparator(); } if (get_start() != get_end()) { init_geometry_menu(geo, 10); m.insertItem(TR("Geometry (Ctrl+l)"), &geo); m.insertSeparator(); } m.insertItem(TR("Remove from diagram"), 6); int rank = m.exec(QCursor::pos()); switch (rank) { case 1: { CodAddMsgDialog dialog(to, from, d, (ColDiagramView *) the_canvas()->get_view(), FALSE); dialog.raise(); if (dialog.exec() != QDialog::Accepted) return; } break; case 2: { CodAddMsgDialog dialog(from, to, d, (ColDiagramView *) the_canvas()->get_view(), TRUE); dialog.raise(); if (dialog.exec() != QDialog::Accepted) return; } break; case 3: CodEditMsgDialog::exec((ColDiagramView *) the_canvas()->get_view(), d->get_msgs()); return; case 4: CodEditMsgDialog::exec((ColDiagramView *) the_canvas()->get_view(), ((ColDiagramView *) the_canvas()->get_view())->get_msgs()); return; case 5: if (d->edit_drawing_settings()) modified(); return; case 6: delete_it(); ((ColDiagramView *) the_canvas()->get_view())->update_msgs(); break; case 7: select_associated(); return; default: if (rank >= 10) { rank -= 10; if (rank == RecenterBegin) set_decenter(-1.0, decenter_end); else if (rank == RecenterEnd) set_decenter(decenter_begin, -1.0); else if (rank != (int) geometry) set_geometry((LineGeometry) rank, TRUE); else return; } else return; } package_modified(); if (new_dirs && (dirs != 0)) { if (dirs->get_msgs().count() == 0) { dirs->delete_it(); dirs = 0; } else dirs->update_pos(beginp, endp); } }
void CodClassInstCanvas::menu(const QPoint&) { QPopupMenu m(0); bool modelized = (browser_node->get_type() == UmlClassInstance); m.insertItem(new MenuTitle(full_name(), m.font()), -1); m.insertSeparator(); m.insertItem(TR("Upper"), 0); m.insertItem(TR("Lower"), 1); m.insertItem(TR("Go up"), 13); m.insertItem(TR("Go down"), 14); m.insertSeparator(); m.insertItem(TR("Edit drawing settings"), 2); m.insertSeparator(); m.insertItem(TR("Edit"), 3); m.insertSeparator(); if (modelized) m.insertItem(TR("Select in browser"), 4); m.insertItem(TR("Select class in browser"), 5); if (linked()) m.insertItem(TR("Select linked items"), 6); m.insertSeparator(); if (modelized) m.insertItem(TR("Exit from model"), 9); else { if (container(UmlClass)->is_writable()) m.insertItem(TR("Insert in model"), 10); m.insertItem(TR("Replace it"), 11); } m.insertSeparator(); m.insertItem(TR("Remove from diagram"), 7); if (modelized && browser_node->is_writable()) m.insertItem(TR("Delete from model"), 8); switch (m.exec(QCursor::pos())) { case 0: upper(); modified(); // call package_modified return; case 1: lower(); modified(); // call package_modified return; case 13: z_up(); modified(); // call package_modified() return; case 14: z_down(); modified(); // call package_modified() return; case 2: edit_drawing_settings(); return; case 3: open(); // call package_modified return; case 4: browser_node->select_in_browser(); return; case 5: get_type()->select_in_browser(); return; case 6: the_canvas()->unselect_all(); select_associated(); return; case 7: delete_it(); break; case 8: //delete from model browser_node->delete_it(); // will delete the canvas break; case 9: { BasicData * d = browser_node->get_data(); disconnect(d, SIGNAL(changed()), this, SLOT(modified())); disconnect(d, SIGNAL(deleted()), this, SLOT(deleted())); iname = browser_node->get_name(); browser_node = ((ClassInstanceData *) d)->get_class(); d = browser_node->get_data(); connect(d, SIGNAL(changed()), this, SLOT(modified())); connect(d, SIGNAL(deleted()), this, SLOT(deleted())); } break; case 10: { BasicData * d = browser_node->get_data(); disconnect(d, SIGNAL(changed()), this, SLOT(modified())); disconnect(d, SIGNAL(deleted()), this, SLOT(deleted())); browser_node = new BrowserClassInstance(iname, (BrowserClass *) browser_node, container(UmlClass)); d = browser_node->get_data(); connect(d, SIGNAL(changed()), this, SLOT(modified())); connect(d, SIGNAL(deleted()), this, SLOT(deleted())); } break; case 11: { BrowserNode * bn = BrowserClassInstance::get_classinstance((BrowserClass *) browser_node); if (bn == 0) return; BasicData * d = browser_node->get_data(); disconnect(d, SIGNAL(changed()), this, SLOT(modified())); disconnect(d, SIGNAL(deleted()), this, SLOT(deleted())); browser_node = bn; d = browser_node->get_data(); connect(d, SIGNAL(changed()), this, SLOT(modified())); connect(d, SIGNAL(deleted()), this, SLOT(deleted())); modified(); // call package_modified return; } break; default: return; } package_modified(); }