kmail Library API Documentation

accountdialog.h

00001 /*
00002  *   kmail: KDE mail client
00003  *   This file: Copyright (C) 2000 Espen Sand, espen@kde.org
00004  *
00005  *   This program is free software; you can redistribute it and/or modify
00006  *   it under the terms of the GNU General Public License as published by
00007  *   the Free Software Foundation; either version 2 of the License, or
00008  *   (at your option) any later version.
00009  *
00010  *   This program is distributed in the hope that it will be useful,
00011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  *   GNU General Public License for more details.
00014  *
00015  *   You should have received a copy of the GNU General Public License
00016  *   along with this program; if not, write to the Free Software
00017  *   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00018  *
00019  */
00020 
00021 #ifndef _ACCOUNT_DIALOG_H_
00022 #define _ACCOUNT_DIALOG_H_
00023 
00024 #include <kdialogbase.h>
00025 #include "kmfoldercombobox.h"
00026 
00027 class QCheckBox;
00028 class QComboBox;
00029 class QPushButton;
00030 class QLabel;
00031 class QLineEdit;
00032 class QRadioButton;
00033 class KIntNumInput;
00034 class KMAccount;
00035 class KMFolder;
00036 class KMServerTest;
00037 class QButtonGroup;
00038 namespace KMail {
00039   class SieveConfigEditor;
00040 }
00041 
00042 class AccountDialog : public KDialogBase
00043 {
00044   Q_OBJECT
00045   
00046   public:
00047     AccountDialog( const QString & caption, KMAccount *account, 
00048            QWidget *parent=0, const char *name=0, bool modal=true );
00049     virtual ~AccountDialog();
00050   private:
00051     struct LocalWidgets
00052     {
00053       QLabel       *titleLabel;
00054       QLineEdit    *nameEdit;
00055       QComboBox    *locationEdit;
00056       QRadioButton *lockMutt;
00057       QRadioButton *lockMuttPriv;
00058       QRadioButton *lockProcmail;
00059       QComboBox    *procmailLockFileName;
00060       QRadioButton *lockFcntl;
00061       QRadioButton *lockNone;
00062       QLineEdit    *precommand;
00063 #if 0
00064       QCheckBox    *resourceCheck;
00065       QPushButton  *resourceClearButton;
00066       QPushButton  *resourceClearPastButton;
00067 #endif
00068       QCheckBox    *excludeCheck;
00069       QCheckBox    *intervalCheck;
00070       QLabel       *intervalLabel;
00071       KIntNumInput *intervalSpin;
00072       QComboBox    *folderCombo;
00073       QComboBox    *identityCombo;
00074     };
00075 
00076     struct MaildirWidgets
00077     {
00078       QLabel       *titleLabel;
00079       QLineEdit    *nameEdit;
00080       QComboBox    *locationEdit;
00081       QLineEdit    *precommand;
00082 #if 0
00083       QCheckBox    *resourceCheck;
00084       QPushButton  *resourceClearButton;
00085       QPushButton  *resourceClearPastButton;
00086 #endif
00087       QCheckBox    *excludeCheck;
00088       QCheckBox    *intervalCheck;
00089       QLabel       *intervalLabel;
00090       KIntNumInput *intervalSpin;
00091       QComboBox    *folderCombo;
00092       QComboBox    *identityCombo;
00093     };
00094 
00095     struct PopWidgets
00096     {
00097       QLabel       *titleLabel;
00098       QLineEdit    *nameEdit;
00099       QLineEdit    *loginEdit;
00100       QLineEdit    *passwordEdit;
00101       QLineEdit    *hostEdit;
00102       QLineEdit    *portEdit;
00103       QLineEdit    *precommand;
00104       QButtonGroup *encryptionGroup;
00105       QRadioButton *encryptionNone;
00106       QRadioButton *encryptionSSL;
00107       QRadioButton *encryptionTLS;
00108       QButtonGroup *authGroup;
00109       QRadioButton *authUser;
00110       QRadioButton *authPlain;
00111       QRadioButton *authLogin;
00112       QRadioButton *authCRAM_MD5;
00113       QRadioButton *authDigestMd5;
00114       QRadioButton *authAPOP;
00115       QPushButton  *checkCapabilities;
00116       QCheckBox    *usePipeliningCheck;
00117       QCheckBox    *storePasswordCheck;
00118       QCheckBox    *deleteMailCheck;
00119       QCheckBox    *retriveAllCheck;
00120 #if 0
00121       QCheckBox    *resourceCheck;
00122       QPushButton  *resourceClearButton;
00123       QPushButton  *resourceClearPastButton;
00124 #endif
00125       QCheckBox    *excludeCheck;
00126       QCheckBox    *intervalCheck;
00127       QCheckBox    *filterOnServerCheck;
00128       QLabel       *intervalLabel;
00129       KIntNumInput *intervalSpin;
00130       KIntNumInput *filterOnServerSizeSpin;
00131       QComboBox    *folderCombo;
00132       QComboBox    *identityCombo;
00133     };
00134 
00135     struct ImapWidgets
00136     {
00137       QLabel       *titleLabel;
00138       QLineEdit    *nameEdit;
00139       QLineEdit    *loginEdit;
00140       QLineEdit    *passwordEdit;
00141       QLineEdit    *hostEdit;
00142       QLineEdit    *portEdit;
00143       QLineEdit    *prefixEdit;
00144 #if 0
00145       QCheckBox    *resourceCheck;
00146       QPushButton  *resourceClearButton;
00147       QPushButton  *resourceClearPastButton;
00148 #endif
00149       QCheckBox    *autoExpungeCheck;     // only used by normal (online) IMAP
00150       QCheckBox    *hiddenFoldersCheck;
00151       QCheckBox    *subscribedFoldersCheck;
00152       QCheckBox    *loadOnDemandCheck;
00153       QCheckBox    *storePasswordCheck;
00154       QCheckBox    *progressDialogCheck;  // only used by Disconnected IMAP
00155       QCheckBox    *excludeCheck;
00156       QCheckBox    *intervalCheck;
00157       QLabel       *intervalLabel;
00158       KIntNumInput *intervalSpin;
00159       QButtonGroup *encryptionGroup;
00160       QRadioButton *encryptionNone;
00161       QRadioButton *encryptionSSL;
00162       QRadioButton *encryptionTLS;
00163       QButtonGroup *authGroup;
00164       QRadioButton *authUser;
00165       QRadioButton *authPlain;
00166       QRadioButton *authLogin;
00167       QRadioButton *authCramMd5;
00168       QRadioButton *authDigestMd5;
00169       QRadioButton *authAnonymous;
00170       QPushButton  *checkCapabilities;
00171             KMFolderComboBox  *trashCombo;
00172     };
00173 
00174   private slots:
00175     virtual void slotOk();
00176     void slotLocationChooser();
00177     void slotMaildirChooser();
00178     void slotEnablePopInterval( bool state );
00179     void slotEnableImapInterval( bool state );
00180     void slotEnableLocalInterval( bool state );
00181     void slotEnableMaildirInterval( bool state );
00182     void slotFontChanged();
00183     void slotPipeliningClicked();
00184     void slotPopEncryptionChanged(int);
00185     void slotImapEncryptionChanged(int);
00186     void slotCheckPopCapabilities();
00187     void slotCheckImapCapabilities();
00188     void slotPopCapabilities(const QStringList &);
00189     void slotImapCapabilities(const QStringList &);
00190 #if 0
00191     // Moc doesn't understand #if 0, so they are also commented out
00192     // void slotClearResourceAllocations();
00193     // void slotClearPastResourceAllocations();
00194 #endif
00195 
00196   private:
00197     void makeLocalAccountPage();
00198     void makeMaildirAccountPage();
00199     void makePopAccountPage();
00200     void makeImapAccountPage( bool disconnected = false );
00201     void setupSettings();
00202     void saveSettings();
00203     void checkHighest(QButtonGroup *);
00204 
00205   private:
00206     LocalWidgets mLocal;
00207     MaildirWidgets mMaildir;
00208     PopWidgets   mPop;
00209     ImapWidgets  mImap;
00210     KMAccount    *mAccount;
00211     QValueList<QGuardedPtr<KMFolder> > mFolderList;
00212     QStringList  mFolderNames;
00213     KMServerTest *mServerTest;
00214     KMail::SieveConfigEditor *mSieveConfigEditor;
00215     QRegExpValidator *mValidator;
00216 };
00217 
00218 
00219 #endif
KDE Logo
This file is part of the documentation for kmail Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat May 1 11:37:13 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003