Ice::Int compareRTypes(const RTypeSeq& lhs, const omero::RTypeSeq& rhs) { RTypeSeq val(lhs); RTypeSeq valR(rhs); bool reversed(false); if (valR.size() < val.size()) { reversed = true; RTypeSeq tmp(val); valR = val; val = tmp; } std::pair<RTypeSeq::iterator, RTypeSeq::iterator> idx = std::mismatch( val.begin(), val.end(), valR.begin()); if (idx.first == val.end() && idx.second == valR.end()) { return 0; } bool lessThan = std::lexicographical_compare( val.begin(), val.end(), valR.begin(), valR.end()); if (reversed) { return lessThan ? 1 : -1; } else { return lessThan ? -1 : 1; } }
void VUMeter::paintValue() { QPainter painter(this); painter.setWindow(0, 0, 50, 500); painter.setRenderHint(QPainter::TextAntialiasing); painter.setBrush(Qt::black); painter.drawRect(5, 10, 40, 35); painter.setPen(Qt::gray); painter.drawLine(5, 45, 45, 45); painter.drawLine(45, 10, 45, 45); painter.setPen(QPen(colValue, 1)); QFont valFont("Arial", dimVal, QFont::Bold); painter.setFont(valFont); QRectF valR(5, 10, 40, 40); QString value = QString("%1").arg(val, 0); painter.drawText(valR, Qt::AlignCenter, value); }