[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [knights] src: No need to recalculate the legal moves if the user clicked on the piece that is alrea
From:       Alexander Semke <null () kde ! org>
Date:       2018-09-14 6:54:18
Message-ID: E1g0hzf-0001oB-00 () code ! kde ! org
[Download RAW message or body]

Git commit 314a4cd560a9ac423a5fab59cfbe08dd0cab0984 by Alexander Semke.
Committed on 14/09/2018 at 06:53.
Pushed by asemke into branch 'master'.

No need to recalculate the legal moves if the user clicked on the piece that is already selected.

M  +16   -14   src/board.cpp

https://commits.kde.org/knights/314a4cd560a9ac423a5fab59cfbe08dd0cab0984

diff --git a/src/board.cpp b/src/board.cpp
index 530155c..a63a6bd 100644
--- a/src/board.cpp
+++ b/src/board.cpp
@@ -224,23 +224,25 @@ void Board::mousePressEvent(QGraphicsSceneMouseEvent* e) {
 		}
 	} else {
 		// The active player clicked on his/her own piece
-		qDeleteAll ( markers );
-		markers.clear();
+		if (d_piece != selectedPiece) {
+			qDeleteAll ( markers );
+			markers.clear();
 
-		selectedPiece = d_piece;
+			selectedPiece = d_piece;
 
-		Pos t_pos = mapFromScene ( e->scenePos() );
-		QList<Move> t_legalMoves = Manager::self()->rules()->legalMoves ( t_pos );
-		if ( t_legalMoves.isEmpty() ) {
-			e->ignore();
-			return;
-		}
-		d_piece->setZValue ( dragZValue );
-		if ( Settings::showMarker() ) {
-			for ( const Move& t_move : t_legalMoves )
-				addMarker ( t_move.to(), LegalMove );
+			Pos t_pos = mapFromScene ( e->scenePos() );
+			QList<Move> t_legalMoves = Manager::self()->rules()->legalMoves ( t_pos );
+			if ( t_legalMoves.isEmpty() ) {
+				e->ignore();
+				return;
+			}
+			d_piece->setZValue ( dragZValue );
+			if ( Settings::showMarker() ) {
+				for ( const Move& t_move : t_legalMoves )
+					addMarker ( t_move.to(), LegalMove );
+			}
+			draggedPiece = d_piece;
 		}
-		draggedPiece = d_piece;
 		m_draggedPos = e->scenePos();
 		dragStartPoint = e->screenPos();
 	}
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic