benoitrigolleau@108: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ benoitrigolleau@108: benoitrigolleau@108: /* benoitrigolleau@108: Sound Access benoitrigolleau@108: EASAIER client application. benoitrigolleau@108: Silogic 2007. Benoit Rigolleau. benoitrigolleau@108: benoitrigolleau@108: This program is free software; you can redistribute it and/or benoitrigolleau@108: modify it under the terms of the GNU General Public License as benoitrigolleau@108: published by the Free Software Foundation; either version 2 of the benoitrigolleau@108: License, or (at your option) any later version. See the file benoitrigolleau@108: COPYING included with this distribution for more information. benoitrigolleau@108: */ benoitrigolleau@108: benoitrigolleau@108: #include "ConfidenceWidget.h" benoitrigolleau@108: #include benoitrigolleau@108: #include benoitrigolleau@108: benoitrigolleau@108: ConfidenceWidget::ConfidenceWidget(QWidget *parent, int confidence):QWidget(parent){ benoitrigolleau@108: setConfidence(confidence); benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: void ConfidenceWidget::setConfidence(int confidence){ benoitrigolleau@108: m_confidence=confidence; benoitrigolleau@108: } benoitrigolleau@108: int ConfidenceWidget::confidence(){ benoitrigolleau@108: return m_confidence; benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: void ConfidenceWidget::paintEvent(QPaintEvent *event){ benoitrigolleau@108: QPainter painter(this); benoitrigolleau@108: painter.setRenderHint(QPainter::Antialiasing, false); benoitrigolleau@108: draw(&painter); benoitrigolleau@108: benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: void ConfidenceWidget::draw(QPainter *painter){ benoitrigolleau@108: int marging = 2; benoitrigolleau@108: int confidenceHeight = 12; benoitrigolleau@108: int labelHeight = confidenceHeight/3; benoitrigolleau@108: benoitrigolleau@108: QColor niceGreen(QRgb(0xffdbf756)); benoitrigolleau@108: QLinearGradient rectRadian(0,0,0,confidenceHeight); benoitrigolleau@108: rectRadian.setColorAt(0.0,Qt::black); benoitrigolleau@108: rectRadian.setColorAt(0.2,niceGreen); benoitrigolleau@108: rectRadian.setColorAt(0.5,Qt::lightGray); benoitrigolleau@108: rectRadian.setColorAt(0.8,Qt::white); benoitrigolleau@108: rectRadian.setColorAt(1.0,Qt::black); benoitrigolleau@108: //painter->setBrush(rectRadian); benoitrigolleau@108: benoitrigolleau@108: painter->translate(0,height()/2-confidenceHeight/2-labelHeight/2+4); benoitrigolleau@108: benoitrigolleau@108: // the green rectangle benoitrigolleau@108: painter->setPen(QPen(palette().foreground(),1,Qt::NoPen,Qt::RoundCap)); benoitrigolleau@108: //painter->setBrush(QBrush(palette().highlight().color(),Qt::SolidPattern)); benoitrigolleau@108: painter->setBrush(rectRadian); benoitrigolleau@108: painter->drawRect(marging,0,(width()-2*marging)*(m_confidence/100.0),confidenceHeight); benoitrigolleau@108: benoitrigolleau@108: //the empty rectangle benoitrigolleau@108: QPen(palette().foreground(),1,Qt::SolidLine,Qt::RoundCap); benoitrigolleau@108: painter->setPen(QPen(palette().foreground(),1,Qt::SolidLine,Qt::RoundCap)); benoitrigolleau@108: painter->setBrush(QBrush(palette().highlight().color(),Qt::NoBrush)); benoitrigolleau@108: painter->drawRect(marging,0,width()-2*marging,confidenceHeight); benoitrigolleau@108: benoitrigolleau@108: //the text benoitrigolleau@108: QString text_integer; benoitrigolleau@108: text_integer = text_integer.setNum(m_confidence); benoitrigolleau@108: painter->drawText(marging,-1,QString(text_integer+"%")); benoitrigolleau@108: benoitrigolleau@108: painter->setPen(QPen(palette().foreground(),1,Qt::SolidLine,Qt::RoundCap)); benoitrigolleau@108: int step = (width()-2*marging)/4; benoitrigolleau@108: for(int i=1;i<4;i++){ benoitrigolleau@108: painter->drawLine(marging+i*step,confidenceHeight,marging+i*step,confidenceHeight+labelHeight); benoitrigolleau@108: } benoitrigolleau@108: }