File: QFitsMainView.h

package info (click to toggle)
dpuser 4.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 14,628 kB
  • sloc: cpp: 148,693; ansic: 18,648; fortran: 5,815; lex: 1,116; makefile: 760; yacc: 741; sh: 390; pascal: 98
file content (132 lines) | stat: -rw-r--r-- 3,237 bytes parent folder | download | duplicates (3)
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 */