void QCustomTableWidget::addCharacter(int index) { if(pChangeCharacterDial->exec()==QDialog::Accepted) { // updating the CharacterList if (pCharacters != NULL) { Character character(pChangeCharacterDial->name().toStdString(),pChangeCharacterDial->playerName().toStdString()); pCharacters->add(character,index+1); } // updating the display insertRow(index+1); int column_nb; column_nb = columnCount(); for (int i = 0; i < column_nb; i++) { QTableWidgetItem *row1 = new QTableWidgetItem("0"); setItem(index+1,i,row1); } QTableWidgetItem *rowHeaderItem = verticalHeaderItem(index+1); if (rowHeaderItem != NULL) { rowHeaderItem->setText(pChangeCharacterDial->name()+"\n"+pChangeCharacterDial->playerName()); } else { rowHeaderItem = new QTableWidgetItem(pChangeCharacterDial->name()+"\n"+pChangeCharacterDial->playerName()); setVerticalHeaderItem(index+1, rowHeaderItem); } resizeRowsToContents(); } }
void QCustomTableWidget::addCharacter(int index) { if (index < 0) { // if no row is selected, we insert it at the end index += rowCount(); } if(pChangeCharacterDial->exec()==QDialog::Accepted) { // updating the CharacterList if (pCharacters) { Character character(pChangeCharacterDial->name().toStdString(), pChangeCharacterDial->shortDescription().toStdString()); pCharacters->add(character,index+1); emit modificationDone(new CharacterModification(pCharacters, new Character(character), index+1, true)); } // updating the display int column_nb = columnCount(); // created cells iCreatedCells = column_nb; insertRow(index+1); for (int i = 0; i < column_nb; i++) { QTableWidgetItem *row1 = new QTableWidgetItem("0"); setItem(index+1,i,row1); } QTableWidgetItem *rowHeaderItem = verticalHeaderItem(index+1); if (rowHeaderItem) { rowHeaderItem->setText(headerText(pChangeCharacterDial->name(), pChangeCharacterDial->shortDescription())); } else { rowHeaderItem = new QTableWidgetItem(headerText(pChangeCharacterDial->name(), pChangeCharacterDial->shortDescription())); setVerticalHeaderItem(index+1, rowHeaderItem); } scrollTo(index+1, -1); } }
void QCustomTableWidget::editCharacter(int index) { if (index != -1) { scrollTo(index, -1); if (pCharacters) { Character &character = (*pCharacters)[index]; if(pChangeCharacterDial->exec(&character)==QDialog::Accepted) { // updating the CharacterList std::string name = character.name(); std::string shortDescription = character.shortDescription(); character.setName(pChangeCharacterDial->name().toStdString()); character.setShortDescription(pChangeCharacterDial->shortDescription().toStdString()); emit modificationDone(new CharacterModification(pCharacters, name, shortDescription, character.name(), character.shortDescription(), index)); QTableWidgetItem *rowHeaderItem = verticalHeaderItem(logicalRow(index)); rowHeaderItem->setText(headerText(pChangeCharacterDial->name(), pChangeCharacterDial->shortDescription())); } scrollTo(index, -1); } } }
void QCustomTableWidget::editCharacter(int index) { if(pChangeCharacterDial->exec()==QDialog::Accepted) { QTableWidgetItem *rowHeaderItem = verticalHeaderItem ( index ); if (rowHeaderItem != NULL) { rowHeaderItem->setText(pChangeCharacterDial->name()+"\n"+pChangeCharacterDial->playerName()); } else { rowHeaderItem = new QTableWidgetItem(pChangeCharacterDial->name()+"\n"+pChangeCharacterDial->playerName()); setVerticalHeaderItem(index, rowHeaderItem); } // updating the CharacterList if (pCharacters != NULL) { Character &charact = (*pCharacters)[index]; charact.setName(pChangeCharacterDial->name().toStdString()); charact.setPlayerName(pChangeCharacterDial->playerName().toStdString()); } } resizeRowToContents(index); }