From b9aad1f15dc600e4dbe4c62d3fcced6363188ba3 Mon Sep 17 00:00:00 2001 From: zautrix Date: Sat, 26 Jun 2004 19:01:18 +0000 Subject: Initial revision --- (limited to 'kaddressbook/views/contactlistview.h') diff --git a/kaddressbook/views/contactlistview.h b/kaddressbook/views/contactlistview.h new file mode 100644 index 0000000..ae9c994 --- a/dev/null +++ b/kaddressbook/views/contactlistview.h @@ -0,0 +1,128 @@ +#ifndef CONTACTLISTVIEW_H +#define CONTACTLISTVIEW_H + +#include +#include +#include +#include + +#include + +#include +#include +#include + + +class QDropEvent; +class KAddressBookTableView; +class ContactListView; + +/** The whole tooltip design needs a lot of work. Currently it is +* hacked together to function. +*/ +class DynamicTip : public QToolTip +{ + public: + DynamicTip( ContactListView * parent ); + + protected: + void maybeTip( const QPoint & ); + + private: +}; + +class ContactListViewItem : public KListViewItem +{ + +public: + ContactListViewItem(const KABC::Addressee &a, ContactListView* parent, + KABC::AddressBook *doc, const KABC::Field::List &fields ); + const KABC::Addressee &addressee() const { return mAddressee; } + virtual void refresh(); + virtual ContactListView* parent(); + virtual QString key ( int, bool ) const; + + /** Adds the border around the cell if the user wants it. + * This is how the single line config option is implemented. + */ + virtual void paintCell(QPainter * p, const QColorGroup & cg, + int column, int width, int align ); + +private: + KABC::Addressee mAddressee; + KABC::Field::List mFields; + ContactListView *parentListView; + KABC::AddressBook *mDocument; +}; + + +///////////////////////////////////////////// +// ContactListView + +class ContactListView : public KListView +{ + Q_OBJECT + +public: + ContactListView(KAddressBookTableView *view, + KABC::AddressBook *doc, + QWidget *parent, + const char *name = 0L ); + virtual ~ContactListView() {} + //void resort(); + + /** Returns true if tooltips should be displayed, false otherwise + */ + bool tooltips() const { return mToolTips; } + void setToolTipsEnabled(bool enabled) { mToolTips = enabled; } + + bool alternateBackground() const { return mABackground; } + void setAlternateBackgroundEnabled(bool enabled); + + bool singleLine() const { return mSingleLine; } + void setSingleLineEnabled(bool enabled) { mSingleLine = enabled; } + + const QColor &alternateColor() const { return mAlternateColor; } + + /** Sets the background pixmap to filename. If the + * QString is empty (QString::isEmpty()), then the background + * pixmap will be disabled. + */ + void setBackgroundPixmap(const QString &filename); + +protected: + /** Paints the background pixmap in the empty area. This method is needed + * since Qt::FixedPixmap will not scroll with the list view. + */ + virtual void paintEmptyArea( QPainter * p, const QRect & rect ); + virtual void contentsMousePressEvent(QMouseEvent*); + void contentsMouseMoveEvent( QMouseEvent *e ); + void contentsDropEvent( QDropEvent *e ); + virtual bool acceptDrag(QDropEvent *e) const; + +protected slots: + void itemDropped(QDropEvent *e); + +public slots: + +signals: + void startAddresseeDrag(); + void addresseeDropped(QDropEvent *); + +private: + KAddressBookTableView *pabWidget; + int oldColumn; + int column; + bool ascending; + + bool mABackground; + bool mSingleLine; + bool mToolTips; + + QColor mAlternateColor; + + QPoint presspos; +}; + + +#endif -- cgit v0.9.0.2