akonadi/contact
imagewidget.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef IMAGEWIDGET_H
00023 #define IMAGEWIDGET_H
00024
00025 #include <QtCore/QPoint>
00026 #include <QtGui/QPushButton>
00027
00028 namespace KABC
00029 {
00030 class Addressee;
00031 }
00032
00033 class ImageLoader;
00034
00035 class ImageWidget : public QPushButton
00036 {
00037 Q_OBJECT
00038
00039 public:
00040 enum Type {
00041 Photo,
00042 Logo
00043 };
00044
00045 explicit ImageWidget( Type type, QWidget *parent = 0 );
00046 ~ImageWidget();
00047
00048 void loadContact( const KABC::Addressee &contact );
00049 void storeContact( KABC::Addressee &contact ) const;
00050
00051 void setReadOnly( bool readOnly );
00052
00053 protected:
00054
00055 virtual void dragEnterEvent( QDragEnterEvent* );
00056 virtual void dropEvent( QDropEvent* );
00057
00058
00059 virtual void mousePressEvent( QMouseEvent* );
00060 virtual void mouseMoveEvent( QMouseEvent* );
00061
00062
00063 virtual void contextMenuEvent( QContextMenuEvent* );
00064
00065 private Q_SLOTS:
00066 void updateView();
00067
00068 void changeImage();
00069 void saveImage();
00070 void deleteImage();
00071
00072 private:
00073 ImageLoader *imageLoader();
00074
00075 Type mType;
00076 QImage mImage;
00077 bool mHasImage;
00078 bool mReadOnly;
00079
00080 QPoint mDragStartPos;
00081 ImageLoader *mImageLoader;
00082 };
00083
00084 #endif