void ConnectionDiagram::setupGraphicsScene() { Core::IBoardType *board = m_configSource->getControllerType(); if (!board) return; QString diagram = board->getConnectionDiagram(); m_renderer = new QSvgRenderer(); if (QFile::exists(diagram) && m_renderer->load(diagram) && m_renderer->isValid()) { m_scene = new QGraphicsScene(this); ui->connectionDiagram->setScene(m_scene); m_background = new QGraphicsSvgItem(); m_background->setSharedRenderer(m_renderer); m_background->setElementId("background"); m_background->setOpacity(0); m_background->setZValue(-1); m_scene->addItem(m_background); QList<QString> elementsToShow; Core::IBoardType* type = m_configSource->getControllerType(); if (type != NULL) elementsToShow << QString("controller-").append(type->shortName().toLower()); switch (m_configSource->getVehicleType()) { case VehicleConfigurationSource::VEHICLE_MULTI: switch (m_configSource->getVehicleSubType()) { case VehicleConfigurationSource::MULTI_ROTOR_TRI_Y: elementsToShow << "tri"; break; case VehicleConfigurationSource::MULTI_ROTOR_QUAD_X: elementsToShow << "quad-x"; break; case VehicleConfigurationSource::MULTI_ROTOR_QUAD_PLUS: elementsToShow << "quad-p"; break; case VehicleConfigurationSource::MULTI_ROTOR_HEXA: elementsToShow << "hexa"; break; case VehicleConfigurationSource::MULTI_ROTOR_HEXA_COAX_Y: elementsToShow << "hexa-y"; break; case VehicleConfigurationSource::MULTI_ROTOR_HEXA_H: elementsToShow << "hexa-h"; break; default: break; } break; case VehicleConfigurationSource::VEHICLE_FIXEDWING: case VehicleConfigurationSource::VEHICLE_HELI: case VehicleConfigurationSource::VEHICLE_SURFACE: default: break; } switch (m_configSource->getInputType()) { case Core::IBoardType::INPUT_TYPE_PWM: elementsToShow << "pwm"; break; case Core::IBoardType::INPUT_TYPE_PPM: elementsToShow << "ppm"; break; case Core::IBoardType::INPUT_TYPE_SBUS: elementsToShow << "sbus"; break; case Core::IBoardType::INPUT_TYPE_DSM: elementsToShow << "satellite"; break; case Core::IBoardType::INPUT_TYPE_HOTTSUMD: case Core::IBoardType::INPUT_TYPE_HOTTSUMH: elementsToShow << "hott"; break; default: break; } setupGraphicsSceneItems(elementsToShow); ui->connectionDiagram->setSceneRect(m_background->boundingRect()); ui->connectionDiagram->fitInView(m_background, Qt::KeepAspectRatio); qDebug() << "Scene complete"; } }
void ConnectionDiagram::setupGraphicsScene() { m_renderer = new QSvgRenderer(); if (QFile::exists(QString(":/setupwizard/resources/connection-diagrams.svg")) && m_renderer->load(QString(":/setupwizard/resources/connection-diagrams.svg")) && m_renderer->isValid()) { m_scene = new QGraphicsScene(this); ui->connectionDiagram->setScene(m_scene); // ui->connectionDiagram->setViewportUpdateMode(QGraphicsView::FullViewportUpdate); m_background = new QGraphicsSvgItem(); m_background->setSharedRenderer(m_renderer); m_background->setElementId("background"); m_background->setOpacity(0); // m_background->setFlags(QGraphicsItem::ItemClipsToShape); m_background->setZValue(-1); m_scene->addItem(m_background); QList<QString> elementsToShow; switch (m_configSource->getControllerType()) { case VehicleConfigurationSource::CONTROLLER_CC: case VehicleConfigurationSource::CONTROLLER_CC3D: elementsToShow << "controller-cc"; break; case VehicleConfigurationSource::CONTROLLER_REVO: elementsToShow << "controller-revo"; break; case VehicleConfigurationSource::CONTROLLER_BRAINYFLY: elementsToShow << "controller-brainyfly"; break; case VehicleConfigurationSource::CONTROLLER_OPLINK: default: elementsToShow << "controller-cc"; break; } switch (m_configSource->getVehicleType()) { case VehicleConfigurationSource::VEHICLE_MULTI: switch (m_configSource->getVehicleSubType()) { case VehicleConfigurationSource::MULTI_ROTOR_TRI_Y: elementsToShow << "tri"; break; case VehicleConfigurationSource::MULTI_ROTOR_QUAD_X: elementsToShow << "quad-x"; break; case VehicleConfigurationSource::MULTI_ROTOR_QUAD_PLUS: elementsToShow << "quad-p"; break; case VehicleConfigurationSource::MULTI_ROTOR_HEXA: elementsToShow << "hexa"; break; case VehicleConfigurationSource::MULTI_ROTOR_HEXA_COAX_Y: elementsToShow << "hexa-y"; break; case VehicleConfigurationSource::MULTI_ROTOR_HEXA_H: elementsToShow << "hexa-h"; break; default: break; } break; case VehicleConfigurationSource::VEHICLE_FIXEDWING: case VehicleConfigurationSource::VEHICLE_HELI: case VehicleConfigurationSource::VEHICLE_SURFACE: default: break; } switch (m_configSource->getInputType()) { case VehicleConfigurationSource::INPUT_PWM: elementsToShow << "pwm"; break; case VehicleConfigurationSource::INPUT_PPM: elementsToShow << "ppm"; break; case VehicleConfigurationSource::INPUT_SBUS: elementsToShow << "sbus"; break; case VehicleConfigurationSource::INPUT_DSMX10: case VehicleConfigurationSource::INPUT_DSMX11: case VehicleConfigurationSource::INPUT_DSM2: elementsToShow << "satellite"; break; default: break; } setupGraphicsSceneItems(elementsToShow); ui->connectionDiagram->setSceneRect(m_background->boundingRect()); ui->connectionDiagram->fitInView(m_background, Qt::KeepAspectRatio); qDebug() << "Scene complete"; } }
void ConnectionDiagram::setupGraphicsScene() { m_renderer = new QSvgRenderer(); if (QFile::exists(QString(FILE_NAME)) && m_renderer->load(QString(FILE_NAME)) && m_renderer->isValid()) { m_scene = new QGraphicsScene(this); ui->connectionDiagram->setScene(m_scene); QList<QString> elementsToShow; switch (m_configSource->getControllerType()) { case VehicleConfigurationSource::CONTROLLER_CC: elementsToShow << "controller-cc"; break; case VehicleConfigurationSource::CONTROLLER_CC3D: elementsToShow << "controller-cc3d"; break; case VehicleConfigurationSource::CONTROLLER_REVO: elementsToShow << "controller-revo"; break; case VehicleConfigurationSource::CONTROLLER_NANO: elementsToShow << "controller-nano"; break; case VehicleConfigurationSource::CONTROLLER_OPLINK: default: elementsToShow << "controller-cc"; break; } switch (m_configSource->getVehicleType()) { case VehicleConfigurationSource::VEHICLE_MULTI: switch (m_configSource->getVehicleSubType()) { case VehicleConfigurationSource::MULTI_ROTOR_TRI_Y: elementsToShow << "tri"; break; case VehicleConfigurationSource::MULTI_ROTOR_QUAD_X: elementsToShow << "quad-x"; break; case VehicleConfigurationSource::MULTI_ROTOR_QUAD_PLUS: elementsToShow << "quad-p"; break; case VehicleConfigurationSource::MULTI_ROTOR_HEXA: elementsToShow << "hexa"; break; case VehicleConfigurationSource::MULTI_ROTOR_HEXA_X: elementsToShow << "hexa-x"; break; case VehicleConfigurationSource::MULTI_ROTOR_HEXA_COAX_Y: elementsToShow << "hexa-y"; break; case VehicleConfigurationSource::MULTI_ROTOR_HEXA_H: elementsToShow << "hexa-h"; break; default: break; } break; case VehicleConfigurationSource::VEHICLE_FIXEDWING: switch (m_configSource->getVehicleSubType()) { case VehicleConfigurationSource::FIXED_WING_DUAL_AILERON: elementsToShow << "aileron"; break; case VehicleConfigurationSource::FIXED_WING_AILERON: elementsToShow << "aileron-single"; break; case VehicleConfigurationSource::FIXED_WING_ELEVON: elementsToShow << "elevon"; break; case VehicleConfigurationSource::FIXED_WING_VTAIL: elementsToShow << "vtail"; break; default: break; } case VehicleConfigurationSource::VEHICLE_SURFACE: switch (m_configSource->getVehicleSubType()) { case VehicleConfigurationSource::GROUNDVEHICLE_CAR: elementsToShow << "car"; break; case VehicleConfigurationSource::GROUNDVEHICLE_DIFFERENTIAL: elementsToShow << "tank"; break; case VehicleConfigurationSource::GROUNDVEHICLE_MOTORCYCLE: elementsToShow << "motorbike"; break; default: break; } case VehicleConfigurationSource::VEHICLE_HELI: default: break; } QString prefix = ""; QString suffix = ""; switch (m_configSource->getControllerType()) { case VehicleConfigurationSource::CONTROLLER_CC: case VehicleConfigurationSource::CONTROLLER_CC3D: prefix = "cc-"; if (m_configSource->getEscType() == VehicleConfigurationSource::ESC_ONESHOT || m_configSource->getEscType() == VehicleConfigurationSource::ESC_SYNCHED) { suffix = "-oneshot"; } break; case VehicleConfigurationSource::CONTROLLER_REVO: prefix = "revo-"; break; case VehicleConfigurationSource::CONTROLLER_NANO: prefix = "nano-"; break; default: break; } switch (m_configSource->getInputType()) { case VehicleConfigurationSource::INPUT_PWM: elementsToShow << QString("%1pwm").arg(prefix); break; case VehicleConfigurationSource::INPUT_PPM: elementsToShow << QString("%1ppm%2").arg(prefix).arg(suffix); break; case VehicleConfigurationSource::INPUT_SBUS: elementsToShow << QString("%1sbus").arg(prefix); break; case VehicleConfigurationSource::INPUT_SRXL: elementsToShow << QString("%1srxl").arg(prefix); break; case VehicleConfigurationSource::INPUT_DSM: elementsToShow << QString("%1satellite").arg(prefix); break; default: break; } if (m_configSource->getVehicleType() == VehicleConfigurationSource::VEHICLE_FIXEDWING && m_configSource->getAirspeedType() != VehicleConfigurationSource::AIRSPEED_ESTIMATE) { switch (m_configSource->getAirspeedType()) { case VehicleConfigurationSource::AIRSPEED_EAGLETREE: elementsToShow << QString("%1eagletree-speed-sensor").arg(prefix); break; case VehicleConfigurationSource::AIRSPEED_MS4525: elementsToShow << QString("%1ms4525-speed-sensor").arg(prefix); break; default: break; } } if (m_configSource->getInputType() == VehicleConfigurationSource::INPUT_SBUS) { prefix = QString("flexi-%1").arg(prefix); } switch (m_configSource->getGpsType()) { case VehicleConfigurationSource::GPS_DISABLED: break; case VehicleConfigurationSource::GPS_NMEA: elementsToShow << QString("%1generic-nmea").arg(prefix); break; case VehicleConfigurationSource::GPS_PLATINUM: elementsToShow << QString("%1OPGPS-v9").arg(prefix); break; case VehicleConfigurationSource::GPS_UBX: elementsToShow << QString("%1OPGPS-v8-ublox").arg(prefix); break; default: break; } setupGraphicsSceneItems(elementsToShow); fitInView(); qDebug() << "Scene complete"; } }