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