'Copy item'

def copy_item(self, erase_original=False):

    indexes = self.selectedIndexes()
    if (not indexes):
        return
    idx_rows = unsorted_unique([idx.row() for idx in indexes])
    if ((len(idx_rows) > 1) or (not indexes[0].isValid())):
        return
    orig_key = self.model.keys[idx_rows[0]]
    if erase_original:
        title = _('Rename')
        field_text = _('New    variable    name:')
    else:
        title = _('Duplicate')
        field_text = _('Variable    name:')
    (new_key, valid) = QInputDialog.getText(self, title, field_text, QLineEdit.Normal, orig_key)
    if (valid and to_text_string(new_key)):
        new_key = try_to_eval(to_text_string(new_key))
        if (new_key == orig_key):
            return
        self.copy_value(orig_key, new_key)
        if erase_original:
            self.remove_values([orig_key])
