void deleteName(node ** book, char * name){ int i; char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; for (i = 0; i < 26; i++){ if (strncmp(alphabet+i, name, 1) == 0){ removeName(*(book+i), name); } } }
//Search for the currently selected and erase it void NameList::removeCurrent() { //Remove the selected row (if the current is valid) int row = _table->currentIndex().row(); if (row != -1) { removeName(_table->item(row, 0)->text()); removeAt(row); } }
void QvNode::setName(const QvName &newName) { if (! !(*objName)) { removeName(this, objName->getString()); } delete objName; const char *str = newName.getString(); QvBool isBad = 0; if (newName.getLength() > 0 && !QvName::isNodeNameStartChar(str[0])) isBad = TRUE; int i; for (i = 1; i < newName.getLength() && !isBad; i++) { isBad = !QvName::isNodeNameChar(str[i]); } if (isBad) { QvString goodString; if (!QvName::isNodeNameStartChar(str[0])) { goodString += "_"; } for (i = 0; i < newName.getLength(); i++) { char temp[2]; temp[0] = str[i]; temp[1] = '\0'; if (!QvName::isNodeNameChar(str[i])) goodString += "_"; else goodString += temp; } #ifdef DEBUG QvDebugError::post("QvNode::setName", "Bad characters in" " name '%s'. Replacing with name '%s'", str, goodString.getString()); #endif objName = new QvName(goodString); } else { objName = new QvName(newName); } if (! !(*objName)) { addName(this, objName->getString()); } }
QvNode::~QvNode() { if (! !(*objName)) removeName(this, objName->getString()); delete objName; }