[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