From 4ed1a2e50305c7f691ecdc90db19ef77c3380646 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arto=20Hyv=C3=A4ttinen?= Date: Thu, 19 Aug 2010 23:10:07 +0300 Subject: [PATCH] Distance double clicks control delete old clocks only onece in starting new game. --- chessclockwindow.cpp | 6 +----- classes/clockswidget.cpp | 17 +++++++++++++++-- classes/clockswidget.h | 5 ++++- plan/ChessClock.zargo | Bin 0 -> 7493 bytes 4 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 plan/ChessClock.zargo diff --git a/chessclockwindow.cpp b/chessclockwindow.cpp index 7e49c0e..b30b5f3 100644 --- a/chessclockwindow.cpp +++ b/chessclockwindow.cpp @@ -113,11 +113,7 @@ void ChessClockWindow::startGame(TimeControl *timecontrol) ClocksWidget* newWidget = timecontrol->initGame(false); if( newWidget ) { - if( clocks_ ) - { - stack_->removeWidget(clocks_); - delete clocks_; - } + clocks_ = newWidget; stack_->addWidget(clocks_); stack_->setCurrentWidget(clocks_); diff --git a/classes/clockswidget.cpp b/classes/clockswidget.cpp index 82cf7c3..859925f 100644 --- a/classes/clockswidget.cpp +++ b/classes/clockswidget.cpp @@ -28,7 +28,8 @@ #include #include #include - +#include +#include ClocksWidget::ClocksWidget(ChessClock *white, ChessClock *black, QWidget *parent): QWidget(parent) @@ -74,6 +75,8 @@ ClocksWidget::ClocksWidget(ChessClock *white, ChessClock *black, QWidget *parent black_->setAnother(white_); delayTimer_.start(); // Initial start + + recentX = recentY = -1; } ClocksWidget::~ClocksWidget() @@ -110,8 +113,16 @@ void ClocksWidget::stopPlay() void ClocksWidget::mouseReleaseEvent(QMouseEvent *event) { - if( delayTimer_.elapsed() > CLICKDELAY ) // To avoid double clicks + + // To avoid double clicks + // a) delay (default 1,2 secs) OR + // b) distance more than 90 pixels in axis. + if( delayTimer_.elapsed() > CLICKDELAY || + std::abs( event->x() - recentX ) > 90 || + std::abs( event->y() - recentY ) > 90 + ) { + delayTimer_.start(); // to reset delay timer! switch( status_) { case Welcome : @@ -150,6 +161,8 @@ void ClocksWidget::mouseReleaseEvent(QMouseEvent *event) } } + recentX = event->x(); + recentY = event->y(); } int const ClocksWidget::CLICKDELAY; diff --git a/classes/clockswidget.h b/classes/clockswidget.h index 4f87423..d7e2ba7 100644 --- a/classes/clockswidget.h +++ b/classes/clockswidget.h @@ -83,7 +83,10 @@ protected: GameStatus status_; QTime delayTimer_; /*! To avoid double clicks */ - static int const CLICKDELAY = 500 ; /*! Click delay in msecs */ + int recentX; + int recentY; + + static int const CLICKDELAY = 1500 ; /*! Click delay in msecs */ diff --git a/plan/ChessClock.zargo b/plan/ChessClock.zargo new file mode 100644 index 0000000000000000000000000000000000000000..f68c9440a2113e23c984d9ad54895fbf0137888f GIT binary patch literal 7493 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

Z|N8Q5 z8^~bo3`a53$YX}vt0vdF7Ddwn;K{%a+%Kcm!RcM45!Z@l#Q3qk9xnU=r$0l%(2kw} z@w_!aCz1OdNI*0PmLl1>d5ZpHdl{SHT2%0@ftrpUp9?sEVD)XCHffhMZ7EkcE(7wD~9V{3h2G*XtR0cWYS~so%uK?q zVw*YFB3p7v84mJ8+>Bp{MNS3GO~*b{GkkwuBrmu3oOZZgPxG@KdU<`uj^sNmsqhdJDWQamCS@MJeqhTZ zcqoY3C#5~pVi`|7brKy5y6TX&>pFH)2oua~59i5(k_%E@a}^E;_c}$Ucyho#?g$cy zvI~E(E<-j^yV)nbUc)PBRQSzVD{=GBLMg2SuX(ukknWrlMN_E~h|Da>*+;Ex^XXBr|tBt2Q0 zlgT-KdTiwqJ((fQq1j|~lQ~qIY=|u`$+4LT<49h-2sve~FSJ0`gCK81T^($0AsyLhw( zT$e#oXc9a&N@TtRyS(X4T)ME^htY%l4SmX{H07V&zS9J2#|qTt zQ!Wr@R;aKoIC17pOG;Kb(n`#KeUb_3slukgHhmu*`<^G}5Ry1hEf3rm*)A)+bCdg| zntTcI;9w1TNtYm4rI&S|eGSWJT-FbEvtedaz?Q_&5m0bhyhx^*^Vcf=@SgNoNL0}w zVmr~+*~f-9HQb5G4GOb?nTtp^x@y^h)aLuKZM6({^;KbidyYq}^>(_^im*$!zf2xQ z8@q#ROSYPaGi7SfgxYoePclLaxw+j11>_NO+7H8QEzh5?JIw4n5lKIxe(zhprH89A z+$(7ij9(=iV6V8{5IJpsL*-j+Gruqyt9LysD+)GwW{$ zyXrbr^Xn(6g0DU)VVh#;&4f=?Yjx%E&!w{{5lX5bkdQko8)njIBh)AbtDy+IxzZ6b z=^{%~bCXGA{;pz+m!y`gh^x}}_E3Mg^~&-6FZ9SgGi$F;gc%klNGptYpW=S1fi>Xs zH5O_L&vapDWYfnFa5V!;_0Y%FLmNI5M;u;10C@tIolIQh20BIyUmobn-RJHOFNwJi zpIg@2dswcIbif(uezGA2oQ4ji^JppiC^5UC+fUHydW-aoKz~=2PY`VMtu!xZDm~EI zHsmRK;X~90$w=BgyE~Ygh%-HN+;5%U=@rnqEW`rmZt9K!BmCE3*sMn8~Y(r@c8Suj2ndd-->#zk7v0&gd_o{ATsHPXB{X`ggCttNDLU2?y)% zz1aVFjei&aT~GfJ{C}b2AI1Nc|Nrju_ci~czW;&;_CHAc*5WGi@V|pB0080lNP+