kmail
kmfolderdia.h00001
00032 #ifndef __KMFOLDERDIA
00033 #define __KMFOLDERDIA
00034
00035 #include <kdialogbase.h>
00036 #include "configuredialog_p.h"
00037 #include <qvaluevector.h>
00038
00039 class QCheckBox;
00040 class QPushButton;
00041 class QLineEdit;
00042 class QListBox;
00043 class QComboBox;
00044 class KMFolder;
00045 class KMFolderTreeItem;
00046 class KMFolderDir;
00047 class KIntNumInput;
00048 class KIconButton;
00049 class KEditListBox;
00050 namespace KPIM { class IdentityCombo; }
00051 class KMFolderDialog;
00052 class KMFolderTree;
00053 template <typename T> class QGuardedPtr;
00054 class TemplatesConfiguration;
00055 class KPushButton;
00056
00057 namespace KMail {
00058 class FolderRequester;
00070 class FolderDiaTab : public QWidget
00071 {
00072 Q_OBJECT
00073 public:
00074 FolderDiaTab( QWidget *parent=0, const char* name=0 )
00075 : QWidget( parent, name ) {}
00076
00077 virtual void load() = 0;
00078
00083 virtual bool save() = 0;
00084
00085 enum AcceptStatus { Accepted, Canceled, Delayed };
00090 virtual AcceptStatus accept() {
00091 return save() ? Accepted : Canceled;
00092 }
00093
00094 signals:
00097 void readyForAccept();
00098
00101 void cancelAccept();
00102
00104 void changed(bool);
00105 };
00106
00111 class FolderDiaGeneralTab : public FolderDiaTab
00112 {
00113 Q_OBJECT
00114
00115 public:
00116 FolderDiaGeneralTab( KMFolderDialog* dlg,
00117 const QString& aName,
00118 QWidget* parent, const char* name = 0 );
00119
00120 virtual void load();
00121 virtual bool save();
00122
00123 private slots:
00124 void slotChangeIcon( QString icon );
00125
00126
00127
00128
00129 void slotFolderNameChanged( const QString& );
00130 void slotFolderContentsSelectionChanged( int );
00131
00132 private:
00133 void initializeWithValuesFromFolder( KMFolder* folder );
00134
00135 private:
00136 QComboBox *mShowSenderReceiverComboBox;
00137 QComboBox *mContentsComboBox;
00138 QComboBox *mIncidencesForComboBox;
00139 QLabel *mNormalIconLabel;
00140 KIconButton *mNormalIconButton;
00141 QLabel *mUnreadIconLabel;
00142 KIconButton *mUnreadIconButton;
00143 QCheckBox *mIconsCheckBox;
00144 QCheckBox *mNewMailCheckBox;
00145 QCheckBox *mNotifyOnNewMailCheckBox;
00146 QCheckBox *mKeepRepliesInSameFolderCheckBox;
00147 KLineEdit *mNameEdit;
00148
00149 KPIM::IdentityCombo *mIdentityComboBox;
00150
00151 KMFolderDialog* mDlg;
00152 bool mIsLocalSystemFolder;
00153 };
00154
00159 class FolderDiaTemplatesTab : public FolderDiaTab
00160 {
00161 Q_OBJECT
00162
00163 public:
00164 FolderDiaTemplatesTab( KMFolderDialog *dlg, QWidget *parent );
00165
00166 virtual void load();
00167 virtual bool save();
00168
00169 public slots:
00170 void slotEmitChanged();
00171
00172 void slotCopyGlobal();
00173
00174 private:
00175 void initializeWithValuesFromFolder( KMFolder* folder );
00176
00177 private:
00178 QCheckBox* mCustom;
00179 TemplatesConfiguration* mWidget;
00180 KPushButton* mCopyGlobal;
00181 KMFolder* mFolder;
00182 uint mIdentity;
00183
00184 KMFolderDialog* mDlg;
00185 bool mIsLocalSystemFolder;
00186 };
00187
00188 }
00189
00193 class KMFolderDialog : public KDialogBase
00194 {
00195 Q_OBJECT
00196
00197 public:
00198 KMFolderDialog( KMFolder *folder, KMFolderDir *aFolderDir,
00199 KMFolderTree* parent, const QString& caption,
00200 const QString& name = QString::null );
00201
00202 KMFolder* folder() const { return mFolder; }
00203 void setFolder( KMFolder* folder );
00204
00205
00206 bool isNewFolder() const { return mIsNewFolder; }
00207
00208 KMFolderDir* folderDir() const { return mFolderDir; }
00209 typedef QValueList<QGuardedPtr<KMFolder> > FolderList;
00210
00211 KMFolder* parentFolder() const { return mParentFolder; }
00212
00213 KMFolderTree* folderTree() const { return mFolderTree; }
00214
00215 protected slots:
00216 void slotChanged( bool );
00217 virtual void slotOk();
00218 virtual void slotApply();
00219
00220 void slotReadyForAccept();
00221 void slotCancelAccept();
00222
00223 private:
00224 void addTab( KMail::FolderDiaTab* tab );
00225
00226 private:
00227
00228 QGuardedPtr<KMFolder> mFolder;
00229 QGuardedPtr<KMFolderDir> mFolderDir;
00230 QGuardedPtr<KMFolder> mParentFolder;
00231
00232 bool mIsNewFolder;
00233
00234 QValueVector<KMail::FolderDiaTab*> mTabs;
00235 int mDelayedSavingTabs;
00236 KMFolderTree* mFolderTree;
00237 };
00238
00239 #endif
00240
|