kmail

identitydialog.h
00001 /*  -*- mode: C++; c-file-style: "gnu" -*-
00002     identitydialog.h
00003 
00004     This file is part of KMail, the KDE mail client.
00005     Copyright (c) 2002 Marc Mutz <mutz@kde.org>
00006 
00007     KMail is free software; you can redistribute it and/or modify it
00008     under the terms of the GNU General Public License, version 2, as
00009     published by the Free Software Foundation.
00010 
00011     KMail is distributed in the hope that it will be useful, but
00012     WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014     General Public License for more details.
00015 
00016     You should have received a copy of the GNU General Public License
00017     along with this program; if not, write to the Free Software
00018     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00019 
00020     In addition, as a special exception, the copyright holders give
00021     permission to link the code of this program with any edition of
00022     the TQt library by Trolltech AS, Norway (or with modified versions
00023     of TQt that use the same license as TQt), and distribute linked
00024     combinations including the two.  You must obey the GNU General
00025     Public License in all respects for all of the code used other than
00026     TQt.  If you modify this file, you may extend this exception to
00027     your version of the file, but you are not obligated to do so.  If
00028     you do not wish to do so, delete this exception statement from
00029     your version.
00030 */
00031 
00032 #ifndef __KMAIL_IDENTITYDIALOG_H__
00033 #define __KMAIL_IDENTITYDIALOG_H__
00034 
00035 #include <kdialogbase.h>
00036 
00037 
00038 class TQLineEdit;
00039 class TQCheckBox;
00040 class TQComboBox;
00041 class TQString;
00042 class TQStringList;
00043 class SimpleStringListEditor;
00044 class TemplatesConfiguration;
00045 class KPushButton;
00046 namespace Kleo {
00047   class EncryptionKeyRequester;
00048   class SigningKeyRequester;
00049 }
00050 namespace KPIM {
00051   class Identity;
00052 }
00053 namespace KMail {
00054   class SignatureConfigurator;
00055   class XFaceConfigurator;
00056   class DictionaryComboBox;
00057   class FolderRequester;
00058 }
00059 
00060 namespace KMail {
00061 
00062   class IdentityDialog : public KDialogBase {
00063     Q_OBJECT
00064   
00065   public:
00066     IdentityDialog( TQWidget * parent=0, const char * name = 0 );
00067     virtual ~IdentityDialog();
00068 
00069     void setIdentity( /*_not_ const*/ KPIM::Identity & ident );
00070 
00071     void updateIdentity( KPIM::Identity & ident );
00072 
00073   public slots:
00074     void slotUpdateTransportCombo( const TQStringList & sl );
00075 
00076   protected slots:
00077     void slotAboutToShow( TQWidget * w );
00079     void slotOk();
00080     // copy default templates to identity templates
00081     void slotCopyGlobal();
00082 
00083   private:
00084     bool checkFolderExists( const TQString & folder, const TQString & msg );
00085     bool validateAddresses( const TQString & addresses );
00086 
00087   protected:
00088     // "general" tab:
00089     TQLineEdit                    *mNameEdit;
00090     TQLineEdit                    *mOrganizationEdit;
00091     TQLineEdit                    *mEmailEdit;
00092     SimpleStringListEditor       *mAliasEdit;
00093     // "cryptography" tab:
00094     TQWidget                      *mCryptographyTab;
00095     Kleo::SigningKeyRequester    *mPGPSigningKeyRequester;
00096     Kleo::EncryptionKeyRequester *mPGPEncryptionKeyRequester;
00097     Kleo::SigningKeyRequester    *mSMIMESigningKeyRequester;
00098     Kleo::EncryptionKeyRequester *mSMIMEEncryptionKeyRequester;
00099     TQComboBox                    *mPreferredCryptoMessageFormat;
00100     // "advanced" tab:
00101     TQLineEdit                    *mReplyToEdit;
00102     TQLineEdit                    *mBccEdit;
00103     KMail::DictionaryComboBox    *mDictionaryCombo;
00104     FolderRequester              *mFccCombo;
00105     FolderRequester              *mDraftsCombo;
00106     FolderRequester              *mTemplatesCombo;
00107     TQCheckBox                    *mTransportCheck;
00108     TQComboBox                    *mTransportCombo; // should be a KMTransportCombo...
00109     // "templates" tab:
00110     TemplatesConfiguration       *mWidget;
00111     TQCheckBox                    *mCustom;
00112     KPushButton                  *mCopyGlobal;
00113     // "signature" tab:
00114     KMail::SignatureConfigurator *mSignatureConfigurator;
00115     // "X-Face" tab:
00116     KMail::XFaceConfigurator *mXFaceConfigurator;
00117   };
00118 
00119 } // namespace KMail
00120 
00121 #endif // __KMAIL_IDENTITYDIALOG_H__