Author: mir3x Date: Tue Nov 22 20:40:26 2016 New Revision: 34611 URL: http://svn.gna.org/viewcvs/freeciv?rev=34611&view=rev Log: Qt client - city dialog - allow scrolling using wheel without using scrollbar
See patch #8014 Modified: trunk/client/gui-qt/citydlg.cpp trunk/client/gui-qt/citydlg.h Modified: trunk/client/gui-qt/citydlg.cpp URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/citydlg.cpp?rev=34611&r1=34610&r2=34611&view=diff ============================================================================== --- trunk/client/gui-qt/citydlg.cpp (original) +++ trunk/client/gui-qt/citydlg.cpp Tue Nov 22 20:40:26 2016 @@ -433,6 +433,23 @@ } /**************************************************************************** + Mouse wheel event - send it to scrollbar +****************************************************************************/ +void impr_info::wheelEvent(QWheelEvent *event) +{ + QPoint p; + + p = parentWidget()->parentWidget()->pos(); + p = mapToGlobal(p); + QWheelEvent new_event(QPoint(5, 5), p + QPoint(5,5), event->pixelDelta(), + event->angleDelta(), + event->angleDelta().y(), + Qt::Horizontal, event->buttons(), + event->modifiers(), event->phase(), event->source()); + QApplication::sendEvent(parentWidget(), &new_event); +} + +/**************************************************************************** Updates list of improvements ****************************************************************************/ void impr_info::update_buildings() @@ -462,6 +479,24 @@ setUpdatesEnabled(true); layout->update(); updateGeometry(); +} + +/**************************************************************************** + Mouse wheel event - send it to scrollbar +****************************************************************************/ +void impr_item::wheelEvent(QWheelEvent *event) +{ + QPoint p; + + p = parentWidget()->parentWidget()->pos(); + p = mapToGlobal(p); + QWheelEvent new_event(QPoint(5, 5), p + QPoint(5,5), event->pixelDelta(), + event->angleDelta(), + event->angleDelta().y(), + Qt::Horizontal, event->buttons(), + event->modifiers(), event->phase(), event->source()); + QApplication::sendEvent(parentWidget()->parentWidget(), + &new_event); } /**************************************************************************** @@ -834,6 +869,25 @@ } /**************************************************************************** + Mouse wheel event - send it to scrollbar +****************************************************************************/ +void unit_item::wheelEvent(QWheelEvent *event) +{ + QPoint p; + + p = parentWidget()->parentWidget()->pos(); + p = mapToGlobal(p); + QWheelEvent new_event(QPoint(5, 5), p + QPoint(5,5), event->pixelDelta(), + event->angleDelta(), + event->angleDelta().y(), + Qt::Horizontal, event->buttons(), + event->modifiers(), event->phase(), event->source()); + QApplication::sendEvent(parentWidget()->parentWidget(), + &new_event); +} + + +/**************************************************************************** Mouse press event -activates unit and closes dialog ****************************************************************************/ void unit_item::mousePressEvent(QMouseEvent *event) @@ -895,6 +949,22 @@ setLayout(layout); } +/**************************************************************************** + Mouse wheel event - send it to scrollbar +****************************************************************************/ +void unit_info::wheelEvent(QWheelEvent *event) +{ + QPoint p; + + p = parentWidget()->parentWidget()->pos(); + p = mapToGlobal(p); + QWheelEvent new_event(QPoint(5, 5), p + QPoint(5,5), event->pixelDelta(), + event->angleDelta(), + event->angleDelta().y(), + Qt::Horizontal, event->buttons(), + event->modifiers(), event->phase(), event->source()); + QApplication::sendEvent(parentWidget(), &new_event); +} /**************************************************************************** Updates units Modified: trunk/client/gui-qt/citydlg.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/citydlg.h?rev=34611&r1=34610&r2=34611&view=diff ============================================================================== --- trunk/client/gui-qt/citydlg.h (original) +++ trunk/client/gui-qt/citydlg.h Tue Nov 22 20:40:26 2016 @@ -140,6 +140,7 @@ void unload_all(); protected: + void wheelEvent(QWheelEvent *event); void mousePressEvent(QMouseEvent *event); void leaveEvent(QEvent *event); void enterEvent(QEvent *event); @@ -165,6 +166,8 @@ private: bool supports; +protected: + void wheelEvent(QWheelEvent *event); }; @@ -186,6 +189,7 @@ struct city *pcity; protected: + void wheelEvent(QWheelEvent *event); void mouseDoubleClickEvent(QMouseEvent *event); void leaveEvent(QEvent *event); void enterEvent(QEvent *event); @@ -207,6 +211,8 @@ void clear_layout(); QHBoxLayout *layout; QList<impr_item *> impr_list; +protected: + void wheelEvent(QWheelEvent *event); }; /**************************************************************************** _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits