[r45]: trunk / previewField.h Maximize Restore History

Download this file

previewField.h    81 lines (62 with data), 2.4 kB

 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
/* ----------------------------------------------------------------
SmillaEnlarger - resize, especially magnify bitmaps in high quality
previewField.h: the preview-widget within the EnlargerDialog
Copyright (C) 2009 Mischa Lusteck
This program is free software;
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation;
either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>.
---------------------------------------------------------------------- */
#ifndef PREVIEWFIELD_H
#define PREVIEWFIELD_H
#include <QWidget>
class QImage;
const float preWidth = 400.0;
const float preHeight = 400.0;
class PreviewField : public QWidget {
Q_OBJECT
private:
QImage srcImage;
QImage previewImage;
bool previewCalculated;
float selectX,selectY;
float selectW,selectH;
float zoomX,zoomY;
// shown part of the sourceImage
float baseClipX0, baseClipY0,baseClipX1,baseClipY1;
// for grab-moving of selection
int mouseXGrabStart, mouseYGrabStart;
float sXGrabStart, sYGrabStart;
public:
PreviewField( QWidget *parent=0 );
~PreviewField( void );
void setZoom( float newZoomX, float newZoomY );
void setZoom( float newZoom ) { setZoom( newZoom, newZoom ); }
void setTheImage( const QImage & newImage );
void setClipRect( float cx0, float cy0, float cx1, float cy1 );
void setPreview( const QImage & preImage );
QImage theImage( void ) const { return srcImage; }
QRect DstRect( void );
float ZoomX( void ) { return zoomX; };
float ZoomY( void ) { return zoomY; };
QSize sizeHint( void ) const;
QSize minimumSizeHint( void ) const;
signals:
void selectionChanged( float x, float y );
public slots:
void moveSelection( float x, float y );
protected:
void mousePressEvent( QMouseEvent *event );
void mouseMoveEvent( QMouseEvent *event );
void paintEvent( QPaintEvent *event );
private:
void CorrectSelect( void );
};
#endif // PREVIEWFIELD_H