00001 #ifndef FOLDERWIDGET_H 00002 #define FOLDERWIDGET_H 00003 00004 #include "imapresponse.h" 00005 #include "listviewplus.h" 00006 #include "configfile.h" 00007 00008 class IMAPHandler; 00009 00010 class TopFolder 00011 { 00012 public: 00013 TopFolder() 00014 { 00015 _valid = true; 00016 } 00017 00018 bool isValid() { return _valid; } 00019 void setAccount(Account account) { _account = account; } 00020 Account account() { return _account; } 00021 void setIMAPHandler(IMAPHandler *handler) { _handler = handler; } 00022 IMAPHandler *handler() { return _handler; } 00023 00024 private: 00025 bool _valid; 00026 Account _account; 00027 IMAPHandler *_handler; 00028 00029 }; 00030 00031 class Folder 00032 { 00033 public: 00034 Folder() 00035 { 00036 _valid = true; 00037 _noCache = false; 00038 } 00039 00040 bool isValid() { return _valid; } 00041 void setNoCache(bool noCache) { _noCache = noCache; } 00042 bool noCache() { return _noCache; } 00043 void setFullName(QString fullName) { _fullName = fullName; } 00044 QString fullName() { return _fullName; } 00045 void setSeparator(QString separator) { _separator = separator; } 00046 QString separator() { return _separator; } 00047 void setTopFolder(TopFolder topFolder) { _topFolder = topFolder; } 00048 TopFolder topFolder() { return _topFolder; } 00049 00050 private: 00051 bool _valid, _noCache; 00052 QString _fullName, _separator; 00053 TopFolder _topFolder; 00054 00055 }; 00056 00057 class FolderWidgetItem : public QListViewItem 00058 { 00059 public: 00060 FolderWidgetItem(Folder &folder, QListView *parent); 00061 FolderWidgetItem(Folder &folder, FolderWidgetItem *parent); 00062 00063 Folder folder() { return _folder; } 00064 00065 private: 00066 Folder _folder; 00067 00068 }; 00069 00070 class FolderWidget : public ListViewPlus 00071 { 00072 Q_OBJECT 00073 00074 public: 00075 FolderWidget(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); 00076 ~FolderWidget(); 00077 00078 public slots: 00079 void update(); 00080 00081 signals: 00082 void folderSelected(Folder folder); 00083 void status(const QString &text); 00084 void connecting(); 00085 void connected(); 00086 void disconnected(); 00087 00088 protected: 00089 void getAccounts(); 00090 FolderWidgetItem *addFolder(Folder &folder, FolderWidgetItem *folderWidgetItem); 00091 FolderWidgetItem *addAccount(Account &account); 00092 00093 static const int MENU_RENAME = 0; 00094 static const int MENU_DELETE = 1; 00095 static const int MENU_MOVE = 2; 00096 static const int MENU_COPY = 3; 00097 static const int MENU_CREATE = 4; 00098 static const int MENU_RESCAN = 5; 00099 00100 protected slots: 00101 void slotMenuActivated(int itemid); 00102 void slotItemClicked(QListViewItem *item); 00103 00104 void slotIMAPLookingUpHost(); 00105 void slotIMAPHostFound(); 00106 void slotIMAPConnected(); 00107 void slotIMAPError(int error); 00108 void slotIMAPDisconnected(); 00109 00110 void slotIMAPLogin(IMAPResponse &response); 00111 void slotIMAPRename(IMAPResponse &response); 00112 void slotIMAPDelete(IMAPResponse &response); 00113 void slotIMAPCreate(IMAPResponse &response); 00114 void slotIMAPList(IMAPResponse &response); 00115 00116 private: 00117 Account _rescanAccount; 00118 Folder _createFolder; 00119 00120 }; 00121 00122 #endif 00123
1.4.2