-rw-r--r-- | library/qpeapplication.cpp | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 59ca61b..acad81d 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -96,10 +96,14 @@ #include <sys/soundcard.h> #endif #include "qt_override_p.h" +#include <qpe/rohfeedback.h> + + static bool useBigPixmaps = 0; + class HackWidget : public QWidget { public: bool needsOk() @@ -125,8 +129,9 @@ public: fontFamily = cfg.readEntry( "FontFamily", "Vera" ); fontSize = cfg.readNumEntry( "FontSize", 10 ); smallIconSize = cfg.readNumEntry( "SmallIconSize", 14 ); bigIconSize = cfg.readNumEntry( "BigIconSize", 32 ); + RoH = 0; } int presstimer; QWidget* presswidget; @@ -491,8 +496,10 @@ static void qpe_show_dialog( QDialog* d, bool nomax ) delete lib; } } } + + Opie::Internal::RoHFeedback * RoH; }; class ResourceMimeFactory : public QMimeSourceFactory { @@ -1204,9 +1211,9 @@ QPEApplication::~QPEApplication() // be gone by the time we get to ~QObject(). delete sysChannel; delete pidChannel; #endif - + delete d->RoH; delete d; } /*! @@ -2022,25 +2029,43 @@ bool QPEApplication::eventFilter( QObject *o, QEvent *e ) case RightOnHold: switch ( me->type() ) { case QEvent::MouseButtonPress: if ( me->button() == LeftButton ) { - if (!d->presstimer ) - d->presstimer = startTimer(500); // #### pref. d->presswidget = (QWidget*)o; d->presspos = me->pos(); d->rightpressed = FALSE; + // just for the time being + static int pref = 500; +#ifdef WITHROHFEEDBACK + if( ! d->RoH ) + d->RoH = new Opie::Internal::RoHFeedback; + + d->RoH->init( me->globalPos(), d->presswidget ); + pref = d->RoH->delay(); +#endif + if (!d->presstimer ) + d->presstimer = startTimer( pref ); // #### pref. + } break; case QEvent::MouseMove: if (d->presstimer && (me->pos() - d->presspos).manhattanLength() > 8) { killTimer(d->presstimer); +#ifdef WITHROHFEEDBACK + if( d->RoH ) + d->RoH->stop( ); +#endif d->presstimer = 0; } break; case QEvent::MouseButtonRelease: if ( me->button() == LeftButton ) { if ( d->presstimer ) { killTimer(d->presstimer); +#ifdef WITHROHFEEDBACK + if( d->RoH ) + d->RoH->stop( ); +#endif d->presstimer = 0; } if ( d->rightpressed && d->presswidget ) { // Right released @@ -2092,8 +2117,9 @@ void QPEApplication::timerEvent( QTimerEvent *e ) RightButton, LeftButton ) ); killTimer( d->presstimer ); d->presstimer = 0; d->rightpressed = TRUE; + d->RoH->stop(); } } void QPEApplication::removeSenderFromStylusDict() |