kmail
searchwindow.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef searchwindow_h
00022 #define searchwindow_h
00023
00024 #include <qvaluelist.h>
00025 #include <qptrlist.h>
00026 #include <qstringlist.h>
00027 #include <qguardedptr.h>
00028 #include <qtimer.h>
00029
00030 #include <kdialogbase.h>
00031 #include <kxmlguiclient.h>
00032
00033 class QCheckBox;
00034 class QComboBox;
00035 class QGridLayout;
00036 class QLabel;
00037 class QLineEdit;
00038 class KListView;
00039 class QListViewItem;
00040 class QPushButton;
00041 class QRadioButton;
00042 class KAction;
00043 class KActionMenu;
00044 class KMFolder;
00045 class KMFolderSearch;
00046 class KMFolderImap;
00047 class KMFolderMgr;
00048 class KMMainWidget;
00049 class KMMessage;
00050 class KMSearchPattern;
00051 class KMSearchPatternEdit;
00052 class KStatusBar;
00053 class DwBoyerMoore;
00054 namespace KMail {
00055 class FolderRequester;
00056 }
00057
00058 typedef QPtrList<KMMsgBase> KMMessageList;
00059
00060 namespace KMail {
00061
00068 class SearchWindow: public KDialogBase, virtual public KXMLGUIClient
00069 {
00070 Q_OBJECT
00071
00072 public:
00081 SearchWindow( KMMainWidget* parent, const char* name=0,
00082 KMFolder *curFolder=0, bool modal=false );
00083 virtual ~SearchWindow();
00084
00089 void activateFolder( KMFolder* curFolder );
00090
00095 KMMessageList selectedMessages();
00096
00101 KMMessage* message();
00102
00103 void setSearchPattern( const KMSearchPattern& pattern );
00104
00105 protected slots:
00107 virtual void updStatus(void);
00108
00109 virtual void slotClose();
00110 virtual void slotSearch();
00111 virtual void slotStop();
00112 void scheduleRename( const QString &);
00113 void renameSearchFolder();
00114 void openSearchFolder();
00115 void folderInvalidated(KMFolder *);
00116 virtual bool slotShowMsg( QListViewItem * );
00117 void slotViewSelectedMsg();
00118 virtual bool slotViewMsg( QListViewItem * );
00119 void slotCurrentChanged( QListViewItem * );
00120 virtual void updateContextMenuActions();
00121 virtual void slotContextMenuRequested( QListViewItem*, const QPoint &, int );
00122 virtual void copySelectedToFolder( int menuId );
00123 virtual void decryptedCopySelectedToFolder( int menuId );
00124 virtual void moveSelectedToFolder( int menuId );
00125 virtual void slotFolderActivated();
00126 void slotClearSelection();
00127 void slotReplyToMsg();
00128 void slotReplyAllToMsg();
00129 void slotReplyListToMsg();
00130 void slotForwardInlineMsg();
00131 void slotForwardAttachedMsg();
00132 void slotForwardDigestMsg();
00133 void slotRedirectMsg();
00134 void slotSaveMsg();
00135 void slotSaveAttachments();
00136 void slotPrintMsg();
00137 void slotCopyMsgs();
00138 void slotCutMsgs();
00139
00141 virtual void searchDone();
00142 virtual void slotAddMsg(int idx);
00143 virtual void slotRemoveMsg(KMFolder *, Q_UINT32 serNum);
00144 void enableGUI();
00145
00146 void setEnabledSearchButton(bool);
00147
00148 protected:
00149
00151 virtual void keyPressEvent(QKeyEvent*);
00152
00154 virtual void closeEvent(QCloseEvent*);
00155
00156 protected:
00157 bool mStopped;
00158 bool mCloseRequested;
00159 int mFetchingInProgress;
00160 int mSortColumn;
00161 SortOrder mSortOrder;
00162 QGuardedPtr<KMFolderSearch> mFolder;
00163 QTimer *mTimer;
00164
00165
00166 QRadioButton *mChkbxAllFolders;
00167 QRadioButton *mChkbxSpecificFolders;
00168 KMail::FolderRequester *mCbxFolders;
00169 QPushButton *mBtnSearch;
00170 QPushButton *mBtnStop;
00171 QCheckBox *mChkSubFolders;
00172 KListView* mLbxMatches;
00173 QLabel *mSearchFolderLbl;
00174 QLineEdit *mSearchFolderEdt;
00175 QPushButton *mSearchFolderOpenBtn;
00176 QPushButton *mSearchResultOpenBtn;
00177 KStatusBar* mStatusBar;
00178 QWidget* mLastFocus;
00179 QMap<int,KMFolder*> mMenuToFolder;
00180 KAction *mReplyAction, *mReplyAllAction, *mReplyListAction, *mSaveAsAction,
00181 *mForwardInlineAction, *mForwardAttachedAction, *mForwardDigestAction,
00182 *mRedirectAction, *mPrintAction, *mClearAction, *mSaveAtchAction,
00183 *mCopyAction, *mCutAction;
00184 KActionMenu *mForwardActionMenu;
00185 QValueList<QGuardedPtr<KMFolder> > mFolders;
00186 QTimer mRenameTimer;
00187
00188
00189 KMMainWidget* mKMMainWidget;
00190 KMSearchPatternEdit *mPatternEdit;
00191 KMSearchPattern *mSearchPattern;
00192
00193 static const int MSGID_COLUMN;
00194
00195 private:
00196 KMMessage *indexToMessage( QListViewItem *item );
00197 };
00198
00199 }
00200 #endif
|