annotate widgets/WaitingWidget.cpp @ 109:6249d87b3780

(none)
author benoitrigolleau
date Fri, 14 Sep 2007 16:50:30 +0000
parents c107866fd387
children 1c638a8e9897
rev   line source
benoitrigolleau@108 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
benoitrigolleau@108 2
benoitrigolleau@108 3 /*
benoitrigolleau@108 4 Sound Access
benoitrigolleau@108 5 EASAIER client application.
benoitrigolleau@108 6 Silogic 2007. Benoit Rigolleau.
benoitrigolleau@108 7
benoitrigolleau@108 8 This program is free software; you can redistribute it and/or
benoitrigolleau@108 9 modify it under the terms of the GNU General Public License as
benoitrigolleau@108 10 published by the Free Software Foundation; either version 2 of the
benoitrigolleau@108 11 License, or (at your option) any later version. See the file
benoitrigolleau@108 12 COPYING included with this distribution for more information.
benoitrigolleau@108 13 */
benoitrigolleau@108 14
benoitrigolleau@108 15
benoitrigolleau@108 16 #include "WaitingWidget.h"
benoitrigolleau@108 17 #include <QPainter>
benoitrigolleau@108 18 #include <QLayout>
benoitrigolleau@108 19 #include <QPalette>
benoitrigolleau@108 20
benoitrigolleau@108 21 WaitingWidget::WaitingWidget(QWidget *parent):QWidget(parent){
benoitrigolleau@108 22 m_ind=0;
benoitrigolleau@108 23 }
benoitrigolleau@108 24
benoitrigolleau@108 25 void WaitingWidget::paintEvent(QPaintEvent *event){
benoitrigolleau@108 26
benoitrigolleau@108 27 QWidget::paintEvent(event);
benoitrigolleau@108 28 if(timer.isActive()){
benoitrigolleau@108 29 QPainter painter(this);
benoitrigolleau@108 30 painter.setRenderHint(QPainter::Antialiasing, false);
benoitrigolleau@108 31 draw(&painter);
benoitrigolleau@108 32 }
benoitrigolleau@108 33 }
benoitrigolleau@108 34 void WaitingWidget::draw(QPainter *painter){
benoitrigolleau@108 35 QColor color1(QRgb(0xffdbf756));
benoitrigolleau@108 36 QColor color2 = color1;
benoitrigolleau@108 37 color2.setAlpha(50);
benoitrigolleau@108 38 QLinearGradient rectRadian(0,0,this->width(),0);
benoitrigolleau@108 39
benoitrigolleau@108 40 for(int i=0;i<10;i++){
benoitrigolleau@108 41 if((i+m_ind)%2){
benoitrigolleau@108 42 rectRadian.setColorAt(0.1*i,color1);
benoitrigolleau@108 43 }
benoitrigolleau@108 44 else{
benoitrigolleau@108 45 rectRadian.setColorAt(0.1*i,color2);
benoitrigolleau@108 46 }
benoitrigolleau@108 47 }
benoitrigolleau@108 48 painter->setPen(QPen(palette().foreground(),1,Qt::NoPen,Qt::RoundCap));
benoitrigolleau@108 49 painter->setBrush(rectRadian);
benoitrigolleau@108 50 painter->drawRect(0,0,this->width(), this->height());
benoitrigolleau@108 51 }
benoitrigolleau@108 52
benoitrigolleau@108 53
benoitrigolleau@108 54 void WaitingWidget::setAnimation(bool animate)
benoitrigolleau@108 55 {
benoitrigolleau@108 56 timer.stop();
benoitrigolleau@108 57 if (animate)
benoitrigolleau@108 58 timer.start(200, this);
benoitrigolleau@108 59 }
benoitrigolleau@108 60
benoitrigolleau@108 61 void WaitingWidget::timerEvent(QTimerEvent *e)
benoitrigolleau@108 62 {
benoitrigolleau@108 63 if (e->timerId() == timer.timerId()) {
benoitrigolleau@108 64 setUpdatesEnabled(false);
benoitrigolleau@108 65 m_ind++;
benoitrigolleau@108 66 setUpdatesEnabled(true);
benoitrigolleau@108 67 update();
benoitrigolleau@108 68 }
benoitrigolleau@108 69 }
benoitrigolleau@108 70