2012-01-13 11:52:37 -05:00
/*
* Copyright ( C ) 2012 Felix Geyer < debfx @ fobos . 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 or ( at your option )
* version 3 of the License .
*
* 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 , see < http : //www.gnu.org/licenses/>.
*/
# include "ChangeMasterKeyWidget.h"
# include "ui_ChangeMasterKeyWidget.h"
2012-04-11 07:53:46 -04:00
# include <QtGui/QMessageBox>
2012-01-13 11:52:37 -05:00
# include "keys/FileKey.h"
# include "keys/PasswordKey.h"
ChangeMasterKeyWidget : : ChangeMasterKeyWidget ( QWidget * parent )
: QWidget ( parent )
, m_ui ( new Ui : : ChangeMasterKeyWidget ( ) )
{
m_ui - > setupUi ( this ) ;
connect ( m_ui - > buttonBox , SIGNAL ( accepted ( ) ) , SLOT ( generateKey ( ) ) ) ;
connect ( m_ui - > buttonBox , SIGNAL ( rejected ( ) ) , SLOT ( reject ( ) ) ) ;
}
ChangeMasterKeyWidget : : ~ ChangeMasterKeyWidget ( )
{
}
void ChangeMasterKeyWidget : : clearForms ( )
{
m_key . clear ( ) ;
m_ui - > passwordGroup - > setChecked ( true ) ;
m_ui - > enterPasswordEdit - > setText ( " " ) ;
m_ui - > repeatPasswordEdit - > setText ( " " ) ;
m_ui - > keyFileGroup - > setChecked ( false ) ;
// TODO clear m_ui->keyFileCombo
}
CompositeKey ChangeMasterKeyWidget : : newMasterKey ( )
{
return m_key ;
}
QLabel * ChangeMasterKeyWidget : : headlineLabel ( )
{
return m_ui - > headlineLabel ;
}
void ChangeMasterKeyWidget : : generateKey ( )
{
m_key . clear ( ) ;
if ( m_ui - > passwordGroup - > isChecked ( ) ) {
2012-04-11 07:53:46 -04:00
if ( m_ui - > enterPasswordEdit - > text ( ) = = m_ui - > repeatPasswordEdit - > text ( ) ) {
if ( m_ui - > enterPasswordEdit - > text ( ) . isEmpty ( ) ) {
if ( QMessageBox : : question ( this , tr ( " Question " ) , tr ( " Do you really want to use an empty string as password? " ) , QMessageBox : : Yes | QMessageBox : : No ) ! = QMessageBox : : Yes ) {
return ;
}
}
m_key . addKey ( PasswordKey ( m_ui - > enterPasswordEdit - > text ( ) ) ) ;
}
else {
QMessageBox : : warning ( this , tr ( " Error " ) , tr ( " Different passwords supplied. " ) ) ;
m_ui - > enterPasswordEdit - > setText ( " " ) ;
m_ui - > repeatPasswordEdit - > setText ( " " ) ;
return ;
}
2012-01-13 11:52:37 -05:00
}
if ( m_ui - > keyFileGroup - > isChecked ( ) ) {
FileKey fileKey ;
QString errorMsg ;
2012-04-11 17:40:53 -04:00
if ( ! fileKey . load ( m_ui - > keyFileCombo - > currentText ( ) , & errorMsg ) ) {
2012-01-13 11:52:37 -05:00
// TODO error handling
}
m_key . addKey ( fileKey ) ;
}
Q_EMIT editFinished ( true ) ;
}
void ChangeMasterKeyWidget : : reject ( )
{
Q_EMIT editFinished ( false ) ;
}