void
TriggerPoint::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
  Q_UNUSED(option);
  Q_UNUSED(widget);

  QRectF rect = boundingRect();
  painter->save();

  BasicBox *box = NULL;
  if (_abstract->boxID() != NO_ID) {
      if ((box = _scene->getBox(_abstract->boxID())) != NULL) {
          QPen pen = painter->pen();
          QBrush brush = painter->brush();
          pen.setColor(box->color().darker());
          pen.setWidth(isSelected() ? 1.5 * BasicBox::LINE_WIDTH : BasicBox::LINE_WIDTH / 2);
          painter->setPen(pen);

          if (_scene->playing()) {
              if (!isWaiting()) {
                  drawFlag(painter, QColor("red"));
                }

              else {
                  if(!_scene->triggersQueueList()->isEmpty())
                      if (_scene->triggersQueueList()->first() == this) {
                          drawFlag(painter, QColor("green"));
                          this->setFocus();
                      }
                  else {
//                      brush.setColor(QColor("orange"));
//                      painter->setBrush(brush);
                      drawFlag(painter, QColor("orange"));
                    }
                }

              if (_abstract->waiting()) {
                  BasicBox *box = _scene->getBox(_abstract->boxID());
                  box->update();
                  switch (_abstract->boxExtremity()) {
                      case BOX_START:
                        painter->drawText(rect.topRight() + QPointF(0, rect.height() / 2), QString::fromStdString(_abstract->message()));
                        break;

                      case BOX_END:
                        painter->drawText(rect.topLeft() + QPointF(-QString::fromStdString(_abstract->message()).length() * 7, rect.height() / 2), QString::fromStdString(_abstract->message()));
                        break;

                      default:
                        break;
                    }
                }
            }
          else {
              drawFlag(painter, QColor(Qt::darkGray));
            }
        }
    }
  painter->restore();
}
void
AttributesEditor::updateWidgets(bool boxModified)
{
  Q_UNUSED(boxModified);

  BasicBox * box = _scene->getBox(_boxEdited);

  if (box != NULL) {
      box->update();
      box->centerWidget();

      _boxStartValue->setValue(box->beginPos() * MaquetteScene::MS_PER_PIXEL / S_TO_MS);
      _boxLengthValue->setValue(box->width() * MaquetteScene::MS_PER_PIXEL / S_TO_MS);

      _boxName->setText(box->name());
      _colorButtonPixmap->fill(box->currentColor());
      _generalColorButton->setIcon(QIcon(*_colorButtonPixmap));
  }

  update();
}