code: def insert_item(self):
          
          index = self.currentIndex()
          if not index.isValid():
              row = self.model.rowCount()
          else:
              row = index.row()
          data = self.model.get_data()
          if isinstance(data, list):
              key = row
              data.insert(row, '')
          elif isinstance(data, dict):
              key, valid = QInputDialog.getText(self, _( 'Insert'), _( 'Key:'),
                                                QLineEdit.Normal)
              if valid and to_text_string(key):
                  key = try_to_eval(to_text_string(key))
              else:
                  return
          else:
              return
          value, valid = QInputDialog.getText(self, _('Insert'), _('Value:'),
                                              QLineEdit.Normal)
          if valid and to_text_string(value):
              self.new_value(key, try_to_eval(to_text_string(value)))
docs: Insert item