mirror of
git://git.savannah.nongnu.org/eliot.git
synced 2024-12-25 21:59:30 +01:00
RackWidget: only allow drag & drop if there is no preview on the board
This commit is contained in:
parent
cedb320f91
commit
0763c0771b
2 changed files with 14 additions and 0 deletions
|
@ -170,12 +170,24 @@ vector<Tile> RackWidget::filterRack(const vector<Tile> &iTiles) const
|
|||
// Drag & drop handling
|
||||
|
||||
|
||||
bool RackWidget::canStartDragDrop() const
|
||||
{
|
||||
if (m_game == NULL || m_game->isFinished())
|
||||
return false;
|
||||
// Drag & drop is not allowed when a word is being played
|
||||
return m_tiles.size() == m_filteredTiles.size();
|
||||
}
|
||||
|
||||
|
||||
void RackWidget::tilePressed(int row, int col, QMouseEvent *event)
|
||||
{
|
||||
ASSERT(row == 0, "Multi-line racks are not supported");
|
||||
ASSERT(col >= 0 && (unsigned)col < m_tilesVect.size(),
|
||||
"Invalid tile index: " << col);
|
||||
|
||||
if (!canStartDragDrop())
|
||||
return;
|
||||
|
||||
LOG_DEBUG("Starting drag for tile " << col);
|
||||
|
||||
TileWidget *tileWidget = m_tilesVect[col];
|
||||
|
|
|
@ -102,6 +102,8 @@ private:
|
|||
*/
|
||||
vector<Tile> filterRack(const vector<Tile> &iTiles) const;
|
||||
|
||||
bool canStartDragDrop() const;
|
||||
|
||||
/**
|
||||
* Return the 0-based index of the tile found at the given (relative)
|
||||
* position. If there is no such tile, return -1.
|
||||
|
|
Loading…
Reference in a new issue