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