@@ -1574,43 +1574,26 @@ def events_time2run(self, rowindex: int, colindex: int):
15741574 timeunit = self .target_run .events ['time' ]['unit' ] or 1
15751575 start = self .target_run .events ['time' ]['start' ] or {'' : '' }
15761576
1577- if key == 'columns' :
1578- try :
1577+ try :
1578+ if key == 'columns' :
15791579 value = ast .literal_eval (value ) # Convert stringified list back to list
15801580 LOGGER .verbose (f"User sets events['timecols'] from '{ timecols } ' to '{ value } ' for { self .target_run } " )
15811581 self .target_run .events ['time' ]['cols' ] = value
1582- except (ValueError , SyntaxError ):
1583- QMessageBox .warning (self , 'Input error' , f"Please enter a valid '{ value } ' list" )
1584- self .events_time .blockSignals (True )
1585- self .events_time .item (rowindex , colindex ).setText (timecols ) # Reset the value to the original timecols
1586- self .events_time .blockSignals (False )
1587-
1588- elif key == 'units/sec' :
1589- try :
1582+ elif key == 'units/sec' :
15901583 value = int (value )
15911584 LOGGER .verbose (f"User sets events['units/sec'] from '{ timeunit } ' to '{ value } ' for { self .target_run } " )
15921585 self .target_run .events ['time' ]['unit' ] = value
1593- except (ValueError , TypeError ):
1594- QMessageBox .warning (self , 'Input error' , f"Please enter a valid '{ value } ' integer" )
1595- self .events_time .blockSignals (True )
1596- self .events_time .item (rowindex , colindex ).setText (timeunit ) # Reset the value to the original timecols
1597- self .events_time .blockSignals (False )
1598-
1599- elif key == 'start' :
1600- try :
1586+ elif key == 'start' :
16011587 value = ast .literal_eval (value ) # Convert stringified list back to list
16021588 LOGGER .verbose (f"User sets events['{ key } '] from '{ start } ' to '{ value } ' for { self .target_run } " )
16031589 self .target_run .events ['time' ]['start' ] = value
1604- except (ValueError , SyntaxError ):
1605- QMessageBox .warning (self , 'Input error' , f"Please enter a valid '{ value } ' dictionary" )
1606- self .events_time .blockSignals (True )
1607- self .events_time .item (rowindex , 1 ).setText (start ) # Reset the value to the original start
1608- self .events_time .blockSignals (False )
1590+ except (ValueError , SyntaxError ):
1591+ QMessageBox .warning (self , 'Input error' , f"Please enter a valid '{ value } ' value" )
16091592
16101593 # Refresh the events tables, i.e. delete empty rows or add a new row if a key is defined on the last row
16111594 _ ,_ ,_ ,_ ,events_data = self .run2data ()
1612- for name in ( 'table' ,): # events_data:
1613- self .fill_table (self .events_table , events_data [name ])
1595+ self . fill_table ( self . events_time , events_data [ 'time' ])
1596+ self .fill_table (self .events_table , events_data ['table' ])
16141597
16151598 def events_rows2run (self , rowindex : int , colindex : int ):
16161599 """Events value has been changed. Read the data from the event 'rows' table"""
@@ -1620,16 +1603,16 @@ def events_rows2run(self, rowindex: int, colindex: int):
16201603 mapping = self .events_rows .item (rowindex , colindex ).text ().strip () if self .events_rows .item (rowindex , colindex ) else ''
16211604 nrows = self .events_rows .rowCount ()
16221605
1623- LOGGER .verbose (f"User sets events['rows'][{ rowindex } ] to { mapping } ' for { self .target_run } " )
16241606 if mapping :
16251607 try :
16261608 mapping = ast .literal_eval (mapping ) # Convert stringified dict back to dict
1609+ LOGGER .verbose (f"User sets events['rows'][{ rowindex } ] to { mapping } ' for { self .target_run } " )
1610+ if rowindex == nrows - 1 :
1611+ self .target_run .events ['rows' ].append ({'include' if colindex == 0 else 'cast' : mapping })
1612+ else :
1613+ self .target_run .events ['rows' ][rowindex ]['include' if colindex == 0 else 'cast' ] = mapping
16271614 except (ValueError , SyntaxError ):
1628- mapping = {}
1629- if rowindex == nrows - 1 :
1630- self .target_run .events ['rows' ].append ({'include' if colindex == 0 else 'cast' : mapping })
1631- else :
1632- self .target_run .events ['rows' ][rowindex ]['include' if colindex == 0 else 'cast' ] = mapping
1615+ QMessageBox .warning (self , 'Input error' , f"Please enter a valid '{ mapping } ' dictionary" )
16331616 elif colindex == 0 and rowindex < nrows - 1 : # Remove the row
16341617 del self .target_run .events ['rows' ][rowindex ]
16351618 else :
@@ -1649,21 +1632,26 @@ def events_columns2run(self, rowindex: int, colindex: int):
16491632 input = self .events_columns .item (rowindex , 0 ).text ().strip () if self .events_columns .item (rowindex , 0 ) else ''
16501633 output = self .events_columns .item (rowindex , 1 ).text ().strip () if self .events_columns .item (rowindex , 1 ) else ''
16511634 nrows = self .events_columns .rowCount ()
1652- LOGGER .verbose (f"User sets the column { colindex } to: '{ input } : { output } ' for { self .target_run } " )
1653- if input and output : # Evaluate and store the data
1654- if rowindex == nrows - 1 :
1655- self .target_run .events ['columns' ].append ({output : input })
1656- self .events_columns .insertRow (nrows )
1657- else :
1658- self .target_run .events ['columns' ][rowindex ] = {output : input }
1659- elif rowindex < nrows - 1 : # Remove the row
1660- del self .target_run .events ['columns' ][rowindex ]
1661- self .events_columns .blockSignals (True ) # Not sure if this is needed?
1662- self .events_columns .removeRow (rowindex )
1663- self .events_columns .blockSignals (False )
1635+
1636+ if input and not output :
1637+ output = input
1638+
1639+ if not input or input in self .target_run .eventsparser ().logtable :
1640+ LOGGER .verbose (f"User sets the column { colindex } to: '{ input } : { output } ' for { self .target_run } " )
1641+ if output : # Evaluate and store the data
1642+ if rowindex == nrows - 1 :
1643+ self .target_run .events ['columns' ].append ({output : input })
1644+ self .events_columns .insertRow (nrows )
1645+ else :
1646+ self .target_run .events ['columns' ][rowindex ] = {output : input }
1647+ elif rowindex < nrows - 1 : # Remove the row
1648+ del self .target_run .events ['columns' ][rowindex ]
1649+ else :
1650+ QMessageBox .warning (self , 'Input error' , f"The '{ input } ' input column does not exist, please enter a valid name" )
16641651
16651652 # Refresh the events tables, i.e. delete empty rows or add a new row if a key is defined on the last row
16661653 _ ,_ ,_ ,_ ,events_data = self .run2data ()
1654+ self .fill_table (self .events_columns , events_data ['columns' ])
16671655 self .fill_table (self .events_table , events_data ['table' ])
16681656
16691657 def edit_events (self ):
0 commit comments