void
PatternWidgetClass::mousePressEvent(QMouseEvent* event) 
{
  // left button //
  if (event->button() == LeftButton) {

    // are we in the addTransitionMode ? //
    if (getView().isAddTransitionMode()) {
      getView().endAddTransition(this);
    }

    // else, save the click position for a possible move //
    else {
      pickedPos = event->pos();
    }
  }


  // right button -> popup menu //
  else if (event->button() == RightButton) {

    // popup menu //
    QPopupMenu menu;
    menuAddBehaviour_ = new QPopupMenu(&menu);

    menu.insertItem("Start pattern",  this, SLOT(onSetStart()));
    menu.insertSeparator();
    menu.insertItem("Add behaviour",  menuAddBehaviour_);
    menu.insertItem("Add transition", this, SLOT(onAddTransition()));
    menu.insertSeparator();
    menu.insertItem("Rename pattern", this, SLOT(onRenamePattern()));
    menu.insertItem("Rename transition", this, SLOT(onRenameTransition()));
    menu.insertItem("Delete pattern", this, SLOT(onDelete()));

    // submenu: add all behaviour names //
    Generator::GroupMap::const_iterator first, last;
    PolicyConfigClass::instance()->description().getGroupedClasses("behaviour", first, last);
    for (; first != last; ++first) {
      if (first->second.isFinal() &&
	  !getDocument().hasBehaviour(patternName, first->second.name())) {
        menuAddBehaviour_->insertItem(first->second.name());
      }
    }
    connect(menuAddBehaviour_, SIGNAL(activated(int)), this, SLOT(onAddBehaviour(int)));

    // show popup menu
    menu.exec(QCursor::pos());
  }
Ejemplo n.º 2
0
void DocumentRange::setStart(const DocumentPosition &start)
{
	m_start = start;
	onSetStart();
}