kmail
folderdialogacltab.h
Go to the documentation of this file.00001
00032 #ifndef FOLDERDIALOGACLTAB_H
00033 #define FOLDERDIALOGACLTAB_H
00034
00035 #include "kmfolderdialog.h"
00036 #include "kmfoldertype.h"
00037 class KJob;
00038 class KMFolderImap;
00039 class KPushButton;
00040 class QStackedWidget;
00041 class KHBox;
00042 class QGroupBox;
00043 class QButtonGroup;
00044 class QTreeWidget;
00045 class QTreeWidgetItem;
00046 class QLabel;
00047 namespace KIO { class Job; }
00048
00049 namespace KMail {
00050
00051 enum IMAPUserIdFormat { FullEmail, UserName };
00052
00053 struct ACLListEntry;
00054 typedef QVector<KMail::ACLListEntry> ACLList;
00055
00056 class ImapAccountBase;
00057
00062 class ACLEntryDialog :public KDialog {
00063 Q_OBJECT
00064
00065 public:
00066 ACLEntryDialog( IMAPUserIdFormat userIdFormat, const QString& caption, QWidget* parent );
00067
00068 void setValues( const QString& userId, unsigned int permissions );
00069
00070 QString userId() const;
00071 QStringList userIds() const;
00072 unsigned int permissions() const;
00073
00074 private slots:
00075 void slotSelectAddresses();
00076 void slotChanged();
00077
00078 private:
00079 QButtonGroup* mButtonGroup;
00080 KLineEdit* mUserIdLineEdit;
00081 IMAPUserIdFormat mUserIdFormat;
00082 };
00083
00088 class FolderDialogACLTab : public FolderDialogTab
00089 {
00090 Q_OBJECT
00091
00092 public:
00093 FolderDialogACLTab( KMFolderDialog* dlg, QWidget* parent );
00094
00095 virtual void load();
00096 virtual bool save();
00097 virtual AcceptStatus accept();
00098
00099 static bool supports( KMFolder* refFolder );
00100
00101 private slots:
00102
00103 void slotConnectionResult( int, const QString& );
00104 void slotReceivedACL( KMFolder*, KIO::Job*, const KMail::ACLList& );
00105 void slotMultiSetACLResult(KJob *);
00106 void slotACLChanged( const QString&, int );
00107 void slotReceivedUserRights( KMFolder* folder );
00108 void slotDirectoryListingFinished(KMFolderImap*);
00109
00110
00111 void slotEditACL( QTreeWidgetItem* );
00112 void slotSelectionChanged();
00113
00114
00115 void slotAddACL();
00116 void slotEditACL();
00117 void slotRemoveACL();
00118
00119 void slotChanged( bool b );
00120
00121 private:
00122 KUrl imapURL() const;
00123 void initializeWithValuesFromFolder( KMFolder* folder );
00124 void startListing();
00125 void loadListView( const KMail::ACLList& aclList );
00126 void loadFinished( const KMail::ACLList& aclList );
00127 void addACLs( const QStringList& userIds, unsigned int permissions );
00128
00129 private:
00130
00131 KHBox* mACLWidget;
00132
00133 class ListViewItem;
00134 QTreeWidget* mListView;
00135 KPushButton* mAddACL;
00136 KPushButton* mEditACL;
00137 KPushButton* mRemoveACL;
00138
00139 QStringList mRemovedACLs;
00140 QString mImapPath;
00141 ImapAccountBase* mImapAccount;
00142 int mUserRights;
00143 KMFolderType mFolderType;
00144 ACLList mInitialACLList;
00145 ACLList mACLList;
00146 IMAPUserIdFormat mUserIdFormat;
00147
00148 QLabel* mLabel;
00149 QStackedWidget* mStack;
00150 KMFolderDialog* mDlg;
00151
00152 bool mChanged;
00153 bool mAccepting;
00154 bool mSaving;
00155 };
00156
00157 }
00158
00159 #endif
00160