void SdMsgBaseCanvas::update_st(QString st) { if (st.isEmpty()) { if (stereotype != 0) { // removes it the_canvas()->del(stereotype); stereotype = 0; } } else { if (stereotype == 0) { // adds stereotype stereotype = new LabelCanvas(st, the_canvas(), 0, 0); default_stereotype_position(); stereotype->show(); } else if ((stereotype != 0) && (stereotype->get_name() != st)) { // update st stereotype->set_name(st); default_stereotype_position(); } } }
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 SimpleRelationCanvas::stereotype_default_position() const { default_stereotype_position(); package_modified(); }
void FlowCanvas::stereotype_default_position() const { default_stereotype_position(); package_modified(); }
void SdSelfMsgCanvas::menu(const QPoint&) { Q3PopupMenu m(0); m.insertItem(new MenuTitle(TR("Message"), 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"), 2); m.insertItem(TR("Edit drawing settings"), 3); m.insertSeparator(); if (msg != 0) m.insertItem(TR("Select operation in browser"), 8); m.insertItem(TR("Select linked items"), 4); if (label || stereotype) { m.insertSeparator(); m.insertItem(TR("Select stereotype and label"), 5); m.insertItem(TR("Default stereotype and label position"), 6); } if (((BrowserSeqDiagram *) the_canvas()->browser_diagram()) ->is_overlapping_bars()) { m.insertSeparator(); m.insertItem(TR("Go to new overlapping bar"), 9); if (dest->isOverlappingDuration()) m.insertItem(TR("Go to parent bar"), 10); } m.insertSeparator(); m.insertItem(TR("Remove from diagram"), 7); switch (m.exec(QCursor::pos())) { case 0: upper(); // force son reaffichage hide(); show(); break; case 1: lower(); // force son reaffichage hide(); show(); break; case 13: z_up(); // force son reaffichage hide(); show(); break; case 14: z_down(); // force son reaffichage hide(); show(); break; case 2: open(); break; case 3: edit_drawing_settings(); return; case 4: select_associated(); break; case 5: the_canvas()->unselect_all(); if (label) the_canvas()->select(label); if (stereotype) the_canvas()->select(stereotype); break; case 6: if (label) default_label_position(); if (stereotype) default_stereotype_position(); break; case 7: delete_it(); return; case 8: msg->get_browser_node()->select_in_browser(); return; case 9: ((SdDurationCanvas *) dest)->go_up(this, TRUE); break; case 10: ((SdDurationCanvas *) dest)->go_down(this); default: return; } package_modified(); canvas()->update(); }