annotate widgets/WaitingWidget.cpp @ 217:c24fafc45d50

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