00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef FEATURESLISTWIDGET_H
00026 #define FEATURESLISTWIDGET_H
00027
00028
00029 #include "WidgetPack/headedlistwidget.h"
00030
00031 #include <QPoint>
00032
00033
00040 class FeaturesListWidget : public HeadedListWidget {
00041
00042 public:
00043 enum { FeatureKeyRole = Qt::UserRole };
00044
00045 FeaturesListWidget( QWidget* parent = 0 );
00046
00047 void addFeature( const QByteArray& key );
00048 void insertFeature( int row, const QByteArray& key );
00049
00050 QByteArray itemFeatureKey( QListWidgetItem* item );
00051 QByteArray rowFeatureKey( int row );
00052
00053 const QPen& insertionLinePen() const;
00054 void setInsertionLinePen( const QPen& pen );
00055
00056
00057 protected:
00058 virtual void startDrag( Qt::DropActions supportedActions );
00059
00060 virtual void mousePressEvent( QMouseEvent* event );
00061
00062 virtual void dragEnterEvent( QDragEnterEvent* event );
00063 virtual void dragLeaveEvent( QDragLeaveEvent* event );
00064 virtual void dragMoveEvent( QDragMoveEvent* event );
00065 virtual void dropEvent( QDropEvent* event );
00066
00067 virtual void paintEvent( QPaintEvent* event );
00068
00069
00070 private:
00071 QPen m_insertionLinePen;
00072
00073 QPoint m_dragStartPos;
00074
00075 bool m_drawInsertionLine;
00076 int m_insertionLineRow;
00077 };
00078
00079
00080 #endif // ! FEATURESLISTWIDGET_H