annotate widgets/WaitingWidget.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents 7b2a7880a501
children
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@220 23 colors[0]=QRgb(0xfffec000);
benoitrigolleau@220 24 colors[1]=QRgb(0xffdbf756);
benoitrigolleau@220 25 colors[2]=QRgb(0xffb7f151);
benoitrigolleau@220 26 colors[3]=QRgb(0xffb6d1aa);
benoitrigolleau@220 27 colors[4]=QRgb(0xff71b19d);
benoitrigolleau@220 28 colors[5]=QRgb(0xff9dd8ec);
benoitrigolleau@220 29 colors[6]=QRgb(0xff808080);
benoitrigolleau@220 30 colors[7]=QRgb(0xffcccccc);
benoitrigolleau@220 31
benoitrigolleau@108 32 }
benoitrigolleau@108 33
benoitrigolleau@108 34 void WaitingWidget::paintEvent(QPaintEvent *event){
benoitrigolleau@108 35
benoitrigolleau@108 36 QWidget::paintEvent(event);
benoitrigolleau@108 37 if(timer.isActive()){
benoitrigolleau@108 38 QPainter painter(this);
benoitrigolleau@108 39 painter.setRenderHint(QPainter::Antialiasing, false);
benoitrigolleau@108 40 draw(&painter);
benoitrigolleau@108 41 }
benoitrigolleau@108 42 }
benoitrigolleau@108 43 void WaitingWidget::draw(QPainter *painter){
benoitrigolleau@112 44
benoitrigolleau@216 45 QColor color1(QRgb(0x000000));
benoitrigolleau@216 46 color1.setAlpha(60);
benoitrigolleau@216 47 painter->setBrush(QBrush(color1, Qt::SolidPattern));
benoitrigolleau@216 48 painter->drawRect(0,0,this->width(), this->height());
benoitrigolleau@216 49
benoitrigolleau@220 50 painter->setRenderHint (QPainter::Antialiasing, true );
benoitrigolleau@216 51 int xm = this->width()/2;
benoitrigolleau@216 52 int ym = this->height()/2;
benoitrigolleau@216 53 painter->translate(xm,ym);
benoitrigolleau@216 54 for(int i=0; i < 8; i++){
benoitrigolleau@220 55 //QColor penColor(colors[(m_ind+i)%8]);
benoitrigolleau@220 56 QColor penColor(colors[1]);
benoitrigolleau@220 57 penColor.setAlpha(((m_ind+i)%8+1)*30);
benoitrigolleau@216 58 painter->setPen(QPen(penColor,8,Qt::SolidLine,Qt::RoundCap));
benoitrigolleau@216 59 float angle = (360.0f/8.0f);
benoitrigolleau@216 60 painter->rotate(-angle);
benoitrigolleau@216 61 painter->drawLine(20,0,35,0);
benoitrigolleau@112 62 }
benoitrigolleau@108 63 }
benoitrigolleau@108 64
benoitrigolleau@108 65
benoitrigolleau@108 66 void WaitingWidget::setAnimation(bool animate)
benoitrigolleau@108 67 {
benoitrigolleau@108 68 timer.stop();
benoitrigolleau@108 69 if (animate)
benoitrigolleau@216 70 timer.start(50, this);
benoitrigolleau@108 71 }
benoitrigolleau@108 72
benoitrigolleau@108 73 void WaitingWidget::timerEvent(QTimerEvent *e)
benoitrigolleau@108 74 {
benoitrigolleau@108 75 if (e->timerId() == timer.timerId()) {
benoitrigolleau@108 76 setUpdatesEnabled(false);
benoitrigolleau@216 77 m_ind = (m_ind+1)%8;
benoitrigolleau@108 78 setUpdatesEnabled(true);
benoitrigolleau@108 79 update();
benoitrigolleau@108 80 }
benoitrigolleau@108 81 }
benoitrigolleau@108 82