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@112
|
37 color1.setAlpha(80);
|
benoitrigolleau@112
|
38 painter->setPen(QPen(palette().foreground(),1,Qt::NoPen,Qt::RoundCap));
|
benoitrigolleau@112
|
39
|
benoitrigolleau@112
|
40 int rectsize = this->width()/20;
|
benoitrigolleau@112
|
41 for(int i=0;i<=20;i++){
|
benoitrigolleau@112
|
42 if((i+m_ind)%2){
|
benoitrigolleau@112
|
43 painter->setBrush(QBrush(color1, Qt::SolidPattern));
|
benoitrigolleau@112
|
44 }
|
benoitrigolleau@112
|
45 else{
|
benoitrigolleau@112
|
46 painter->setBrush(QBrush(Qt::white, Qt::SolidPattern));
|
benoitrigolleau@112
|
47 }
|
benoitrigolleau@112
|
48 painter->drawRect(i*rectsize,0,this->width(), this->height());
|
benoitrigolleau@112
|
49 }
|
benoitrigolleau@112
|
50
|
benoitrigolleau@112
|
51 /*QLinearGradient rectRadian(0,0,this->width(),0);
|
benoitrigolleau@108
|
52
|
benoitrigolleau@108
|
53 for(int i=0;i<10;i++){
|
benoitrigolleau@108
|
54 if((i+m_ind)%2){
|
benoitrigolleau@108
|
55 rectRadian.setColorAt(0.1*i,color1);
|
benoitrigolleau@108
|
56 }
|
benoitrigolleau@108
|
57 else{
|
benoitrigolleau@108
|
58 rectRadian.setColorAt(0.1*i,color2);
|
benoitrigolleau@108
|
59 }
|
benoitrigolleau@108
|
60 }
|
benoitrigolleau@108
|
61 painter->setPen(QPen(palette().foreground(),1,Qt::NoPen,Qt::RoundCap));
|
benoitrigolleau@108
|
62 painter->setBrush(rectRadian);
|
benoitrigolleau@112
|
63 painter->drawRect(0,0,this->width(), this->height());*/
|
benoitrigolleau@108
|
64 }
|
benoitrigolleau@108
|
65
|
benoitrigolleau@108
|
66
|
benoitrigolleau@108
|
67 void WaitingWidget::setAnimation(bool animate)
|
benoitrigolleau@108
|
68 {
|
benoitrigolleau@108
|
69 timer.stop();
|
benoitrigolleau@108
|
70 if (animate)
|
benoitrigolleau@108
|
71 timer.start(200, this);
|
benoitrigolleau@108
|
72 }
|
benoitrigolleau@108
|
73
|
benoitrigolleau@108
|
74 void WaitingWidget::timerEvent(QTimerEvent *e)
|
benoitrigolleau@108
|
75 {
|
benoitrigolleau@108
|
76 if (e->timerId() == timer.timerId()) {
|
benoitrigolleau@108
|
77 setUpdatesEnabled(false);
|
benoitrigolleau@108
|
78 m_ind++;
|
benoitrigolleau@108
|
79 setUpdatesEnabled(true);
|
benoitrigolleau@108
|
80 update();
|
benoitrigolleau@108
|
81 }
|
benoitrigolleau@108
|
82 }
|
benoitrigolleau@108
|
83
|