Mercurial > hg > easaier-soundaccess
diff widgets/ConfidenceWidget.cpp @ 108:c107866fd387
first draft to the list result
author | benoitrigolleau |
---|---|
date | Fri, 14 Sep 2007 16:44:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widgets/ConfidenceWidget.cpp Fri Sep 14 16:44:36 2007 +0000 @@ -0,0 +1,75 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + Sound Access + EASAIER client application. + Silogic 2007. Benoit Rigolleau. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#include "ConfidenceWidget.h" +#include <QPainter> +#include <QString> + +ConfidenceWidget::ConfidenceWidget(QWidget *parent, int confidence):QWidget(parent){ + setConfidence(confidence); +} + +void ConfidenceWidget::setConfidence(int confidence){ + m_confidence=confidence; +} +int ConfidenceWidget::confidence(){ + return m_confidence; +} + +void ConfidenceWidget::paintEvent(QPaintEvent *event){ + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing, false); + draw(&painter); + +} + +void ConfidenceWidget::draw(QPainter *painter){ + int marging = 2; + int confidenceHeight = 12; + int labelHeight = confidenceHeight/3; + + QColor niceGreen(QRgb(0xffdbf756)); + QLinearGradient rectRadian(0,0,0,confidenceHeight); + rectRadian.setColorAt(0.0,Qt::black); + rectRadian.setColorAt(0.2,niceGreen); + rectRadian.setColorAt(0.5,Qt::lightGray); + rectRadian.setColorAt(0.8,Qt::white); + rectRadian.setColorAt(1.0,Qt::black); + //painter->setBrush(rectRadian); + + painter->translate(0,height()/2-confidenceHeight/2-labelHeight/2+4); + + // the green rectangle + painter->setPen(QPen(palette().foreground(),1,Qt::NoPen,Qt::RoundCap)); + //painter->setBrush(QBrush(palette().highlight().color(),Qt::SolidPattern)); + painter->setBrush(rectRadian); + painter->drawRect(marging,0,(width()-2*marging)*(m_confidence/100.0),confidenceHeight); + + //the empty rectangle + QPen(palette().foreground(),1,Qt::SolidLine,Qt::RoundCap); + painter->setPen(QPen(palette().foreground(),1,Qt::SolidLine,Qt::RoundCap)); + painter->setBrush(QBrush(palette().highlight().color(),Qt::NoBrush)); + painter->drawRect(marging,0,width()-2*marging,confidenceHeight); + + //the text + QString text_integer; + text_integer = text_integer.setNum(m_confidence); + painter->drawText(marging,-1,QString(text_integer+"%")); + + painter->setPen(QPen(palette().foreground(),1,Qt::SolidLine,Qt::RoundCap)); + int step = (width()-2*marging)/4; + for(int i=1;i<4;i++){ + painter->drawLine(marging+i*step,confidenceHeight,marging+i*step,confidenceHeight+labelHeight); + } +} \ No newline at end of file