Changeset 8127 in ntrip for trunk/BNC/qwt/qwt_panner.cpp
- Timestamp:
- May 10, 2017, 3:20:54 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/qwt/qwt_panner.cpp
r4271 r8127 10 10 #include "qwt_panner.h" 11 11 #include "qwt_picker.h" 12 #include "qwt_painter.h" 12 13 #include <qpainter.h> 13 14 #include <qpixmap.h> … … 23 24 for ( int i = 0; i < children.size(); i++ ) 24 25 { 25 QObject *obj = children[i]; 26 if ( obj->inherits( "QwtPicker" ) ) 27 { 28 QwtPicker *picker = ( QwtPicker * )obj; 29 if ( picker->isEnabled() ) 30 pickers += picker; 31 } 26 QwtPicker *picker = qobject_cast<QwtPicker *>( children[i] ); 27 if ( picker && picker->isEnabled() ) 28 pickers += picker; 32 29 } 33 30 … … 40 37 PrivateData(): 41 38 button( Qt::LeftButton ), 42 button State( Qt::NoButton),39 buttonModifiers( Qt::NoModifier ), 43 40 abortKey( Qt::Key_Escape ), 44 abortKey State( Qt::NoButton),41 abortKeyModifiers( Qt::NoModifier ), 45 42 #ifndef QT_NO_CURSOR 46 43 cursor( NULL ), … … 61 58 } 62 59 63 int button; 64 int buttonState; 60 Qt::MouseButton button; 61 Qt::KeyboardModifiers buttonModifiers; 62 65 63 int abortKey; 66 int abortKeyState;64 Qt::KeyboardModifiers abortKeyModifiers; 67 65 68 66 QPoint initialPos; … … 106 104 107 105 /*! 108 Change the mouse button 109 The defaults are Qt::LeftButton and Qt::NoButton 110 */ 111 void QwtPanner::setMouseButton( int button, int buttonState ) 106 Change the mouse button and modifiers used for panning 107 The defaults are Qt::LeftButton and Qt::NoModifier 108 */ 109 void QwtPanner::setMouseButton( Qt::MouseButton button, 110 Qt::KeyboardModifiers modifiers ) 112 111 { 113 112 d_data->button = button; 114 d_data->buttonState = buttonState; 115 } 116 117 //! Get the mouse button 118 void QwtPanner::getMouseButton( int &button, int &buttonState ) const 113 d_data->buttonModifiers = modifiers; 114 } 115 116 //! Get mouse button and modifiers used for panning 117 void QwtPanner::getMouseButton( Qt::MouseButton &button, 118 Qt::KeyboardModifiers &modifiers ) const 119 119 { 120 120 button = d_data->button; 121 buttonState = d_data->buttonState;121 modifiers = d_data->buttonModifiers; 122 122 } 123 123 124 124 /*! 125 125 Change the abort key 126 The defaults are Qt::Key_Escape and Qt::No Button126 The defaults are Qt::Key_Escape and Qt::NoModifiers 127 127 128 128 \param key Key ( See Qt::Keycode ) 129 \param state State 130 */ 131 void QwtPanner::setAbortKey( int key, int state ) 129 \param modifiers Keyboard modifiers 130 */ 131 void QwtPanner::setAbortKey( int key, 132 Qt::KeyboardModifiers modifiers ) 132 133 { 133 134 d_data->abortKey = key; 134 d_data->abortKeyState = state; 135 } 136 137 //! Get the abort key 138 void QwtPanner::getAbortKey( int &key, int &state ) const 135 d_data->abortKeyModifiers = modifiers; 136 } 137 138 //! Get the abort key and modifiers 139 void QwtPanner::getAbortKey( int &key, 140 Qt::KeyboardModifiers &modifiers ) const 139 141 { 140 142 key = d_data->abortKey; 141 state = d_data->abortKeyState;143 modifiers = d_data->abortKeyModifiers; 142 144 } 143 145 … … 223 225 224 226 /*! 225 Return true if a orientatiois enabled227 \return True if an orientation is enabled 226 228 \sa orientations(), setOrientations() 227 229 */ … … 257 259 258 260 QPixmap pm( size() ); 259 pm.fill( parentWidget(), 0, 0);261 QwtPainter::fillPixmap( parentWidget(), pm ); 260 262 261 263 QPainter painter( &pm ); … … 298 300 /*! 299 301 Grab the widget into a pixmap. 302 \return Grabbed pixmap 300 303 */ 301 304 QPixmap QwtPanner::grab() const 302 305 { 306 #if QT_VERSION >= 0x050000 307 return parentWidget()->grab( parentWidget()->rect() ); 308 #else 303 309 return QPixmap::grabWidget( parentWidget() ); 310 #endif 304 311 } 305 312 … … 307 314 \brief Event filter 308 315 309 When isEnabled() the mouse events of the observed widget are filtered. 316 When isEnabled() is true mouse events of the 317 observed widget are filtered. 310 318 311 319 \param object Object to be filtered 312 320 \param event Event 313 321 322 \return Always false, beside for paint events for the 323 parent widget. 324 314 325 \sa widgetMousePressEvent(), widgetMouseReleaseEvent(), 315 326 widgetMouseMoveEvent() … … 324 335 case QEvent::MouseButtonPress: 325 336 { 326 widgetMousePressEvent( ( QMouseEvent * )event);337 widgetMousePressEvent( static_cast<QMouseEvent *>( event ) ); 327 338 break; 328 339 } 329 340 case QEvent::MouseMove: 330 341 { 331 widgetMouseMoveEvent( ( QMouseEvent * )event);342 widgetMouseMoveEvent( static_cast<QMouseEvent *>( event ) ); 332 343 break; 333 344 } 334 345 case QEvent::MouseButtonRelease: 335 346 { 336 widgetMouseReleaseEvent( ( QMouseEvent * )event);347 widgetMouseReleaseEvent( static_cast<QMouseEvent *>( event ) ); 337 348 break; 338 349 } 339 350 case QEvent::KeyPress: 340 351 { 341 widgetKeyPressEvent( ( QKeyEvent * )event);352 widgetKeyPressEvent( static_cast<QKeyEvent *>( event ) ); 342 353 break; 343 354 } 344 355 case QEvent::KeyRelease: 345 356 { 346 widgetKeyReleaseEvent( ( QKeyEvent * )event);357 widgetKeyReleaseEvent( static_cast<QKeyEvent *>( event ) ); 347 358 break; 348 359 } … … 368 379 void QwtPanner::widgetMousePressEvent( QMouseEvent *mouseEvent ) 369 380 { 370 if ( mouseEvent->button() != d_data->button ) 381 if ( ( mouseEvent->button() != d_data->button ) 382 || ( mouseEvent->modifiers() != d_data->buttonModifiers ) ) 383 { 371 384 return; 385 } 372 386 373 387 QWidget *w = parentWidget(); … … 375 389 return; 376 390 377 if ( ( mouseEvent->modifiers() & Qt::KeyboardModifierMask ) !=378 ( int )( d_data->buttonState & Qt::KeyboardModifierMask ) )379 {380 return;381 }382 383 391 #ifndef QT_NO_CURSOR 384 392 showCursor( true ); … … 391 399 // We don't want to grab the picker ! 392 400 QVector<QwtPicker *> pickers = qwtActivePickers( parentWidget() ); 393 for ( int i = 0; i < ( int )pickers.size(); i++ )401 for ( int i = 0; i < pickers.size(); i++ ) 394 402 pickers[i]->setEnabled( false ); 395 403 … … 397 405 d_data->contentsMask = contentsMask(); 398 406 399 for ( int i = 0; i < ( int )pickers.size(); i++ )407 for ( int i = 0; i < pickers.size(); i++ ) 400 408 pickers[i]->setEnabled( true ); 401 409 … … 472 480 void QwtPanner::widgetKeyPressEvent( QKeyEvent *keyEvent ) 473 481 { 474 if ( keyEvent->key() == d_data->abortKey ) 475 { 476 const bool matched = 477 ( keyEvent->modifiers() & Qt::KeyboardModifierMask ) == 478 ( int )( d_data->abortKeyState & Qt::KeyboardModifierMask ); 479 if ( matched ) 480 { 481 hide(); 482 #ifndef QT_NO_CURSOR 483 showCursor( false ); 484 #endif 485 d_data->pixmap = QPixmap(); 486 } 482 if ( ( keyEvent->key() == d_data->abortKey ) 483 && ( keyEvent->modifiers() == d_data->abortKeyModifiers ) ) 484 { 485 hide(); 486 487 #ifndef QT_NO_CURSOR 488 showCursor( false ); 489 #endif 490 d_data->pixmap = QPixmap(); 487 491 } 488 492 }
Note:
See TracChangeset
for help on using the changeset viewer.