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 TQWidgetStack;
00042 class TQHBox;
00043 class TQVButtonGroup;
00044 class KListView;
00045 namespace KIO { class Job; }
00046
00047 namespace KMail {
00048
00049 enum IMAPUserIdFormat { FullEmail, UserName };
00050
00051 struct ACLListEntry;
00052 typedef TQValueVector<KMail::ACLListEntry> ACLList;
00053
00054 class ImapAccountBase;
00055
00060 class ACLEntryDialog :public KDialogBase {
00061 Q_OBJECT
00062
00063 public:
00064 ACLEntryDialog( IMAPUserIdFormat userIdFormat, const TQString& caption, TQWidget* parent, const char* name = 0 );
00065
00066 void setValues( const TQString& userId, unsigned int permissions );
00067
00068 TQString userId() const;
00069 TQStringList userIds() const;
00070 unsigned int permissions() const;
00071
00072 private slots:
00073 void slotSelectAddresses();
00074 void slotChanged();
00075
00076 private:
00077 TQVButtonGroup* 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, TQWidget* 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 TQString& );
00102 void slotReceivedACL( KMFolder*, KIO::Job*, const KMail::ACLList& );
00103 void slotMultiSetACLResult(KIO::Job *);
00104 void slotACLChanged( const TQString&, int );
00105 void slotReceivedUserRights( KMFolder* folder );
00106 void slotDirectoryListingFinished(KMFolderImap*);
00107
00108
00109 void slotEditACL(TQListViewItem*);
00110 void slotSelectionChanged(TQListViewItem*);
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 TQStringList& userIds, unsigned int permissions );
00126
00127 private:
00128
00129 TQHBox* mACLWidget;
00130
00131 class ListViewItem;
00132 KListView* mListView;
00133 KPushButton* mAddACL;
00134 KPushButton* mEditACL;
00135 KPushButton* mRemoveACL;
00136
00137 TQStringList mRemovedACLs;
00138 TQString 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 TQLabel* mLabel;
00148 TQWidgetStack* mStack;
00149 KMFolderDialog* mDlg;
00150
00151 bool mChanged;
00152 bool mAccepting;
00153 bool mSaving;
00154 };
00155
00156 }
00157
00158 #endif
00159
|