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.
111 lines
3.5 KiB
111 lines
3.5 KiB
/*************************************************************************** |
|
kmpopheadersdlg.h - description |
|
------------------- |
|
begin : Sat Nov 3 2001 |
|
copyright : (C) 2001 by Heiko Hund |
|
email : heiko@ist.eigentlich.net |
|
***************************************************************************/ |
|
|
|
/*************************************************************************** |
|
* * |
|
* This program is free software; you can redistribute it and/or modify * |
|
* it under the terms of the GNU General Public License as published by * |
|
* the Free Software Foundation; either version 2 of the License, or * |
|
* (at your option) any later version. * |
|
* * |
|
***************************************************************************/ |
|
|
|
#ifndef KMPOPHEADERSDLG_H |
|
#define KMPOPHEADERSDLG_H |
|
|
|
#include "kmpopheaders.h" |
|
|
|
#include <kdialogbase.h> |
|
#include <klistview.h> |
|
|
|
#include <qptrlist.h> |
|
#include <qmap.h> |
|
|
|
class QWidget; |
|
class QString; |
|
|
|
class KMPopFilterCnfrmDlg; |
|
/** |
|
* @author Heiko Hund |
|
*/ |
|
class KMPopHeadersView : public KListView |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
KMPopHeadersView(QWidget *aParent=0, KMPopFilterCnfrmDlg *aDialog=0); |
|
~KMPopHeadersView(); |
|
static const KMPopFilterAction mapToAction(int aColumn) { return (KMPopFilterAction)aColumn;}; |
|
static const int mapToColumn(KMPopFilterAction aAction) { return (int)aAction;}; |
|
static const char *mUnchecked[26]; |
|
static const char *mChecked[26]; |
|
protected: |
|
static const char *mLater[25]; |
|
static const char *mDown[20]; |
|
static const char *mDel[19]; |
|
void keyPressEvent( QKeyEvent *k); |
|
|
|
protected slots: // Protected slots |
|
void slotPressed(QListViewItem* aItem, const QPoint& aPoint, int aColumn); |
|
|
|
private: |
|
KMPopFilterCnfrmDlg *mDialog; |
|
}; |
|
|
|
|
|
|
|
class KMPopHeadersViewItem : public KListViewItem |
|
{ |
|
public: |
|
KMPopHeadersViewItem(KMPopHeadersView *aParent, KMPopFilterAction aAction); |
|
~KMPopHeadersViewItem(); |
|
void setAction(KMPopFilterAction aAction); |
|
KMPopFilterAction action() { return mAction; }; |
|
virtual void paintFocus(QPainter *, const QColorGroup & cg, const QRect &r); |
|
virtual QString key(int col, bool ascending) const; |
|
protected: |
|
KMPopHeadersView *mParent; |
|
KMPopFilterAction mAction; |
|
}; |
|
|
|
|
|
class KMPopFilterCnfrmDlg : public KDialogBase |
|
{ |
|
friend class ::KMPopHeadersView; |
|
Q_OBJECT |
|
protected: |
|
KMPopFilterCnfrmDlg() { }; |
|
QMap<QListViewItem*, KMPopHeaders*> mItemMap; |
|
QPtrList<KMPopHeadersViewItem> mDelList; |
|
QPtrList<KMPopHeaders> mDDLList; |
|
KMPopHeadersView *mFilteredHeaders; |
|
bool mLowerBoxVisible; |
|
bool mShowLaterMsgs; |
|
void setupLVI(KMPopHeadersViewItem *lvi, KMMessage *msg); |
|
|
|
|
|
public: |
|
KMPopFilterCnfrmDlg(QPtrList<KMPopHeaders> *aHeaders, const QString &aAccount, bool aShowLaterMsgs = false, QWidget *aParent=0, const char *aName=0); |
|
~KMPopFilterCnfrmDlg(); |
|
|
|
public: |
|
void setAction(QListViewItem *aItem, KMPopFilterAction aAction); |
|
|
|
protected slots: // Protected slots |
|
/** |
|
This Slot is called whenever a ListView item was pressed. |
|
It checks for the column the button was pressed in and changes the action if the |
|
click happened over a radio button column. |
|
Of course the radio button state is changed as well if the above is true. |
|
*/ |
|
void slotPressed(QListViewItem *aItem, const QPoint &aPnt, int aColumn); |
|
void slotToggled(bool aOn); |
|
void slotUpdateMinimumSize(); |
|
}; |
|
|
|
#endif
|
|
|