benoitrigolleau@108: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ benoitrigolleau@108: benoitrigolleau@108: /* benoitrigolleau@108: Sound Access benoitrigolleau@108: EASAIER client application. benoitrigolleau@108: Silogic 2007. Benoit Rigolleau. benoitrigolleau@108: benoitrigolleau@108: This program is free software; you can redistribute it and/or benoitrigolleau@108: modify it under the terms of the GNU General Public License as benoitrigolleau@108: published by the Free Software Foundation; either version 2 of the benoitrigolleau@108: License, or (at your option) any later version. See the file benoitrigolleau@108: COPYING included with this distribution for more information. benoitrigolleau@108: */ benoitrigolleau@108: benoitrigolleau@108: benoitrigolleau@108: #include "WaitingWidget.h" benoitrigolleau@108: #include benoitrigolleau@108: #include benoitrigolleau@108: #include benoitrigolleau@108: benoitrigolleau@108: WaitingWidget::WaitingWidget(QWidget *parent):QWidget(parent){ benoitrigolleau@108: m_ind=0; benoitrigolleau@220: colors[0]=QRgb(0xfffec000); benoitrigolleau@220: colors[1]=QRgb(0xffdbf756); benoitrigolleau@220: colors[2]=QRgb(0xffb7f151); benoitrigolleau@220: colors[3]=QRgb(0xffb6d1aa); benoitrigolleau@220: colors[4]=QRgb(0xff71b19d); benoitrigolleau@220: colors[5]=QRgb(0xff9dd8ec); benoitrigolleau@220: colors[6]=QRgb(0xff808080); benoitrigolleau@220: colors[7]=QRgb(0xffcccccc); benoitrigolleau@220: benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: void WaitingWidget::paintEvent(QPaintEvent *event){ benoitrigolleau@108: benoitrigolleau@108: QWidget::paintEvent(event); benoitrigolleau@108: if(timer.isActive()){ benoitrigolleau@108: QPainter painter(this); benoitrigolleau@108: painter.setRenderHint(QPainter::Antialiasing, false); benoitrigolleau@108: draw(&painter); benoitrigolleau@108: } benoitrigolleau@108: } benoitrigolleau@108: void WaitingWidget::draw(QPainter *painter){ benoitrigolleau@112: benoitrigolleau@216: QColor color1(QRgb(0x000000)); benoitrigolleau@216: color1.setAlpha(60); benoitrigolleau@216: painter->setBrush(QBrush(color1, Qt::SolidPattern)); benoitrigolleau@216: painter->drawRect(0,0,this->width(), this->height()); benoitrigolleau@216: benoitrigolleau@220: painter->setRenderHint (QPainter::Antialiasing, true ); benoitrigolleau@216: int xm = this->width()/2; benoitrigolleau@216: int ym = this->height()/2; benoitrigolleau@216: painter->translate(xm,ym); benoitrigolleau@216: for(int i=0; i < 8; i++){ benoitrigolleau@220: //QColor penColor(colors[(m_ind+i)%8]); benoitrigolleau@220: QColor penColor(colors[1]); benoitrigolleau@220: penColor.setAlpha(((m_ind+i)%8+1)*30); benoitrigolleau@216: painter->setPen(QPen(penColor,8,Qt::SolidLine,Qt::RoundCap)); benoitrigolleau@216: float angle = (360.0f/8.0f); benoitrigolleau@216: painter->rotate(-angle); benoitrigolleau@216: painter->drawLine(20,0,35,0); benoitrigolleau@112: } benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: benoitrigolleau@108: void WaitingWidget::setAnimation(bool animate) benoitrigolleau@108: { benoitrigolleau@108: timer.stop(); benoitrigolleau@108: if (animate) benoitrigolleau@216: timer.start(50, this); benoitrigolleau@108: } benoitrigolleau@108: benoitrigolleau@108: void WaitingWidget::timerEvent(QTimerEvent *e) benoitrigolleau@108: { benoitrigolleau@108: if (e->timerId() == timer.timerId()) { benoitrigolleau@108: setUpdatesEnabled(false); benoitrigolleau@216: m_ind = (m_ind+1)%8; benoitrigolleau@108: setUpdatesEnabled(true); benoitrigolleau@108: update(); benoitrigolleau@108: } benoitrigolleau@108: } benoitrigolleau@108: