QString ModelPrinter::printInputLine(const ExpoData & input) { QString str = " "; switch (input.mode) { case (1): str += "<- "; break; case (2): str += "-> "; break; default: str += " "; break; } if (firmware->getCapability(VirtualInputs)) { str += Qt::escape(input.srcRaw.toString(&model)); } str += " " + Qt::escape(tr("Weight")) + QString("(%1)").arg(getGVarString(input.weight,true)); if (input.curve.value) str += " " + Qt::escape(input.curve.toString()); QString flightModesStr = printFlightModes(input.flightModes); if (!flightModesStr.isEmpty()) str += " " + Qt::escape(flightModesStr); if (input.swtch.type != SWITCH_TYPE_NONE) str += " " + Qt::escape(tr("Switch")) + QString("(%1)").arg(input.swtch.toString()); if (firmware->getCapability(VirtualInputs)) { if (input.carryTrim>0) str += " " + Qt::escape(tr("NoTrim")); else if (input.carryTrim<0) str += " " + Qt::escape(RawSource(SOURCE_TYPE_TRIM, (-(input.carryTrim)-1)).toString(&model)); } if (firmware->getCapability(HasExpoNames) && input.name[0]) str += Qt::escape(QString(" [%1]").arg(input.name)); return str; }
QString ModelPrinter::printMixerLine(const MixData & mix, bool showMultiplex, int highlightedSource) { QString str = " "; if (showMultiplex) { switch(mix.mltpx) { case (1): str += "*="; break; case (2): str += ":="; break; default: str += "+="; break; } } else { str += " "; } // highlight source if needed QString source = Qt::escape(mix.srcRaw.toString(&model)); if ( (mix.srcRaw.type == SOURCE_TYPE_CH) && (mix.srcRaw.index+1 == (int)highlightedSource) ) { source = "<b>" + source + "</b>"; } str += " " + source; str += " " + Qt::escape(tr("Weight(%1)").arg(getGVarString(mix.weight, true))); QString flightModesStr = printFlightModes(mix.flightModes); if (!flightModesStr.isEmpty()) str += " " + Qt::escape(flightModesStr); if (mix.swtch.type != SWITCH_TYPE_NONE) str += " " + Qt::escape(tr("Switch(%1)").arg(mix.swtch.toString())); if (mix.carryTrim > 0) str += " " + Qt::escape(tr("NoTrim")); else if (mix.carryTrim < 0) str += " " + RawSource(SOURCE_TYPE_TRIM, (-(mix.carryTrim)-1)).toString(&model); if (firmware->getCapability(HasNoExpo) && mix.noExpo) str += " " + Qt::escape(tr("No DR/Expo")); if (mix.sOffset) str += " " + Qt::escape(tr("Offset(%1)").arg(getGVarString(mix.sOffset))); if (mix.curve.value) str += " " + Qt::escape(mix.curve.toString()); int scale = firmware->getCapability(SlowScale); if (scale == 0) scale = 1; if (mix.delayDown || mix.delayUp) str += " " + Qt::escape(tr("Delay(u%1:d%2)").arg((double)mix.delayUp/scale).arg((double)mix.delayDown/scale)); if (mix.speedDown || mix.speedUp) str += " " + Qt::escape(tr("Slow(u%1:d%2)").arg((double)mix.speedUp/scale).arg((double)mix.speedDown/scale)); if (mix.mixWarn) str += " " + Qt::escape(tr("Warn(%1)").arg(mix.mixWarn)); if (firmware->getCapability(HasMixerNames) && mix.name[0]) str += Qt::escape(QString(" [%1]").arg(mix.name)); return str; }
QString MultiModelPrinter::print(QTextDocument * document) { if (document) document->clear(); QString str = "<table border='1' cellspacing='0' cellpadding='3' width='100%' style='font-family: monospace;'>"; str += printSetup(); if (firmware->getCapability(FlightModes)) str += printFlightModes(); str += printInputs(); str += printMixers(); str += printLimits(); str += printCurves(document); if (firmware->getCapability(Gvars) && !firmware->getCapability(GvarsFlightModes)) str += printGvars(); str += printLogicalSwitches(); str += printCustomFunctions(); str += printTelemetry(); str += "</table>"; return str; }