@@ -148,7 +148,9 @@ def insertColumn(self, column_name: str):
148148
149149 return True
150150
151- def setData (self , index , value , role = Qt .EditRole ):
151+ def setData (
152+ self , index , value , role = Qt .EditRole , check_multi : bool = True
153+ ):
152154 if not (index .isValid () and role == Qt .EditRole ):
153155 return False
154156
@@ -157,8 +159,10 @@ def setData(self, index, value, role=Qt.EditRole):
157159
158160 if is_invalid (value ) or value == "" :
159161 value = None
160- # check whether multiple rows but only one column is selected
161- multi_row_change , selected = self .check_selection ()
162+ multi_row_change = False
163+ if check_multi :
164+ # check whether multiple rows but only one column is selected
165+ multi_row_change , selected = self .check_selection ()
162166 if not multi_row_change :
163167 self .undo_stack .beginMacro ("Set data" )
164168 success = self ._set_data_single (index , value )
@@ -250,6 +254,14 @@ def _push_change_and_notify(
250254 [Qt .DisplayRole ])
251255 self .something_changed .emit (True )
252256
257+ def clear_cells (self , selected ):
258+ """Clear the selected cells."""
259+ self .undo_stack .beginMacro ("Clear cells" )
260+ for index in selected :
261+ if index .isValid ():
262+ self .setData (index , None , Qt .EditRole , False )
263+ self .undo_stack .endMacro ()
264+
253265 def handle_named_index (self , index , value ):
254266 """Handle the named index column."""
255267 pass
0 commit comments