00001
00002
00003
00004
00005
#ifndef kmfldsearch_h
00006
#define kmfldsearch_h
00007
00008
#include <qvaluelist.h>
00009
#include <qptrlist.h>
00010
#include <qstringlist.h>
00011
#include <qguardedptr.h>
00012
00013
#include <kdialogbase.h>
00014
#include <kxmlguiclient.h>
00015
#include <mimelib/string.h>
00016
00017
class QCheckBox;
00018
class QComboBox;
00019
class QGridLayout;
00020
class QLabel;
00021
class QLineEdit;
00022
class KListView;
00023
class QListViewItem;
00024
class QPushButton;
00025
class QRadioButton;
00026
class KAction;
00027
class KActionMenu;
00028
class KMFolder;
00029
class KMFolderSearch;
00030
class KMFolderComboBox;
00031
class KMFolderImap;
00032
class KMFolderMgr;
00033
class KMMainWidget;
00034
class KMMessage;
00035
class KMSearchPattern;
00036
class KMSearchPatternEdit;
00037
class KStatusBar;
00038
class DwBoyerMoore;
00039
00040
typedef QPtrList<KMMsgBase> KMMessageList;
00041
00042
class KMFldSearch:
public KDialogBase,
virtual public KXMLGUIClient
00043 {
00044 Q_OBJECT
00045
00046
public:
00047 KMFldSearch(KMMainWidget* parent,
const char* name=0,
00048
KMFolder *curFolder=0,
bool modal=FALSE);
00049
virtual ~KMFldSearch();
00050
00051
void activateFolder(
KMFolder* curFolder);
00052 KMMessageList selectedMessages();
00053 KMMessage* message();
00054
00055
protected slots:
00057
virtual void updStatus(
void);
00058
00059
virtual void slotClose();
00060
virtual void slotSearch();
00061
virtual void slotStop();
00062
void updateCreateButton(
const QString &);
00063
void renameSearchFolder();
00064
void openSearchFolder();
00065
void folderInvalidated(
KMFolder *);
00066
virtual bool slotShowMsg(
QListViewItem *);
00067
virtual void updateContextMenuActions();
00068
virtual void slotContextMenuRequested(
QListViewItem*,
const QPoint &,
int );
00069
virtual void copySelectedToFolder(
int menuId );
00070
virtual void moveSelectedToFolder(
int menuId );
00071
virtual void slotFolderActivated(
int nr);
00072
virtual void slotFilterAvailableRules();
00073
void slotClearSelection();
00074
void slotReplyToMsg();
00075
void slotReplyAllToMsg();
00076
void slotReplyListToMsg();
00077
void slotForwardMsg();
00078
void slotForwardAttachedMsg();
00079
void slotSaveMsg();
00080
void slotSaveAttachments();
00081
void slotPrintMsg();
00082
00084
virtual void searchDone();
00085
virtual void slotAddMsg(
int idx);
00086
virtual void slotRemoveMsg(
KMFolder *, Q_UINT32 serNum);
00087
void enableGUI();
00088
00089
protected:
00090
00092
virtual void keyPressEvent(
QKeyEvent*);
00093
00095
virtual void closeEvent(
QCloseEvent*);
00096
00097
protected:
00098
bool mStopped;
00099
bool mCloseRequested;
00100
int mFetchingInProgress;
00101
int mSortColumn;
00102 SortOrder mSortOrder;
00103
QGuardedPtr<KMFolderSearch> mFolder;
00104
QTimer *mTimer;
00105
00106
00107
QRadioButton *mChkbxAllFolders;
00108
QRadioButton *mChkbxSpecificFolders;
00109 KMFolderComboBox *mCbxFolders;
00110
QPushButton *mBtnSearch;
00111
QPushButton *mBtnStop;
00112
QCheckBox *mChkSubFolders;
00113 KListView* mLbxMatches;
00114
QLabel *mSearchFolderLbl;
00115
QLineEdit *mSearchFolderEdt;
00116
QPushButton *mSearchFolderBtn;
00117
QPushButton *mSearchFolderOpenBtn;
00118 KStatusBar* mStatusBar;
00119
QWidget* mLastFocus;
00120
QMap<int,KMFolder*> mMenuToFolder;
00121 KAction *mReplyAction, *mReplyAllAction, *mReplyListAction, *mSaveAsAction,
00122 *mForwardAction, *mForwardAttachedAction, *mPrintAction, *mClearAction,
00123 *mSaveAtchAction;
00124 KActionMenu *mForwardActionMenu;
00125
QValueList<QGuardedPtr<KMFolder> > mFolders;
00126
00127
00128 KMMainWidget* mKMMainWidget;
00129
KMSearchPatternEdit *mPatternEdit;
00130
KMSearchPattern *mSearchPattern;
00131
00132
static const int MSGID_COLUMN;
00133 };
00134
#endif