You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

135 lines
3.4 KiB

/* kmfldsearch
* (c) 1999 Stefan Taferner, (c) 2001 Aaron J. Seigo
* This code is under GPL
*/
#ifndef kmfldsearch_h
#define kmfldsearch_h
#include <qvaluelist.h>
#include <qptrlist.h>
#include <qstringlist.h>
#include <qguardedptr.h>
#include <kdialogbase.h>
#include <kxmlguiclient.h>
#include <mimelib/string.h>
class QCheckBox;
class QComboBox;
class QGridLayout;
class QLabel;
class QLineEdit;
class KListView;
class QListViewItem;
class QPushButton;
class QRadioButton;
class KAction;
class KActionMenu;
class KMFolder;
class KMFolderSearch;
class KMFolderImap;
class KMFolderMgr;
class KMMainWidget;
class KMMessage;
class KMSearchPattern;
class KMSearchPatternEdit;
class KStatusBar;
class DwBoyerMoore;
namespace KMail {
class FolderRequester;
}
typedef QPtrList<KMMsgBase> KMMessageList;
class KMFldSearch: public KDialogBase, virtual public KXMLGUIClient
{
Q_OBJECT
public:
KMFldSearch(KMMainWidget* parent, const char* name=0,
KMFolder *curFolder=0, bool modal=FALSE);
virtual ~KMFldSearch();
void activateFolder(KMFolder* curFolder);
KMMessageList selectedMessages();
KMMessage* message();
protected slots:
/** Update status line widget. */
virtual void updStatus(void);
virtual void slotClose();
virtual void slotSearch();
virtual void slotStop();
void updateCreateButton( const QString &);
void renameSearchFolder();
void openSearchFolder();
void folderInvalidated(KMFolder *);
virtual bool slotShowMsg(QListViewItem *);
virtual void updateContextMenuActions();
virtual void slotContextMenuRequested( QListViewItem*, const QPoint &, int );
virtual void copySelectedToFolder( int menuId );
virtual void moveSelectedToFolder( int menuId );
virtual void slotFolderActivated( KMFolder* );
void slotClearSelection();
void slotReplyToMsg();
void slotReplyAllToMsg();
void slotReplyListToMsg();
void slotForwardMsg();
void slotForwardAttachedMsg();
void slotSaveMsg();
void slotSaveAttachments();
void slotPrintMsg();
/** GUI cleanup after search */
virtual void searchDone();
virtual void slotAddMsg(int idx);
virtual void slotRemoveMsg(KMFolder *, Q_UINT32 serNum);
void enableGUI();
protected:
/** Reimplemented to react to Escape. */
virtual void keyPressEvent(QKeyEvent*);
/** Reimplemented to stop searching when the window is closed */
virtual void closeEvent(QCloseEvent*);
protected:
bool mStopped;
bool mCloseRequested;
int mFetchingInProgress;
int mSortColumn;
SortOrder mSortOrder;
QGuardedPtr<KMFolderSearch> mFolder;
QTimer *mTimer;
// GC'd by Qt
QRadioButton *mChkbxAllFolders;
QRadioButton *mChkbxSpecificFolders;
KMail::FolderRequester *mCbxFolders;
QPushButton *mBtnSearch;
QPushButton *mBtnStop;
QCheckBox *mChkSubFolders;
KListView* mLbxMatches;
QLabel *mSearchFolderLbl;
QLineEdit *mSearchFolderEdt;
QPushButton *mSearchFolderBtn;
QPushButton *mSearchFolderOpenBtn;
KStatusBar* mStatusBar;
QWidget* mLastFocus; // to remember the position of the focus
QMap<int,KMFolder*> mMenuToFolder;
KAction *mReplyAction, *mReplyAllAction, *mReplyListAction, *mSaveAsAction,
*mForwardAction, *mForwardAttachedAction, *mPrintAction, *mClearAction,
*mSaveAtchAction;
KActionMenu *mForwardActionMenu;
QValueList<QGuardedPtr<KMFolder> > mFolders;
// not owned by us
KMMainWidget* mKMMainWidget;
KMSearchPatternEdit *mPatternEdit;
KMSearchPattern *mSearchPattern;
static const int MSGID_COLUMN;
};
#endif /*kmfldsearch_h*/