X now clears the scribble
parent
1ff6fd522b
commit
e9be3dca6d
|
@ -44,6 +44,9 @@ class SudokuSystem:
|
||||||
if val == 0:
|
if val == 0:
|
||||||
self.change_cell_status(row, col, EMPTY)
|
self.change_cell_status(row, col, EMPTY)
|
||||||
|
|
||||||
|
def clear_scribble(self, row, col):
|
||||||
|
self.scribbles[row, col] = ''
|
||||||
|
|
||||||
def toggle_scribble(self, row, col, val):
|
def toggle_scribble(self, row, col, val):
|
||||||
if val in self.scribbles[row, col]:
|
if val in self.scribbles[row, col]:
|
||||||
self.scribbles[row, col] = self.scribbles[row, col].replace(val, '')
|
self.scribbles[row, col] = self.scribbles[row, col].replace(val, '')
|
||||||
|
|
|
@ -130,12 +130,11 @@ class GameBoard(BoxBoard):
|
||||||
self.numring.scribbling = scribbling
|
self.numring.scribbling = scribbling
|
||||||
|
|
||||||
def select_ring_number(self, val, scribbling):
|
def select_ring_number(self, val, scribbling):
|
||||||
|
if val == 'X':
|
||||||
|
val = 0
|
||||||
if scribbling:
|
if scribbling:
|
||||||
if not val == 'X':
|
self.gamegrid.change_cell_scribbles(val)
|
||||||
self.gamegrid.change_cell_scribbles(val)
|
|
||||||
else:
|
else:
|
||||||
if val == 'X':
|
|
||||||
val = 0
|
|
||||||
self.gamegrid.replace_cell_number(int(val))
|
self.gamegrid.replace_cell_number(int(val))
|
||||||
|
|
||||||
def game_refocus(self):
|
def game_refocus(self):
|
||||||
|
|
|
@ -174,7 +174,10 @@ class SudokuGrid(BaseSudokuItem):
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def change_cell_scribbles(self, val):
|
def change_cell_scribbles(self, val):
|
||||||
self.sudoku_grid.toggle_scribble(self.mouse_h, self.mouse_w, val)
|
if val == 0:
|
||||||
|
self.sudoku_grid.clear_scribble(self.mouse_h, self.mouse_w)
|
||||||
|
else:
|
||||||
|
self.sudoku_grid.toggle_scribble(self.mouse_h, self.mouse_w, val)
|
||||||
self.grid_painter.update()
|
self.grid_painter.update()
|
||||||
|
|
||||||
def replace_cell_number(self, val):
|
def replace_cell_number(self, val):
|
||||||
|
@ -276,8 +279,6 @@ class NumberRing(BaseSudokuItem):
|
||||||
self.cell_height = 24
|
self.cell_height = 24
|
||||||
|
|
||||||
self.cell_buttons = []
|
self.cell_buttons = []
|
||||||
for btn in self.cell_buttons:
|
|
||||||
btn.buttonClicked.connect(func)
|
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
if i == 0:
|
if i == 0:
|
||||||
cell_string = 'X'
|
cell_string = 'X'
|
||||||
|
@ -344,6 +345,12 @@ class NumberRing(BaseSudokuItem):
|
||||||
else:
|
else:
|
||||||
self.setFocus()
|
self.setFocus()
|
||||||
|
|
||||||
|
def mousePressEvent(self, event):
|
||||||
|
if not any(btn.isUnderMouse() for btn in self.cell_buttons):
|
||||||
|
self.toggle_anim(False)
|
||||||
|
else:
|
||||||
|
self.setFocus()
|
||||||
|
|
||||||
def close_menu(self):
|
def close_menu(self):
|
||||||
if not self.scribbling:
|
if not self.scribbling:
|
||||||
self.toggle_anim(False)
|
self.toggle_anim(False)
|
||||||
|
@ -364,7 +371,7 @@ class NumberRing(BaseSudokuItem):
|
||||||
if txt:
|
if txt:
|
||||||
print('keypress:', txt)
|
print('keypress:', txt)
|
||||||
self.keyPressed.emit(txt, self.scribbling)
|
self.keyPressed.emit(txt, self.scribbling)
|
||||||
if not self.scribbling or txt == 'X':
|
if not self.scribbling:
|
||||||
self.clearFocus()
|
self.clearFocus()
|
||||||
|
|
||||||
def keyReleaseEvent(self, event):
|
def keyReleaseEvent(self, event):
|
||||||
|
|
Loading…
Reference in New Issue