X now clears the scribble

master
En Yi 2018-07-21 16:26:40 +08:00
parent 1ff6fd522b
commit e9be3dca6d
3 changed files with 17 additions and 8 deletions

View File

@ -44,6 +44,9 @@ class SudokuSystem:
if val == 0:
self.change_cell_status(row, col, EMPTY)
def clear_scribble(self, row, col):
self.scribbles[row, col] = ''
def toggle_scribble(self, row, col, val):
if val in self.scribbles[row, col]:
self.scribbles[row, col] = self.scribbles[row, col].replace(val, '')

View File

@ -130,12 +130,11 @@ class GameBoard(BoxBoard):
self.numring.scribbling = scribbling
def select_ring_number(self, val, scribbling):
if val == 'X':
val = 0
if scribbling:
if not val == 'X':
self.gamegrid.change_cell_scribbles(val)
self.gamegrid.change_cell_scribbles(val)
else:
if val == 'X':
val = 0
self.gamegrid.replace_cell_number(int(val))
def game_refocus(self):

View File

@ -174,7 +174,10 @@ class SudokuGrid(BaseSudokuItem):
self.update()
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()
def replace_cell_number(self, val):
@ -276,8 +279,6 @@ class NumberRing(BaseSudokuItem):
self.cell_height = 24
self.cell_buttons = []
for btn in self.cell_buttons:
btn.buttonClicked.connect(func)
for i in range(10):
if i == 0:
cell_string = 'X'
@ -344,6 +345,12 @@ class NumberRing(BaseSudokuItem):
else:
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):
if not self.scribbling:
self.toggle_anim(False)
@ -364,7 +371,7 @@ class NumberRing(BaseSudokuItem):
if txt:
print('keypress:', txt)
self.keyPressed.emit(txt, self.scribbling)
if not self.scribbling or txt == 'X':
if not self.scribbling:
self.clearFocus()
def keyReleaseEvent(self, event):