git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@107 b624d157-de02-0410-bad0-e51aec6abb33master
parent
0e2725ee06
commit
c991307ef8
@ -0,0 +1,38 @@ |
||||
/***************************************************************************
|
||||
* Copyright (C) 2005-2006 by Tarek Saidi * |
||||
* tarek.saidi@arcor.de * |
||||
* * |
||||
* This program is free software; you can redistribute it and/or modify * |
||||
* it under the terms of the GNU General Public License as published by * |
||||
* the Free Software Foundation; either version 2 of the License, or * |
||||
* (at your option) any later version. * |
||||
* * |
||||
* This program is distributed in the hope that it will be useful, * |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
||||
* GNU General Public License for more details. * |
||||
* * |
||||
* You should have received a copy of the GNU General Public License * |
||||
* along with this program; if not, write to the * |
||||
* Free Software Foundation, Inc., * |
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
||||
***************************************************************************/ |
||||
|
||||
#include <QPainter> |
||||
#include "CollectEntropyDlg.h" |
||||
#include "main.h" |
||||
|
||||
CollectEntropyDlg::CollectEntropyDlg(QWidget* parent):QDialog(parent){ |
||||
setupUi(this); |
||||
createBanner(&BannerPixmap,Icon_Settings32x32,tr("Entropy Collection"),width()); |
||||
|
||||
|
||||
|
||||
} |
||||
|
||||
void CollectEntropyDlg::paintEvent(QPaintEvent *event){ |
||||
QDialog::paintEvent(event); |
||||
QPainter painter(this); |
||||
painter.setClipRegion(event->region()); |
||||
painter.drawPixmap(QPoint(0,0),BannerPixmap); |
||||
} |
@ -0,0 +1,42 @@ |
||||
/***************************************************************************
|
||||
* Copyright (C) 2005-2006 by Tarek Saidi * |
||||
* tarek.saidi@arcor.de * |
||||
* * |
||||
* This program is free software; you can redistribute it and/or modify * |
||||
* it under the terms of the GNU General Public License as published by * |
||||
* the Free Software Foundation; either version 2 of the License, or * |
||||
* (at your option) any later version. * |
||||
* * |
||||
* This program is distributed in the hope that it will be useful, * |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
||||
* GNU General Public License for more details. * |
||||
* * |
||||
* You should have received a copy of the GNU General Public License * |
||||
* along with this program; if not, write to the * |
||||
* Free Software Foundation, Inc., * |
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
||||
***************************************************************************/ |
||||
|
||||
#ifndef _COLLECT_ENTROPY_DLG_H_ |
||||
#define _COLLECT_ENTROPY_DLG_H_ |
||||
|
||||
#include "ui_CollectEntropyDlg.h" |
||||
#include <QDialog> |
||||
#include <QPaintEvent> |
||||
|
||||
class CollectEntropyDlg: public QDialog, public Ui_CollectEntropyDlg{ |
||||
Q_OBJECT |
||||
public: |
||||
CollectEntropyDlg(QWidget* parent); |
||||
|
||||
private: |
||||
QPixmap BannerPixmap; |
||||
virtual void paintEvent(QPaintEvent* event); |
||||
|
||||
}; |
||||
|
||||
|
||||
|
||||
|
||||
#endif |
@ -0,0 +1,120 @@ |
||||
<ui version="4.0" > |
||||
<class>CollectEntropyDlg</class> |
||||
<widget class="QDialog" name="CollectEntropyDlg" > |
||||
<property name="geometry" > |
||||
<rect> |
||||
<x>0</x> |
||||
<y>0</y> |
||||
<width>476</width> |
||||
<height>279</height> |
||||
</rect> |
||||
</property> |
||||
<property name="windowTitle" > |
||||
<string>Dialog</string> |
||||
</property> |
||||
<widget class="QLabel" name="label" > |
||||
<property name="geometry" > |
||||
<rect> |
||||
<x>10</x> |
||||
<y>80</y> |
||||
<width>411</width> |
||||
<height>51</height> |
||||
</rect> |
||||
</property> |
||||
<property name="text" > |
||||
<string>Collecting entropy... |
||||
Please move the mouse and/or press some keys until enought entropy for a reseed of the random number generator is collected.</string> |
||||
</property> |
||||
<property name="scaledContents" > |
||||
<bool>false</bool> |
||||
</property> |
||||
<property name="wordWrap" > |
||||
<bool>true</bool> |
||||
</property> |
||||
</widget> |
||||
<widget class="QProgressBar" name="progressBar" > |
||||
<property name="geometry" > |
||||
<rect> |
||||
<x>90</x> |
||||
<y>140</y> |
||||
<width>371</width> |
||||
<height>23</height> |
||||
</rect> |
||||
</property> |
||||
<property name="value" > |
||||
<number>24</number> |
||||
</property> |
||||
<property name="orientation" > |
||||
<enum>Qt::Horizontal</enum> |
||||
</property> |
||||
</widget> |
||||
<widget class="QDialogButtonBox" name="buttonBox" > |
||||
<property name="geometry" > |
||||
<rect> |
||||
<x>20</x> |
||||
<y>240</y> |
||||
<width>441</width> |
||||
<height>32</height> |
||||
</rect> |
||||
</property> |
||||
<property name="orientation" > |
||||
<enum>Qt::Horizontal</enum> |
||||
</property> |
||||
<property name="standardButtons" > |
||||
<set>QDialogButtonBox::Ok</set> |
||||
</property> |
||||
</widget> |
||||
<widget class="WaitAnimationWidget" native="1" name="Animation" > |
||||
<property name="geometry" > |
||||
<rect> |
||||
<x>10</x> |
||||
<y>140</y> |
||||
<width>61</width> |
||||
<height>51</height> |
||||
</rect> |
||||
</property> |
||||
</widget> |
||||
</widget> |
||||
<customwidgets> |
||||
<customwidget> |
||||
<class>WaitAnimationWidget</class> |
||||
<extends>QWidget</extends> |
||||
<header>lib/WaitAnimationWidget.h</header> |
||||
</customwidget> |
||||
</customwidgets> |
||||
<resources/> |
||||
<connections> |
||||
<connection> |
||||
<sender>buttonBox</sender> |
||||
<signal>rejected()</signal> |
||||
<receiver>CollectEntropyDlg</receiver> |
||||
<slot>reject()</slot> |
||||
<hints> |
||||
<hint type="sourcelabel" > |
||||
<x>316</x> |
||||
<y>260</y> |
||||
</hint> |
||||
<hint type="destinationlabel" > |
||||
<x>286</x> |
||||
<y>274</y> |
||||
</hint> |
||||
</hints> |
||||
</connection> |
||||
<connection> |
||||
<sender>buttonBox</sender> |
||||
<signal>accepted()</signal> |
||||
<receiver>CollectEntropyDlg</receiver> |
||||
<slot>accept()</slot> |
||||
<hints> |
||||
<hint type="sourcelabel" > |
||||
<x>248</x> |
||||
<y>254</y> |
||||
</hint> |
||||
<hint type="destinationlabel" > |
||||
<x>157</x> |
||||
<y>274</y> |
||||
</hint> |
||||
</hints> |
||||
</connection> |
||||
</connections> |
||||
</ui> |
@ -0,0 +1,75 @@ |
||||
/***************************************************************************
|
||||
* Copyright (C) 2005-2006 by Tarek Saidi * |
||||
* tarek.saidi@arcor.de * |
||||
* * |
||||
* This program is free software; you can redistribute it and/or modify * |
||||
* it under the terms of the GNU General Public License as published by * |
||||
* the Free Software Foundation; either version 2 of the License, or * |
||||
* (at your option) any later version. * |
||||
* * |
||||
* This program is distributed in the hope that it will be useful, * |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
||||
* GNU General Public License for more details. * |
||||
* * |
||||
* You should have received a copy of the GNU General Public License * |
||||
* along with this program; if not, write to the * |
||||
* Free Software Foundation, Inc., * |
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
||||
***************************************************************************/ |
||||
|
||||
#include <math.h> |
||||
#include <QPainter> |
||||
#include <QRectF> |
||||
#include "WaitAnimationWidget.h" |
||||
|
||||
|
||||
WaitAnimationWidget::WaitAnimationWidget(QWidget* parent):QWidget(parent){ |
||||
speed=60; |
||||
setRefreshRate(25); |
||||
CurAngle=0; |
||||
connect(&timer,SIGNAL(timeout()),this,SLOT(refreshAnimation())); |
||||
timer.start(); |
||||
|
||||
} |
||||
|
||||
void WaitAnimationWidget::setRefreshRate(int fps){ |
||||
DiffAngle=1.0f/((60.0f/(float)speed)*(float)fps); |
||||
timer.setInterval((1.0f/(float)fps)*1000.0f); |
||||
} |
||||
|
||||
void WaitAnimationWidget::refreshAnimation(){ |
||||
CurAngle+=DiffAngle; |
||||
if(CurAngle>1.0f)CurAngle-=1.0f; |
||||
for(int i=0;i<6;i++){ |
||||
float diff=CurAngle-i*0.16666667f; |
||||
if(diff>0.5f) |
||||
diff=1.0f-diff; |
||||
CircSizes[i]=1.0+exp(-10.0f*diff*diff);
|
||||
} |
||||
repaint();
|
||||
} |
||||
|
||||
void WaitAnimationWidget::paintEvent(QPaintEvent* event){ |
||||
QPainter painter(this); |
||||
painter.setRenderHints(QPainter::Antialiasing,true); |
||||
for(int i=0;i<6;i++){ |
||||
float d=CircSizes[i]*6; |
||||
QRectF rect(CircPositions[i].x()-d/2,CircPositions[i].y()-d/2,d,d); |
||||
painter.drawEllipse(rect);
|
||||
|
||||
}
|
||||
} |
||||
|
||||
void WaitAnimationWidget::resizeEvent(QResizeEvent* event){ |
||||
float r; |
||||
if(width()>height()) |
||||
r=height()/2; |
||||
else |
||||
r=width()/2; |
||||
for(int i=0;i<6;i++){ |
||||
CircPositions[i].setX((r-10)*cos(-2.0*3.14159265*(0.16666667*i))+r); |
||||
CircPositions[i].setY((r-10)*sin(-2.0*3.14159265*(0.16666667*i))+r);
|
||||
} |
||||
|
||||
} |
@ -0,0 +1,44 @@ |
||||
/***************************************************************************
|
||||
* Copyright (C) 2005-2006 by Tarek Saidi * |
||||
* tarek.saidi@arcor.de * |
||||
* * |
||||
* This program is free software; you can redistribute it and/or modify * |
||||
* it under the terms of the GNU General Public License as published by * |
||||
* the Free Software Foundation; either version 2 of the License, or * |
||||
* (at your option) any later version. * |
||||
* * |
||||
* This program is distributed in the hope that it will be useful, * |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of * |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
||||
* GNU General Public License for more details. * |
||||
* * |
||||
* You should have received a copy of the GNU General Public License * |
||||
* along with this program; if not, write to the * |
||||
* Free Software Foundation, Inc., * |
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
||||
***************************************************************************/ |
||||
|
||||
#include <QWidget> |
||||
#include <QPaintEvent> |
||||
#include <QResizeEvent> |
||||
#include <QTimer> |
||||
#include <QPointF> |
||||
|
||||
class WaitAnimationWidget:public QWidget{ |
||||
Q_OBJECT |
||||
public: |
||||
WaitAnimationWidget(QWidget* parent); |
||||
void setSpeed(int rpm){speed=rpm;} |
||||
void setRefreshRate(int fps); |
||||
public slots: |
||||
void refreshAnimation(); |
||||
private: |
||||
virtual void paintEvent(QPaintEvent* event); |
||||
virtual void resizeEvent(QResizeEvent* event); |
||||
QTimer timer; |
||||
int speed; |
||||
float CurAngle; |
||||
float DiffAngle; |
||||
float CircSizes[6]; |
||||
QPointF CircPositions[6]; |
||||
}; |
Reference in new issue