void DataColumn::addRow() { // Creates a pointer to a new DataRow and adds it to the end of the DataColumn DataRow* newRow = new DataRow; // If firstRow is NULL, list is empty so we need to make the firstRow // Else append the new DataRow to the end of the DataColumn if ( m_firstRow == NULL ) { newRow->setNext(NULL); newRow->setPrev(NULL); m_firstRow = newRow; m_lastRow = newRow; } else { newRow->setNext(NULL); newRow->setPrev(m_lastRow); m_lastRow->setNext(newRow); m_lastRow = newRow; } // Sets the currentRow pointer to the newly created DataRow for editing purposes later on m_currentRow = m_lastRow; }
void DataColumn::removeAll() { // Removes all the rows within the DataColumn if ( m_firstRow == NULL ) { return; } DataRow* rowToDelete; DataRow* currentRow = m_firstRow; while ( currentRow->getNext() != NULL ) { rowToDelete = currentRow; currentRow = currentRow->getNext(); rowToDelete->setPrev(NULL); rowToDelete->setNext(NULL); rowToDelete->setText(""); delete rowToDelete; } m_firstRow = NULL; m_lastRow = NULL; m_currentRow = NULL; }
void DataColumn::removeRow() { // Removes the current DataRow from the DataColumn and the // currentRow pointer will be set to the DataRow after the DataRow you are deleting if ( m_firstRow == NULL ) { return; } DataRow* row; // deals with the case if you only have one row in your DataColumn list if ( m_firstRow == m_lastRow ) { row = m_firstRow; row->setNext(NULL); row->setPrev(NULL); row->setText(""); delete row; m_firstRow = NULL; m_lastRow = NULL; m_currentRow = NULL; return; } // deals with if the row up for deletion is the first row or the last row in the DataColumn list if ( m_currentRow == m_firstRow ) { row = m_firstRow; m_firstRow = m_firstRow->getNext(); row->setNext(NULL); row->setPrev(NULL); row->setText(""); m_firstRow->setPrev(NULL); m_currentRow = m_firstRow; return; } else if ( m_currentRow == m_lastRow ) { row = m_lastRow; m_lastRow = m_lastRow->getPrev(); m_lastRow->setNext(NULL); row->setNext(NULL); row->setPrev(NULL); row->setText(""); m_currentRow = m_lastRow; delete row; return; } // deals with a random DataRow in the DataColumn up for deletion row = m_currentRow; m_currentRow->getPrev()->setNext(m_currentRow->getNext()); m_currentRow->getNext()->setPrev(m_currentRow->getPrev()); row->setPrev(NULL); row->setNext(NULL); row->setText(""); m_currentRow = m_currentRow->getNext(); delete row; }