#include "onf_actionaggregateitems.h" #include "documentinterface.h" #include "painterinterface.h" #include "ct_global/ct_context.h" #include #include #include #include ONF_ActionAggregateItems_dataContainer::ONF_ActionAggregateItems_dataContainer() { } ONF_ActionAggregateItems::ONF_ActionAggregateItems(ONF_ActionAggregateItems_dataContainer *dataContainer) : CT_AbstractActionForGraphicsView() { _dataContainer = dataContainer; } ONF_ActionAggregateItems::~ONF_ActionAggregateItems() { } QString ONF_ActionAggregateItems::uniqueName() const { return "ONF_ActionAggregateItems"; } QString ONF_ActionAggregateItems::title() const { return tr("Regroupement d'items"); } QString ONF_ActionAggregateItems::description() const { return tr("Regroupement d'items"); } QIcon ONF_ActionAggregateItems::icon() const { return QIcon(":/icons/select_rectangular.png"); } QString ONF_ActionAggregateItems::type() const { return CT_AbstractAction::TYPE_SELECTION; } void ONF_ActionAggregateItems::init() { CT_AbstractActionForGraphicsView::init(); if(nOptions() == 0) { // create the option widget if it was not already created ONF_ActionAggregateItemsOptions *option = new ONF_ActionAggregateItemsOptions(this); // add the options to the graphics view graphicsView()->addActionOptions(option); connect(option, SIGNAL(currentModalityChanged(QString)), this, SLOT(modalityChanged(QString))); for (int i = 0 ; i < _dataContainer->_items.size() ; i++) { _dataContainer->_itemsModalities.append(""); } for (int i = 0 ; i < _dataContainer->_modalities.size() ; i++) { option->addModality(_dataContainer->_modalities.at(i)); } for (int i = 0 ; i < _dataContainer->_items.size() ; i++) { document()->addItemDrawable(*(_dataContainer->_items.at(i))); } // register the option to the superclass, so the hideOptions and showOptions // is managed automatically registerOption(option); document()->redrawGraphics(); } } void ONF_ActionAggregateItems::redraw() { document()->redrawGraphics(); } CT_AbstractAction* ONF_ActionAggregateItems::createInstance() const { return new ONF_ActionAggregateItems(_dataContainer); } bool ONF_ActionAggregateItems::mousePressEvent(QMouseEvent *e) { if ((e->buttons() & Qt::LeftButton) && (e->modifiers() & Qt::ControlModifier)) { redraw(); return true; } return false; } bool ONF_ActionAggregateItems::mouseMoveEvent(QMouseEvent *e) { Q_UNUSED(e); return false; } bool ONF_ActionAggregateItems::mouseReleaseEvent(QMouseEvent *e) { Q_UNUSED(e); return false; } bool ONF_ActionAggregateItems::wheelEvent(QWheelEvent *e) { if (e->modifiers() & Qt::ControlModifier) { if (e->angleDelta().y()>0) { } redraw(); return true; } return false; } bool ONF_ActionAggregateItems::keyPressEvent(QKeyEvent *e) { if((e->key() == Qt::Key_S) && !e->isAutoRepeat()) { redraw(); return true; } return false; } bool ONF_ActionAggregateItems::keyReleaseEvent(QKeyEvent *e) { Q_UNUSED(e); return false; } void ONF_ActionAggregateItems::draw(GraphicsViewInterface &view, PainterInterface &painter) { Q_UNUSED(view); Q_UNUSED(painter); } void ONF_ActionAggregateItems::drawOverlay(GraphicsViewInterface &view, QPainter &painter) { Q_UNUSED(view); Q_UNUSED(painter); } void ONF_ActionAggregateItems::modalityChanged(QString modality) { const QList& itemList = graphicsView()->document()->getItemDrawable(); for (int i = 0 ; i < itemList.size() ; i++) { CT_AbstractSingularItemDrawable* item = static_cast( itemList.at(i)); int index = _dataContainer->_items.indexOf(item); if (index > 0) { (_dataContainer->_itemsModalities)[index] = modality; } } }