summaryrefslogtreecommitdiff
path: root/core/settings/light-and-power/calibration.cpp
Unidiff
Diffstat (limited to 'core/settings/light-and-power/calibration.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/settings/light-and-power/calibration.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/core/settings/light-and-power/calibration.cpp b/core/settings/light-and-power/calibration.cpp
index 307de1f..6a3360f 100644
--- a/core/settings/light-and-power/calibration.cpp
+++ b/core/settings/light-and-power/calibration.cpp
@@ -73,68 +73,68 @@ void Calibration::setLineSteps ( int steps )
73 update ( ); 73 update ( );
74} 74}
75 75
76int Calibration::lineSteps ( ) const 76int Calibration::lineSteps ( ) const
77{ 77{
78 return m_steps; 78 return m_steps;
79} 79}
80 80
81void Calibration::setInterval ( int iv ) 81void Calibration::setInterval ( int iv )
82{ 82{
83 if ( iv < 1 ) 83 if ( iv < 1 )
84 return; 84 return;
85 85
86 m_interval = iv; 86 m_interval = iv;
87 //update ( ); 87 //update ( );
88} 88}
89 89
90int Calibration::interval ( ) const 90int Calibration::interval ( ) const
91{ 91{
92 return m_interval; 92 return m_interval;
93} 93}
94 94
95void Calibration::setStartPoint ( const QPoint &p ) 95void Calibration::setStartPoint ( const QPoint &p )
96{ 96{
97 m_p [0] = p; 97 m_p [0] = QPoint ( p. x ( ), m_scale. height ( ) - p. y ( ) - 1 );
98 checkPoints ( ); 98 checkPoints ( );
99 update ( ); 99 update ( );
100} 100}
101 101
102QPoint Calibration::startPoint ( ) const 102QPoint Calibration::startPoint ( ) const
103{ 103{
104 return m_p [0]; 104 return QPoint ( m_p [0]. x ( ), m_scale. height ( ) - m_p [0]. y ( ) - 1 );
105} 105}
106 106
107void Calibration::setEndPoint ( const QPoint &p ) 107void Calibration::setEndPoint ( const QPoint &p )
108{ 108{
109 m_p [1] = p; 109 m_p [1] = QPoint ( p. x ( ), m_scale. height ( ) - p. y ( ) - 1 );
110 checkPoints ( ); 110 checkPoints ( );
111 update ( ); 111 update ( );
112} 112}
113 113
114QPoint Calibration::endPoint ( ) const 114QPoint Calibration::endPoint ( ) const
115{ 115{
116 return m_p [1]; 116 return QPoint ( m_p [1]. x ( ), m_scale. height ( ) - m_p [1]. y ( ) - 1 );
117} 117}
118 118
119void Calibration::checkPoints ( ) 119void Calibration::checkPoints ( )
120{ 120{
121 int dx = m_scale. width ( ); 121 int dx = m_scale. width ( );
122 int dy = m_scale. height ( ); 122 int dy = m_scale. height ( );
123 123
124 if ( m_p [1]. x ( ) >= dx ) 124 if ( m_p [1]. x ( ) >= dx )
125 m_p [1]. setX ( dx - 1 ); 125 m_p [1]. setX ( dx - 1 );
126 if ( m_p [0]. x ( ) > m_p [1]. x ( )) 126 if ( m_p [0]. x ( ) > m_p [1]. x ( ))
127 m_p [0]. setX ( m_p [1]. x ( )); 127 m_p [0]. setX ( m_p [1]. x ( ));
128 128
129 if ( m_p [1]. y ( ) >= dy ) 129 if ( m_p [1]. y ( ) >= dy )
130 m_p [1]. setY ( dy - 1 ); 130 m_p [1]. setY ( dy - 1 );
131 if ( m_p [0]. y ( ) > m_p [1]. y ( )) 131 if ( m_p [0]. y ( ) > m_p [1]. y ( ))
132 m_p [0]. setY ( m_p [1]. y ( )); 132 m_p [0]. setY ( m_p [1]. y ( ));
133} 133}
134 134
135 135
136#define SCALEX(x) (BRD+x*(width()- 2*BRD)/m_scale.width()) 136#define SCALEX(x) (BRD+x*(width()- 2*BRD)/m_scale.width())
137#define SCALEY(y) (BRD+y*(height()-2*BRD)/m_scale.height()) 137#define SCALEY(y) (BRD+y*(height()-2*BRD)/m_scale.height())
138 138
139 139
140static QRect around ( int x, int y ) 140static QRect around ( int x, int y )
@@ -183,96 +183,95 @@ void Calibration::mouseMoveEvent ( QMouseEvent *e )
183 n [m_dragged]. setX (( e-> x ( ) - BRD ) * m_scale. width ( ) / ( width ( ) - 2 * BRD )); 183 n [m_dragged]. setX (( e-> x ( ) - BRD ) * m_scale. width ( ) / ( width ( ) - 2 * BRD ));
184 n [m_dragged]. setY (( e-> y ( ) - BRD ) * m_scale. height ( ) / ( height ( ) - 2 * BRD )); 184 n [m_dragged]. setY (( e-> y ( ) - BRD ) * m_scale. height ( ) / ( height ( ) - 2 * BRD ));
185 n [1 - m_dragged] = m_p [1 - m_dragged]; 185 n [1 - m_dragged] = m_p [1 - m_dragged];
186 186
187 if (( n [0]. x ( ) > n [1]. x ( )) || ( n [m_dragged]. x ( ) < 0 ) || ( n [m_dragged]. x ( ) >= m_scale. width ( ))) 187 if (( n [0]. x ( ) > n [1]. x ( )) || ( n [m_dragged]. x ( ) < 0 ) || ( n [m_dragged]. x ( ) >= m_scale. width ( )))
188 n [m_dragged]. setX ( m_p [m_dragged]. x ( )); 188 n [m_dragged]. setX ( m_p [m_dragged]. x ( ));
189 if (( n [0]. y ( ) > n [1]. y ( )) || ( n [m_dragged]. y ( ) < 0 ) || ( n [m_dragged]. y ( ) >= m_scale. height ( ))) 189 if (( n [0]. y ( ) > n [1]. y ( )) || ( n [m_dragged]. y ( ) < 0 ) || ( n [m_dragged]. y ( ) >= m_scale. height ( )))
190 n [m_dragged]. setY ( m_p [m_dragged]. y ( )); 190 n [m_dragged]. setY ( m_p [m_dragged]. y ( ));
191 191
192 QRect r; 192 QRect r;
193 int ox [2], oy [2], nx [2], ny [2]; 193 int ox [2], oy [2], nx [2], ny [2];
194 194
195 for ( int i = 0; i < 2; i++ ) { 195 for ( int i = 0; i < 2; i++ ) {
196 nx [i] = SCALEX( n [i]. x ( )); 196 nx [i] = SCALEX( n [i]. x ( ));
197 ny [i] = SCALEY( n [i]. y ( )); 197 ny [i] = SCALEY( n [i]. y ( ));
198 ox [i] = SCALEX( m_p [i]. x ( )); 198 ox [i] = SCALEX( m_p [i]. x ( ));
199 oy [i] = SCALEY( m_p [i]. y ( )); 199 oy [i] = SCALEY( m_p [i]. y ( ));
200 200
201 if ( n [i] != m_p [i] ){ 201 if ( n [i] != m_p [i] ){
202 r |= around ( nx [i], ny [i] ); 202 r |= around ( nx [i], ny [i] );
203 r |= around ( ox [i], oy [i] ); 203 r |= around ( ox [i], oy [i] );
204 m_p [i] = n [i]; 204 m_p [i] = n [i];
205 205
206 if ( i == 0 ) { 206 if ( i == 0 ) {
207 r |= QRect ( 0, 0, nx [0] - 0 + 1, ny [0] - 0 + 1 ); 207 r |= QRect ( 0, ny [0], nx [0] - 0 + 1, 1 );
208 r |= QRect ( 0, 0, ox [0] - 0 + 1, oy [0] - 0 + 1 ); 208 r |= QRect ( 0, oy [0], ox [0] - 0 + 1, 1 );
209 } 209 }
210 else if ( i == 1 ) { 210 else if ( i == 1 ) {
211 r |= QRect ( nx [1], ny [1], width ( ) - nx [1], height ( ) - ny [1] ); 211 r |= QRect ( nx [1], ny [1], width ( ) - nx [1], 1 );
212 r |= QRect ( ox [1], oy [1], width ( ) - ox [1], height ( ) - oy [1] ); 212 r |= QRect ( ox [1], oy [1], width ( ) - ox [1], 1 );
213 } 213 }
214 } 214 }
215 } 215 }
216 if ( r. isValid ( )) { 216 if ( r. isValid ( )) {
217 r |= QRect ( nx [0], ny [0], nx [1] - nx [0] + 1, ny [1] - ny [0] + 1 ); 217 r |= QRect ( nx [0], ny [0], nx [1] - nx [0] + 1, ny [1] - ny [0] + 1 );
218 r |= QRect ( ox [0], oy [0], ox [1] - ox [0] + 1, oy [1] - oy [0] + 1 ); 218 r |= QRect ( ox [0], oy [0], ox [1] - ox [0] + 1, oy [1] - oy [0] + 1 );
219 219
220 repaint ( r ); 220 repaint ( r );
221 } 221 }
222} 222}
223 223
224void Calibration::mouseReleaseEvent ( QMouseEvent *e ) 224void Calibration::mouseReleaseEvent ( QMouseEvent *e )
225{ 225{
226 if ( e-> button ( ) != LeftButton ) 226 if ( e-> button ( ) != LeftButton )
227 return QWidget::mouseReleaseEvent ( e ); 227 return QWidget::mouseReleaseEvent ( e );
228 228
229 if ( m_dragged < 0 ) 229 if ( m_dragged < 0 )
230 return; 230 return;
231 231
232 int x = SCALEX( m_p [m_dragged]. x ( )); 232 int x = SCALEX( m_p [m_dragged]. x ( ));
233 int y = SCALEY( m_p [m_dragged]. y ( )); 233 int y = SCALEY( m_p [m_dragged]. y ( ));
234 m_dragged = -1; 234 m_dragged = -1;
235 235
236 repaint ( around ( x, y )); 236 repaint ( around ( x, y ));
237} 237}
238 238
239void Calibration::paintEvent ( QPaintEvent * ) 239void Calibration::paintEvent ( QPaintEvent * )
240{ 240{
241 QPainter p ( this ); 241 QPainter p ( this );
242 QColorGroup g = colorGroup ( ); 242 QColorGroup g = colorGroup ( );
243 243
244 int x0 = SCALEX( m_p [0]. x ( )); 244 int x0 = SCALEX( m_p [0]. x ( ));
245 int y0 = SCALEY( m_p [0]. y ( )); 245 int y0 = SCALEY( m_p [0]. y ( ));
246 int x1 = SCALEX( m_p [1]. x ( )); 246 int x1 = SCALEX( m_p [1]. x ( ));
247 int y1 = SCALEY( m_p [1]. y ( )); 247 int y1 = SCALEY( m_p [1]. y ( ));
248 248
249 int dx = x1 - x0; 249 int dx = x1 - x0;
250 int dy = y1 - y0; 250 int dy = y1 - y0;
251 251
252 int ex = x0, ey = y0; 252 int ex = x0, ey = y0;
253 253
254 p. setPen ( g. highlight ( )); 254 p. setPen ( g. highlight ( ));
255 255
256 p. drawLine ( BRD, BRD, ex, BRD ); 256 p. drawLine ( BRD, ey, ex, ey );
257 p. drawLine ( ex, BRD, ex, ey );
258 257
259 for ( int i = 1; i < m_steps; i++ ) { 258 for ( int i = 1; i < m_steps; i++ ) {
260 int fx = x0 + dx * i / m_steps; 259 int fx = x0 + dx * i / m_steps;
261 int fy = y0 + dy * i / ( m_steps - 1 ); 260 int fy = y0 + dy * i / ( m_steps - 1 );
262 261
263 p. drawLine ( ex, ey, fx, ey ); 262 p. drawLine ( ex, ey, fx, ey );
264 p. drawLine ( fx, ey, fx, fy ); 263 p. drawLine ( fx, ey, fx, fy );
265 264
266 ex = fx; 265 ex = fx;
267 ey = fy; 266 ey = fy;
268 } 267 }
269 268
270 p. drawLine ( ex, ey, width ( ) - 1 - BRD, ey ); 269 p. drawLine ( ex, ey, width ( ) - 1 - BRD, ey );
271 270
272 p. fillRect ( around ( x0, y0 ), m_dragged == 0 ? g. highlightedText ( ) : g. text ( )); 271 p. fillRect ( around ( x0, y0 ), m_dragged == 0 ? g. highlightedText ( ) : g. text ( ));
273 p. fillRect ( around ( x1, y1 ), m_dragged == 1 ? g. highlightedText ( ) : g. text ( )); 272 p. fillRect ( around ( x1, y1 ), m_dragged == 1 ? g. highlightedText ( ) : g. text ( ));
274 273
275 p. setPen ( g. text ( )); 274 p. setPen ( g. text ( ));
276 p. drawText ( QRect ( BRD, BRD, width ( ) - 2*BRD, height() - 2*BRD ), AlignTop | AlignRight, tr( "%1 Steps" ). arg ( m_steps )); 275 p. drawText ( QRect ( BRD, BRD, width ( ) - 2*BRD, height() - 2*BRD ), AlignTop | AlignRight, tr( "%1 Steps" ). arg ( m_steps ));
277} 276}
278 277