/*************************************************************************** * Copyright (C) 2005-2007 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; version 2 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, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ #ifndef PASSWORDDIALOG_H #define PASSWORDDIALOG_H #include #include "ui_PasswordDlg.h" class PasswordDialog : public QDialog, private Ui_PasswordDlg { Q_OBJECT public: enum DlgMode { Mode_Ask, // Normal password entry when opening a database Mode_Set, // Setting password for the first time after creating a new database Mode_Change // Changing the password of a database }; enum DlgFlags { Flag_None = 0x00, Flag_Auto = 0x01 // Dialog was automatically opened on start-up }; enum DlgExit { Exit_Ok=QDialog::Accepted, Exit_Cancel=QDialog::Rejected, Exit_Quit=3 }; typedef bool (KeyFileGenProc)(const QString& filename,QString* error); PasswordDialog(QWidget* parent,DlgMode mode,DlgFlags flags,const QString& filename=QString()); // result functions QString selectedBookmark(); QString keyFile(); QString password(); private slots: void OnOK(); void OnCancel(); void OnButtonBrowse(); void OnButtonQuit(); void OnGenKeyFile(); void OnButtonBack(); void ChangeEchoModeDatabaseKey(); void OnBookmarkTriggered(QAction* action); void OnCheckBoxesChanged(); void done(int r); private: DlgMode Mode; QPixmap BannerPixmap; QString BookmarkFilename; QString Filename; QString Password; QString KeyFile; void setStatePasswordOnly(); void setStateKeyFileOnly(); void setStateBoth(); virtual void paintEvent(QPaintEvent*); }; #endif