1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
#ifndef QFITSMAINVIEW_H
#define QFITSMAINVIEW_H
#include <QWidget>
#include <QTime>
#include <QMap>
#include "QFitsGlobal.h"
class QGridLayout;
class QFitsMainWindow;
class QFitsWidget1D;
class QFitsWidget2D;
#ifdef HAS_VTK
class QFitsWidget3D;
#endif
class QFitsBaseBuffer;
class QFitsWidgetWiregrid;
class QFitsWidgetContour;
class QFitsWedge;
class Fits;
class dpuserType;
class dpuserTypeList;
class dpStringList;
class QFitsMainView;
class dummyBuffer : public QWidget {
Q_OBJECT
public:
dummyBuffer(QWidget *parent, int myID);
protected:
void mousePressEvent(QMouseEvent *);
private:
int theID;
public:
signals:
void currentID(int);
};
class QFitsGrid : public QWidget {
Q_OBJECT
public:
QFitsGrid(QFitsMainView *parent, int howmany);
QGridLayout *grid;
dummyBuffer *widgets[4];
QMap<int, QWidget*> gridMap;
int activeID;
int activeRow();
int activeColumn();
int indexOf(int, int);
void addWidget(QWidget *);
void addWidget(QWidget *, int, int);
void removeWidget(QWidget *);
protected:
void paintEvent(QPaintEvent *);
public slots:
void activeIDChanged(int);
private:
QFitsMainView *myParent;
};
class QFitsMainView : public QWidget {
Q_OBJECT
//----- Functions -----
public:
QFitsMainView(QFitsMainWindow *parent);
~QFitsMainView();
bool bufferMapContainsKey(std::string);
std::string getCurrentBufferIndex();
int getBufferSize();
void setCurrentBufferFromWidget(QFitsBaseBuffer *);
void setCurrentBufferIndex(std::string val);
void showMultiple(int howMany);
QFitsBaseBuffer* getCurrentBuffer();
QFitsBaseBuffer* getBuffer(std::string i);
QFitsWedge* getWedge() { return wedge; }
bool getAutoScale() { return autoScale; }
// void showFitsBuffer(QFitsBaseBuffer *which);
void deleteBaseBuffer(std::string id);
bool hasBaseBuffer(std::string id);
void hideAllBuffers();
QFitsBaseBuffer* addNewBuffer (std::string, dpuserType*);
QFitsBaseBuffer* recreateBuffer (std::string, dpuserType*);
QFitsBaseBuffer* updateBuffer (std::string, dpuserType*);
void copyImage(int copymode = 2);
void keyPressEvent(QKeyEvent*);
void resizeEvent(QResizeEvent*);
void initialResize();
bool hasGrid() { return grid != NULL; }
protected:
private:
void myResizeEvent(int, int);
//----- Slots -----
public slots:
void setAutoScale(bool scale);
void saveImage();
void saveFits();
void printImage();
void updateOrientation();
void setColormap(QAction*);
void setInvertColormap(bool);
void setBrightness(int);
void setContrast(int);
void setMovieSpeed(int);
void enableMovie(bool);
void playTetris();
void slotRedoManualSpectrum();
//----- Signals -----
//----- Members -----
public:
std::map<std::string, QFitsBaseBuffer*> bufferMap;
QList<std::string> recentBuffers;
QFitsGrid *grid;
private:
QFitsMainWindow *myParent;
QFitsWedge *wedge;
std::string currentBuf;
int numberOfBuffersToShow;
bool autoScale;
};
#endif /* QFITSMAINVIEW_H */
|