00001 #ifndef TRANSFERWIDGET_H 00002 #define TRANSFERWIDGET_H 00003 00004 #include <QtGui> 00005 #include "hoverpoints.h" 00006 00017 00018 class TransferWidget : public QWidget 00019 { 00020 Q_OBJECT 00021 00022 public: 00023 TransferWidget(QWidget *parent = NULL); 00024 ~TransferWidget(); 00025 00026 void paintEvent(QPaintEvent *e); 00027 00028 private: 00029 QLinearGradient gradient; 00030 QLinearGradient gradientWithAlpha; 00031 QGradientStops stops; 00032 QImage shadeImage; 00033 QImage transferImage; 00034 HoverPoints *hoverPoints; 00035 00036 void Init(); 00037 00048 00049 void calcShadeImage(); 00050 00061 00062 void calcGradientStops(); 00063 00076 00077 void saveToFile(QString filename); 00078 00094 00095 void loadFromFile(QString filename, QVector<QPointF> &points, QVector<QColor> &colors); 00096 00107 00108 void addTestPoints(); 00109 00110 signals: 00111 00124 00125 void InvokeChangeSelectedColor(const QColor &color); 00126 00139 00140 void InvokeUpdateColorSelector(const QColor &color); 00141 00154 00155 void TransferImageUpdated(const QImage &image); 00156 00157 public slots: 00158 void ChangeSelectedColor(const QColor &color){emit InvokeChangeSelectedColor(color);} 00159 00170 00171 void PointsChanged(); 00172 00185 00186 void SaveConfig(QString filename); 00187 00200 00201 void LoadConfig(QString filename); 00202 }; 00203 00204 #endif // TRANSFERWIDGET_H