Go to the documentation of this file.00001
00022 #ifndef DGVIMAGE_H
00023 #define DGVIMAGE_H
00024
00025 #include <QtGui/QLabel>
00026 #include <QtGui/QtGui>
00027
00028 #include "DGVBlitzArrayCaster.h"
00029 #include "DGVTable.h"
00030
00037 class DGV_EXPORT DGVImage : public QLabel
00038 {
00039 Q_OBJECT
00040
00041 public:
00046 DGVImage(QWidget *parent = 0);
00051 DGVImage(Array<imageType,2> &data, QWidget *parent = 0);
00056 virtual ~DGVImage();
00061 void setName(QString filename);
00062
00067 bool openImage(QString filename);
00072 void linkResult(DGVImage *result);
00077 inline DGVImage* getResult()
00078 {
00079 return resultImage;
00080 }
00085 virtual void setPixmap(const QPixmap &pix);
00086 virtual void setPixmap(const Array<imageType,2> &bins);
00091 inline Array<imageType,2>* dataPtr()
00092 {
00093 return &imageData;
00094 }
00099 inline Array<imageType,2>& data()
00100 {
00101 return imageData;
00102 }
00107 QString strippedName();
00112 QString strippedNamePrefix();
00113
00114 public slots:
00119 void table();
00124 void updateData(int row, int col);
00129 void refreshImage();
00135 void normGreyscale();
00140 void setInterpolation(bool interpolation);
00145 void save();
00146
00147
00148 signals:
00153 void resultAvailable(DGVImage *);
00158 void tableAvailable(DGVTable *tableWidget);
00159
00160 protected:
00161 QString name;
00162
00164 QMenu *imageMenu;
00165 QAction *normGreyAct;
00166 QAction *interpolateAct;
00167 QAction *tableAct;
00168
00169 QAction *refreshAct;
00170 QAction *saveAct;
00171 QAction *closeAct;
00172
00174 DGVImage *resultImage;
00175 Array<imageType,2> imageData;
00176 DGVTable *dataTable;
00177 bool loadComplete;
00178
00179 DGVBlitzArrayCaster<imageType> Blitz;
00180
00182 void createActions();
00183 void createConnections();
00184 void connectTable(DGVTable *child);
00189 void contextMenuEvent(QContextMenuEvent *event);
00190 void paintEvent(QPaintEvent *event);
00191
00192 private:
00193 };
00194
00195 #endif // DGVIMAGE_H