void CodAddMsgDialog::menu_op() { QPopupMenu m(0); m.insertItem(TR("Choose"), -1); m.insertSeparator(); int index = list.findIndex(edoper->currentText().stripWhiteSpace()); if (index != -1) m.insertItem(TR("Select in browser"), 0); BrowserNode * bn = BrowserView::selected_item(); if ((bn != 0) && (bn->get_type() == UmlOperation) && !bn->deletedp() && (opers.findIndex((OperationData *) bn->get_data()) != -1)) m.insertItem(TR("Choose operation selected in browser"), 1); else bn = 0; if (cl != 0) m.insertItem(TR("Create operation and choose it"), 2); if ((index != -1) || (bn != 0) || (cl != 0)) { switch (m.exec(QCursor::pos())) { case 0: opers[index]->get_browser_node()->select_in_browser(); break; case 2: bn = cl->add_operation(); if (bn == 0) return; bn->select_in_browser(); // no break case 1: { OperationData * od = (OperationData *) bn->get_data(); if ((index = opers.findIndex(od)) == -1) { index = opers.count(); opers.append(od); QString s = od->definition(TRUE, FALSE); list.append(s); edoper->insertItem(s); } } edoper->setCurrentItem(index + 1); } } }
void CodChangeMsgDialog::menu_op() { QMenu m(0); MenuFactory::addItem(m, tr("Choose"), -1); m.addSeparator(); int index = list.indexOf(edoper->currentText().trimmed()); if (index != -1) MenuFactory::addItem(m, tr("Select in browser"), 0); BrowserNode * bn = BrowserView::selected_item(); if ((bn != 0) && (bn->get_type() == UmlOperation) && !bn->deletedp() && (opers.indexOf((OperationData *) bn->get_data()) != -1)) MenuFactory::addItem(m, tr("Choose operation selected in browser"), 1); else bn = 0; if (cl != 0) MenuFactory::addItem(m, tr("Create operation and choose it"), 2); if ((index != -1) || (bn != 0) || (cl != 0)) { QAction* retAction = m.exec(QCursor::pos()); if(retAction) { switch (retAction->data().toInt()) { case 0: opers[index]->get_browser_node()->select_in_browser(); break; case 2: bn = cl->add_operation(); if (bn == 0) return; bn->select_in_browser(); // no break case 1: { OperationData * od = (OperationData *) bn->get_data(); if ((index = opers.indexOf(od)) == -1) { index = opers.count(); opers.append(od); QString s = od->definition(TRUE, FALSE); list.append(s); edoper->addItem(s); } } edoper->setCurrentIndex(index + 1); } } } }
void ParameterDialog::menu_type() { QMenu m(0); MenuFactory::addItem(m, tr("Choose"), -1); m.addSeparator(); int index = list.indexOf(edtype->currentText().trimmed()); if (index != -1) MenuFactory::addItem(m, tr("Select in browser"), 0); BrowserNode * bn = 0; if (! visit) { bn = BrowserView::selected_item(); if ((bn != 0) && (bn->get_type() == UmlClass) && !bn->deletedp()) MenuFactory::addItem(m, tr("Choose class selected in browser"), 1); else bn = 0; MenuFactory::addItem(m, tr("Create class and choose it"), 2); } if (!visit || (index != -1) || (bn != 0)) { QAction* retAction = m.exec(QCursor::pos()); if(retAction) { switch (retAction->data().toInt()) { case 0: nodes.at(index)->select_in_browser(); break; case 2: bn = BrowserClass::add_class(FALSE, view); if (bn == 0) return; bn->select_in_browser(); // no break case 1: { QString s = bn->full_name(TRUE); if ((index = list.indexOf(s)) == -1) { // new class, may be created through an other dialog index = 0; QStringList::Iterator iter = list.begin(); QStringList::Iterator iter_end = list.end(); while ((iter != iter_end) && (*iter < s)) { ++iter; index += 1; } nodes.insert((unsigned) index, bn); list.insert(iter, s); edtype->insertItem(index + offset,s); } } edtype->setCurrentIndex(index + offset); break; default: break; } } } }
void ActivityActionCanvas::menu(const QPoint&) { ActivityActionData * data = (ActivityActionData *) browser_node->get_data(); QPopupMenu m(0); QPopupMenu toolm(0); m.insertItem(new MenuTitle(data->definition(FALSE, TRUE), m.font()), -1); m.insertSeparator(); if (browser_node->is_writable() && data->may_add_pin()) { m.insertItem(TR("Add pin"), 7); 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 activity action"), 3); m.insertSeparator(); m.insertItem(TR("Select in browser"), 4); const char * what; BrowserNode * who = data->get_action()->referenced(what); BrowserNode * diag = 0; if (who != 0) m.insertItem(TR("Select %1 in browser", QString(what)), 10); 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 (data->get_action_kind() == UmlCallBehaviorAction) { BasicData * d = data->get_action()->depend_on(); if (d != 0) { diag = d->get_browser_node()->get_associated(); if ((diag != 0) && (diag != (BrowserNode *) the_canvas()->browser_diagram())) m.insertItem(TR("Set associated diagram from behavior"), 11); } } if (browser_node->get_associated()) m.insertItem(TR("Remove diagram association"),12); } m.insertSeparator(); m.insertItem(TR("Remove from diagram"), 8); if (browser_node->is_writable()) m.insertItem(TR("Delete from model"), 9); m.insertSeparator(); if (Tool::menu_insert(&toolm, UmlActivityAction, 20)) m.insertItem(TR("Tool"), &toolm); int index; 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: ((BrowserActivityAction *) browser_node) ->set_associated_diagram(the_canvas()->browser_diagram()); return; case 12: ((BrowserActivityAction *) browser_node) ->set_associated_diagram(0); return; case 7: if (BrowserPin::add_pin(0, browser_node) != 0) modified(); // call package_modified() break; case 8: //remove from diagram delete_it(); break; case 9: //delete from model browser_node->delete_it(); // will delete the canvas break; case 10: who->select_in_browser(); return; case 11: ((BrowserActivityAction *) browser_node)->set_associated_diagram(diag); return; default: if (index >= 20) ToolCom::run(Tool::command(index - 20), browser_node); return; } }
void ActivityObjectDialog::menu_type() { Q3PopupMenu m(0); m.insertItem(TR("Choose"), -1); m.insertSeparator(); int index = list.findIndex(edtype->currentText().stripWhiteSpace()); if (index != -1) m.insertItem(TR("Select in browser"), 0); BrowserNode * bn = 0; if (! visit) { bn = BrowserView::selected_item(); if ((bn != 0) && (bn->get_type() == UmlClass) && !bn->deletedp()) m.insertItem(TR("Choose class selected in browser"), 1); else bn = 0; m.insertItem(TR("Create class and choose it"), 2); } if (!visit || (index != -1) || (bn != 0)) { switch (m.exec(QCursor::pos())) { case 0: nodes.at(index)->select_in_browser(); break; case 2: bn = BrowserClass::add_class(FALSE, view); if (bn == 0) return; bn->select_in_browser(); // no break case 1: { QString s = bn->full_name(TRUE); if ((index = list.findIndex(s)) == -1) { // new class, may be created through an other dialog QStringList::Iterator iter = list.begin(); QStringList::Iterator iter_end = list.end(); index = 0; while ((iter != iter_end) && (*iter < s)) { ++iter; index += 1; } nodes.insert((unsigned) index, bn); list.insert(iter, s); edtype->insertItem(s, index + offset); } } edtype->setCurrentItem(index + offset); break; default: break; } } }