This commit is contained in:
Herwig Birke
2018-05-18 13:07:08 +02:00
parent f8c2b163fb
commit aa3c263d70
3 changed files with 53 additions and 0 deletions
+5
View File
@@ -131,6 +131,11 @@ void cScene::addCharacter(cCharacter* lpCharacter, cTextDocument* lpDescription)
m_characterList.append(new cCharacterDescription(lpCharacter, lpDescription));
}
void cScene::removeCharacter(cCharacterDescription* lpCharacter)
{
m_characterList.removeOne(lpCharacter);
}
QList<cCharacterDescription*> cScene::characterList()
{
return(m_characterList);
+8
View File
@@ -215,6 +215,14 @@ public:
/*!
\brief
\fn addCharacter
\param lpCharacter
\param lpDescription
*/
void removeCharacter(cCharacterDescription* lpCharacter);
/*!
\brief
\fn characterList
\return QList<cCharacter *>
*/
+40
View File
@@ -14,6 +14,7 @@
#include <QStandardItem>
#include <QMenu>
#include <QMessageBox>
cSceneWindow::cSceneWindow(QWidget *parent) :
@@ -393,12 +394,51 @@ void cSceneWindow::onAddCharacterToList()
ui->m_lpCharacterRemove->setEnabled((ui->m_lpCharacterList->count() > 0));
ui->m_lpCharacterShowDetails->setEnabled((ui->m_lpCharacterList->count() > 0));
m_lpMainWindow->somethingChanged();
}
void cSceneWindow::onRemoveCharacterFromList()
{
cCharacterDescription* lpCharacterDescription = qvariant_cast<cCharacterDescription*>(ui->m_lpCharacterList->currentData());
if(!lpCharacterDescription)
return;
if(QMessageBox::question(this, "Scene", QString(tr("Do you want to delete \"%1\" from list?")).arg(lpCharacterDescription->character()->name())) == QMessageBox::No)
return;
m_lpScene->removeCharacter(lpCharacterDescription);
QList<cCharacterDescription*> characterList = m_lpScene->characterList();
ui->m_lpCharacterList->clear();
for(int x = ui->m_lpCharacterDetails->count()-1;x >= 0;x--)
ui->m_lpCharacterDetails->removeWidget(ui->m_lpCharacterDetails->widget(x));
for(int x = 0;x < characterList.count();x++)
{
cCharacterDescription* lpCharacterDescription = characterList[x];
cCharacter* lpCharacter = lpCharacterDescription->character();
ui->m_lpCharacterList->addItem(lpCharacter->name(), QVariant::fromValue(lpCharacterDescription));
cTextEdit* lpTextEdit = new cTextEdit(ui->m_lpCharacterDetails);
lpTextEdit->setDocument(lpCharacterDescription->description());
ui->m_lpCharacterDetails->addWidget(lpTextEdit);
connect(lpTextEdit, &cTextEdit::gotFocus, m_lpMainWindow, &cMainWindow::onTextEditGotFocus);
connect(lpTextEdit, &cTextEdit::lostFocus, m_lpMainWindow, &cMainWindow::onTextEditLostFocus);
connect(lpTextEdit, &cTextEdit::textChanged, this, &cSceneWindow::onCharacterDescriptionChanged);
}
ui->m_lpCharacterList->setCurrentIndex(0);
ui->m_lpCharacterDetails->setCurrentIndex(0);
ui->m_lpCharacterRemove->setEnabled((ui->m_lpCharacterList->count() > 0));
ui->m_lpCharacterShowDetails->setEnabled((ui->m_lpCharacterList->count() > 0));
m_lpMainWindow->somethingChanged();
}
void cSceneWindow::onAddPlaceToList()