some bugfix in ADeditor

memory optimization in AD
This commit is contained in:
2010-09-18 00:00:32 +04:00
parent 97c8725091
commit 0a9679fd99
14 changed files with 399 additions and 133 deletions

View File

@@ -10,8 +10,7 @@ MainWindow::MainWindow(QWidget *parent) :
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->pbSave->setIcon(/*QIcon::fromTheme("documment-save",*/
QIcon(":/icons/icons/documment-save.png"));
ui->pbSave->setIcon(QIcon::fromTheme("document-save", QIcon(":/icons/icons/document-save.png")));
ui->pbReload->setIcon(QIcon::fromTheme("edit-undo", QIcon(":/icons/icons/edit-undo.png")));
ui->pbAlAdd->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/icons/list-add.png")));
ui->pbAlDel->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/icons/list-remove.png")));
@@ -87,6 +86,9 @@ MainWindow::MainWindow(QWidget *parent) :
ui->splitter_5->restoreState(sett.value("session/split5").toByteArray());
ui->splitter_6->restoreState(sett.value("session/split6").toByteArray());
ui->tabWidget->setCurrentIndex(sett.value("session/tab").toInt());
//alb = new AnimLabel();
//ui->verticalLayout->addWidget(alb);
//alb->setAnimation(adloader->animations.value(1).pathes);
}
@@ -112,20 +114,22 @@ void MainWindow::changeEvent(QEvent *e)
void MainWindow::on_cbAlArmor_toggled(bool checked)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
float lval = adloader->aliens[id].armor;
ui->sbAlArmor->setEnabled(checked);
if (checked) adloader->aliens[id].armor = ui->sbAlArmor->value();
else adloader->aliens[id].armor = 0;
isSaved = false;
if (lval != adloader->aliens[id].armor) isSaved = false;
}
void MainWindow::on_cbAlRegeneration_toggled(bool checked)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
float lval = adloader->aliens[id].regeneration;
ui->sbAlregeneration->setEnabled(checked);
if (checked) adloader->aliens[id].regeneration = ui->sbAlregeneration->value();
else adloader->aliens[id].regeneration = 0;
isSaved = false;
if (lval != adloader->aliens[id].regeneration) isSaved = false;
}
@@ -156,6 +160,8 @@ void MainWindow::lvAliens_select(QModelIndex index, QModelIndex)
else ui->cbAlRegeneration->setChecked(false);
ui->sbAlScore->setValue(al.score);
ui->cbAlIsFly->setChecked(al.isFlying);
ui->cbAlImage->setCurrentIndex(adloader->animations.keys().indexOf(al.imgType));
ui->lbAlAnim->setAnimation(adloader->animations.value(al.imgType).pathes);
}
}
@@ -222,6 +228,8 @@ void MainWindow::lvTowers_select(QModelIndex index, QModelIndex)
ui->sbTwRadius->setValue(tw.radius);
ui->sbTwReload->setValue(tw.reload);
ui->cbTwSplash->setCurrentIndex(adloader->splashes.keys().indexOf(tw.splashId));
ui->cbTwImage->setCurrentIndex(adloader->animations.keys().indexOf(tw.imgType));
ui->lbTwAnim->setAnimation(adloader->animations.value(tw.imgType).pathes);
}
}
@@ -235,6 +243,8 @@ void MainWindow::lvSplashes_select(QModelIndex index, QModelIndex)
ui->sbSplSpeed->setValue(spl.speed);
ui->cbSplAutoControl->setChecked(spl.autoControl);
ui->leSplName->setText(spl.name);
ui->cbSplImage->setCurrentIndex(adloader->animations.keys().indexOf(spl.imgType));
ui->lbSplAnim->setAnimation(adloader->animations.value(spl.imgType).pathes);
}
}
@@ -374,23 +384,16 @@ void MainWindow::on_pbReload_clicked()
trigModel->refresh(adloader->triggers.values());
animModel->refresh(adloader->animations.values());
mapModel->refresh(adloader->maps.values());
ui->lvAnimations->setModel((QAbstractItemModel * )animModel);
ui->lvAnimations->reset();
ui->lvAnimations->selectionModel()->setCurrentIndex(ui->lvAnimations->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
ui->lvMaps->setModel((QAbstractItemModel * )mapModel);
ui->lvMaps->reset();
ui->lvMaps->selectionModel()->setCurrentIndex(ui->lvMaps->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
ui->lvAliens->setModel(alModel);
ui->lvAliens->reset();
ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
ui->lvSplashes->setModel(splModel);
ui->lvSplashes->reset();
ui->lvSplashes->selectionModel()->setCurrentIndex(ui->lvSplashes->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
ui->lvTowers->setModel(twModel);
ui->cbTwSplash->setModel(splModel);
ui->lvTowers->reset();
ui->lvTowers->selectionModel()->setCurrentIndex(ui->lvTowers->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
ui->lvTriggers->setModel(trigModel);
ui->lvTriggers->reset();
ui->lvTriggers->selectionModel()->setCurrentIndex(ui->lvTriggers->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
isSaved = true;
@@ -401,66 +404,76 @@ void MainWindow::on_pbReload_clicked()
void MainWindow::on_sbAlHealth_valueChanged(double value)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
float lval = adloader->aliens[id].health;
adloader->aliens[id].health = value;
isSaved = false;
if (lval != adloader->aliens[id].health) isSaved = false;
}
void MainWindow::on_sbAlArmor_valueChanged(double value)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
float lval = adloader->aliens[id].armor;
adloader->aliens[id].armor = value;
isSaved = false;
if (lval != adloader->aliens[id].armor) isSaved = false;
}
void MainWindow::on_sbAlregeneration_valueChanged(double value)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
float lval = adloader->aliens[id].regeneration;
adloader->aliens[id].regeneration = value;
isSaved = false;
if (lval != adloader->aliens[id].regeneration) isSaved = false;
}
void MainWindow::on_sbAlSpeed_valueChanged(double value)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
float lval = adloader->aliens[id].speed;
adloader->aliens[id].speed = value;
isSaved = false;
if (lval != adloader->aliens[id].speed) isSaved = false;
}
void MainWindow::on_sbAlPrise_valueChanged(int val)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
unsigned int lval = adloader->aliens[id].prise;
adloader->aliens[id].prise = val;
isSaved = false;
if (lval != adloader->aliens[id].prise) isSaved = false;
}
void MainWindow::on_sbAlScore_valueChanged(int val)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
unsigned int lval = adloader->aliens[id].score;
adloader->aliens[id].score = val;
isSaved = false;
if (lval != adloader->aliens[id].score) isSaved = false;
}
void MainWindow::on_cbAlIsFly_toggled(bool checked)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
bool lval = adloader->aliens[id].isFlying;
adloader->aliens[id].isFlying = checked;
isSaved = false;
if (lval != adloader->aliens[id].isFlying) isSaved = false;
}
void MainWindow::on_leAlName_editingFinished()
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
QString lval = adloader->aliens[id].name;
adloader->aliens[id].name = ui->leAlName->text();
alModel->refresh(adloader->aliens.values());
ui->lvAliens->setModel((QAbstractItemModel * )alModel);
isSaved = false;
QModelIndex mindex = ui->lvAliens->currentIndex();
ui->lvAliens->reset();
ui->lvAliens->setCurrentIndex(mindex);
if (lval != adloader->aliens[id].name) isSaved = false;
}
@@ -478,7 +491,6 @@ void MainWindow::on_pbAlAdd_clicked()
adloader->aliens.insert(al.id,al);
int index = adloader->aliens.keys().indexOf(i);
alModel->refresh(adloader->aliens.values());
ui->lvAliens->setModel((QAbstractItemModel * )alModel);
ui->lvAliens->reset();
ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(index,0),QItemSelectionModel::ClearAndSelect);
isSaved = false;
@@ -510,7 +522,6 @@ void MainWindow::on_pbAlDel_clicked()
{
adloader->aliens.remove(id);
alModel->refresh(adloader->aliens.values());
ui->lvAliens->setModel((QAbstractItemModel * )alModel);
ui->lvAliens->reset();
ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
isSaved = false;
@@ -521,106 +532,121 @@ void MainWindow::on_pbAlDel_clicked()
void MainWindow::on_leTwName_editingFinished()
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
QString lval = adloader->towers[id].name;
adloader->towers[id].name = ui->leTwName->text();
twModel->refresh(adloader->towers.values());
ui->lvTowers->setModel((QAbstractItemModel * )twModel);
isSaved = false;
QModelIndex mindex = ui->lvTowers->currentIndex();
ui->lvTowers->reset();
ui->lvTowers->setCurrentIndex(mindex);
if (lval != adloader->towers[id].name) isSaved = false;
}
void MainWindow::on_sbTwBuildTime_valueChanged(int val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
unsigned int lval = adloader->towers[id].buildTime;
adloader->towers[id].buildTime = val;
isSaved = false;
if (lval != adloader->towers[id].buildTime) isSaved = false;
}
void MainWindow::on_sbTwCost_valueChanged(int val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
unsigned int lval = adloader->towers[id].cost;
adloader->towers[id].cost = val;
isSaved = false;
if (lval != adloader->towers[id].cost) isSaved = false;
}
void MainWindow::on_cbTwSplash_currentIndexChanged(int index)
{
if (index > 0)
if (!ui->lvTowers->currentIndex().isValid()) return;
if (index >= 0)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
int lval = adloader->towers[id].splashId;
adloader->towers[id].splashId = adloader->splashes.values().at(index).id;
isSaved = false;
if (lval != adloader->towers[id].splashId) isSaved = false;
}
}
void MainWindow::on_sbTwReload_valueChanged(int val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
unsigned int lval = adloader->towers[id].reload;
adloader->towers[id].reload = val;
isSaved = false;
if (lval != adloader->towers[id].reload) isSaved = false;
}
void MainWindow::on_sbTwRadius_valueChanged(double val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
float lval = adloader->towers[id].radius;
adloader->towers[id].radius = val;
isSaved = false;
if (lval != adloader->towers[id].radius) isSaved = false;
}
void MainWindow::on_sbTwExpByShot_valueChanged(double val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
float lval = adloader->towers[id].expByShot;
adloader->towers[id].expByShot = val;
isSaved = false;
if (lval != adloader->towers[id].expByShot) isSaved = false;
}
void MainWindow::on_cbTwExpByShot_toggled(bool checked)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
float lval = adloader->towers[id].expByShot;
ui->sbTwExpByShot->setEnabled(checked);
if (checked) adloader->towers[id].expByShot = ui->sbTwExpByShot->value();
else adloader->towers[id].expByShot = 0;
isSaved = false;
if (lval != adloader->towers[id].expByShot) isSaved = false;
}
void MainWindow::on_sbTwExpByDam_valueChanged(double val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
float lval = adloader->towers[id].expByDamage;
adloader->towers[id].expByDamage = val;
isSaved = false;
if (lval != adloader->towers[id].expByDamage) isSaved = false;
}
void MainWindow::on_cbTwExpByDam_toggled(bool checked)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
float lval = adloader->towers[id].expByDamage;
ui->sbTwExpByDam->setEnabled(checked);
if (checked) adloader->towers[id].expByDamage = ui->sbTwExpByDam->value();
else adloader->towers[id].expByDamage = 0;
isSaved = false;
if (lval != adloader->towers[id].expByDamage) isSaved = false;
}
void MainWindow::on_sbTwExpByKill_valueChanged(double val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
float lval = adloader->towers[id].expByKill;
adloader->towers[id].expByKill = val;
isSaved = false;
if (lval != adloader->towers[id].expByKill) isSaved = false;
}
void MainWindow::on_cbTwExpByKill_toggled(bool checked)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
float lval = adloader->towers[id].expByKill;
ui->sbTwExpByKill->setEnabled(checked);
if (checked) adloader->towers[id].expByKill = ui->sbTwExpByKill->value();
else adloader->towers[id].expByKill = 0;
isSaved = false;
if (lval != adloader->towers[id].expByKill) isSaved = false;
}
@@ -639,7 +665,6 @@ void MainWindow::on_pbTwAdd_clicked()
adloader->towers.insert(tw.id,tw);
int index = adloader->towers.keys().indexOf(i);
twModel->refresh(adloader->towers.values());
ui->lvTowers->setModel((QAbstractItemModel * )twModel);
ui->lvTowers->reset();
ui->lvTowers->selectionModel()->setCurrentIndex(ui->lvTowers->model()->index(index,0),QItemSelectionModel::ClearAndSelect);
isSaved = false;
@@ -671,7 +696,6 @@ void MainWindow::on_pbTwDel_clicked()
{
adloader->towers.remove(id);
twModel->refresh(adloader->towers.values());
ui->lvTowers->setModel((QAbstractItemModel * )twModel);
ui->lvTowers->reset();
ui->lvTowers->selectionModel()->setCurrentIndex(ui->lvTowers->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
isSaved = false;
@@ -681,35 +705,42 @@ void MainWindow::on_pbTwDel_clicked()
void MainWindow::on_leSplName_editingFinished()
{
int id = adloader->splashes.values().at(ui->lvSplashes->currentIndex().row()).id;
QString lval = adloader->splashes[id].name;
adloader->splashes[id].name = ui->leSplName->text();
splModel->refresh(adloader->splashes.values());
ui->lvSplashes->setModel((QAbstractItemModel * )splModel);
ui->cbTwSplash->setModel((QAbstractItemModel * )splModel);
isSaved = false;
//ui->lvSplashes->setModel((QAbstractItemModel * )splModel);
//ui->cbTwSplash->setModel((QAbstractItemModel * )splModel);
QModelIndex mindex = ui->lvSplashes->currentIndex();
ui->lvSplashes->reset();
ui->lvSplashes->setCurrentIndex(mindex);
if (lval != adloader->splashes[id].name) isSaved = false;
}
void MainWindow::on_sbSplSpeed_valueChanged(double val)
{
int id = adloader->splashes.values().at(ui->lvSplashes->currentIndex().row()).id;
float lval = adloader->splashes[id].speed;
adloader->splashes[id].speed = val;
isSaved = false;
if (lval != adloader->splashes[id].speed) isSaved = false;
}
void MainWindow::on_cbSplAutoControl_toggled(bool checked)
{
int id = adloader->splashes.values().at(ui->lvSplashes->currentIndex().row()).id;
bool lval = adloader->splashes[id].autoControl;
adloader->splashes[id].autoControl = checked;
isSaved = false;
if (lval != adloader->splashes[id].autoControl) isSaved = false;
}
void MainWindow::on_sbSplLifeTime_valueChanged(int val)
{
int id = adloader->splashes.values().at(ui->lvSplashes->currentIndex().row()).id;
unsigned int lval = adloader->splashes[id].lifetime;
adloader->splashes[id].lifetime = val;
isSaved = false;
if (lval != adloader->splashes[id].lifetime) isSaved = false;
}
@@ -725,10 +756,8 @@ void MainWindow::on_pbSplAdd_clicked()
adloader->splashes.insert(spl.id,spl);
int index = adloader->splashes.keys().indexOf(i);
splModel->refresh(adloader->splashes.values());
ui->lvSplashes->setModel((QAbstractItemModel * )splModel);
ui->lvSplashes->reset();
ui->lvSplashes->selectionModel()->setCurrentIndex(ui->lvSplashes->model()->index(index,0),QItemSelectionModel::ClearAndSelect);
ui->cbTwSplash->setModel((QAbstractItemModel * )splModel);
isSaved = false;
}
@@ -771,10 +800,8 @@ void MainWindow::on_pbSlpDel_clicked()
{
adloader->splashes.remove(id);
splModel->refresh(adloader->splashes.values());
ui->lvSplashes->setModel((QAbstractItemModel * )splModel);
ui->lvSplashes->reset();
ui->lvSplashes->selectionModel()->setCurrentIndex(ui->lvSplashes->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
ui->cbTwSplash->setModel((QAbstractItemModel * )splModel);
isSaved = false;
}
}
@@ -791,116 +818,131 @@ void MainWindow::on_pbTwSplashEdit_clicked()
void MainWindow::on_cbTrigChance_toggled(bool checked)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
int lval = adloader->triggers[id].chance;
ui->sbTrigChance->setEnabled(checked);
if (checked) adloader->triggers[id].chance = ui->sbTrigChance->value();
else adloader->triggers[id].chance = 100;
isSaved = false;
if (lval != adloader->triggers[id].chance) isSaved = false;
}
void MainWindow::on_sbTrigChance_valueChanged(int val)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
int lval = adloader->triggers[id].chance;
adloader->triggers[id].chance = val;
isSaved = false;
if (lval != adloader->triggers[id].chance) isSaved = false;
}
void MainWindow::on_leTrigName_editingFinished()
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
QString lval = adloader->triggers[id].name;
adloader->triggers[id].name = ui->leTrigName->text();
trigModel->refresh(adloader->triggers.values());
ui->lvTriggers->setModel((QAbstractItemModel * )trigModel);
isSaved = false;
QModelIndex mindex = ui->lvTriggers->currentIndex();
ui->lvTriggers->reset();
ui->lvTriggers->setCurrentIndex(mindex);
if (lval != adloader->triggers[id].name) isSaved = false;
}
void MainWindow::on_sbTrigCount_valueChanged(int val)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
int lval = adloader->triggers[id].count;
adloader->triggers[id].count = val;
isSaved = false;
if (lval != adloader->triggers[id].count) isSaved = false;
}
void MainWindow::on_sbTrigRandomRadius_valueChanged(double value)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
float lval = adloader->triggers[id].randomPosRadius;
adloader->triggers[id].randomPosRadius = value;
isSaved = false;
if (lval != adloader->triggers[id].randomPosRadius) isSaved = false;
}
void MainWindow::on_cbTrigDelPar_toggled(bool checked)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
bool lval = adloader->triggers[id].delParent;
adloader->triggers[id].delParent = checked;
isSaved = false;
if (lval != adloader->triggers[id].delParent) isSaved = false;
}
void MainWindow::on_sbTrigTimer_valueChanged(int val)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
unsigned int lval = adloader->triggers[id].timer;
adloader->triggers[id].timer = val;
isSaved = false;
if (lval != adloader->triggers[id].timer) isSaved = false;
}
void MainWindow::on_sbTrigDamage_valueChanged(double value)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
float lval = adloader->triggers[id].damage;
adloader->triggers[id].damage = value;
isSaved = false;
if (lval != adloader->triggers[id].damage) isSaved = false;
}
void MainWindow::on_sbTrigDamRadius_valueChanged(double value)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
float lval = adloader->triggers[id].radius;
adloader->triggers[id].radius = value;
isSaved = false;
if (lval != adloader->triggers[id].radius) isSaved = false;
}
void MainWindow::on_cbTrigDamRad_toggled(bool checked)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
float lval = adloader->triggers[id].radius;
ui->sbTrigDamRadius->setEnabled(checked);
if (checked) adloader->triggers[id].radius = ui->sbTrigDamRadius->value();
else adloader->triggers[id].radius = 0;
isSaved = false;
if (lval != adloader->triggers[id].radius) isSaved = false;
}
void MainWindow::on_cbTrigDamage_toggled(bool checked)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
float lval = adloader->triggers[id].damage;
ui->sbTrigDamage->setEnabled(checked);
if (checked) adloader->triggers[id].damage = ui->sbTrigDamage->value();
else adloader->triggers[id].damage = 0;
isSaved = false;
if (lval != adloader->triggers[id].damage) isSaved = false;
}
void MainWindow::on_cbTrigRandRadius_toggled(bool checked)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
float lval = adloader->triggers[id].randomPosRadius;
ui->sbTrigRandomRadius->setEnabled(checked);
if (checked) adloader->triggers[id].randomPosRadius = ui->sbTrigRandomRadius->value();
else adloader->triggers[id].randomPosRadius = 0;
isSaved = false;
if (lval != adloader->triggers[id].randomPosRadius) isSaved = false;
}
void MainWindow::on_cbTrigCount_toggled(bool checked)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
int lval = adloader->triggers[id].count;
ui->sbTrigCount->setEnabled(checked);
if (checked) adloader->triggers[id].count = ui->sbTrigCount->value();
else adloader->triggers[id].count = 0;
isSaved = false;
if (lval != adloader->triggers[id].count) isSaved = false;
}
@@ -923,7 +965,6 @@ void MainWindow::on_pbTrigAdd_clicked()
adloader->triggers.insert(trig.id,trig);
int index = adloader->triggers.keys().indexOf(i);
trigModel->refresh(adloader->triggers.values());
ui->lvTriggers->setModel((QAbstractItemModel * )trigModel);
ui->lvTriggers->reset();
ui->lvTriggers->selectionModel()->setCurrentIndex(ui->lvTriggers->model()->index(index,0),QItemSelectionModel::ClearAndSelect);
isSaved = false;
@@ -955,7 +996,6 @@ void MainWindow::on_pbTrigDel_clicked()
{
adloader->triggers.remove(id);
trigModel->refresh(adloader->triggers.values());
ui->lvTriggers->setModel((QAbstractItemModel * )trigModel);
ui->lvTriggers->reset();
ui->lvTriggers->selectionModel()->setCurrentIndex(ui->lvTriggers->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
isSaved = false;
@@ -966,6 +1006,7 @@ void MainWindow::on_pbTrigDel_clicked()
void MainWindow::on_cbTrigType_currentIndexChanged(int index)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
srcTriggerType::triggerType lval = adloader->triggers[id].type;
adloader->triggers[id].type = (srcTriggerType::triggerType)ui->cbTrigType->itemData(index).toInt();
if (adloader->triggers[id].type != srcTriggerType::onTimer)
{
@@ -976,15 +1017,16 @@ void MainWindow::on_cbTrigType_currentIndexChanged(int index)
ui->sbTrigTimer->setVisible(true);
ui->sbTrigTimer->setValue(adloader->triggers[id].timer);
}
isSaved = false;
if (lval != adloader->triggers[id].type) isSaved = false;
}
void MainWindow::on_cbTrigChildAim_currentIndexChanged(int index)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
srcTriggerType::aimType lval = adloader->triggers[id].childAim;
adloader->triggers[id].childAim = (srcTriggerType::aimType)ui->cbTrigChildAim->itemData(index).toInt();
isSaved = false;
if (lval != adloader->triggers[id].childAim)isSaved = false;
}
@@ -1022,8 +1064,122 @@ void MainWindow::refresh_lwImages(QStringList pathes)
void MainWindow::on_pbImgDel_clicked()
{
int id = adloader->animations.values().at(ui->lvAnimations->currentIndex().row()).id;
for (int i=0; i<ui->lwImages->selectedItems().size(); ++i)
adloader->animations[id].pathes.removeOne(ui->lwImages->selectedItems().at(i)->text());
refresh_lwImages(adloader->animations.value(id).pathes);
if (!ui->lwImages->selectedItems().isEmpty())
{
int id = adloader->animations.values().at(ui->lvAnimations->currentIndex().row()).id;
for (int i=0; i<ui->lwImages->selectedItems().size(); ++i)
adloader->animations[id].pathes.removeOne(ui->lwImages->selectedItems().at(i)->text());
refresh_lwImages(adloader->animations.value(id).pathes);
isSaved = false;
}
}
void MainWindow::on_pbAnimAdd_clicked()
{
int i = 1;
while (adloader->animations.contains(i)) i++;
tbAnimation anim;
anim.id = i;
adloader->animations.insert(anim.id,anim);
int index = adloader->animations.keys().indexOf(i);
animModel->refresh(adloader->animations.values());
ui->lvAnimations->reset();
ui->lvAnimations->selectionModel()->setCurrentIndex(ui->lvAnimations->model()->index(index,0),QItemSelectionModel::ClearAndSelect);
isSaved = false;
}
void MainWindow::on_cbAlImage_currentIndexChanged(int index)
{
if (!ui->lvAliens->currentIndex().isValid()) return;
if (index >= 0)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
int lval = adloader->aliens[id].imgType;
adloader->aliens[id].imgType = adloader->animations.values().at(index).id;
ui->lbAlAnim->setAnimation(adloader->animations.value(adloader->aliens[id].imgType).pathes);
if (lval != adloader->aliens[id].imgType) isSaved = false;
}
}
void MainWindow::on_cbTwImage_currentIndexChanged(int index)
{
if (!ui->lvTowers->currentIndex().isValid()) return;
if (index >= 0)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
int lval = adloader->towers[id].imgType;
adloader->towers[id].imgType = adloader->animations.values().at(index).id;
ui->lbTwAnim->setAnimation(adloader->animations.value(adloader->towers[id].imgType).pathes);
if (lval != adloader->towers[id].imgType) isSaved = false;
}
}
void MainWindow::on_cbSplImage_currentIndexChanged(int index)
{
if (!ui->lvSplashes->currentIndex().isValid()) return;
if (index >= 0)
{
int id = adloader->splashes.values().at(ui->lvSplashes->currentIndex().row()).id;
int lval = adloader->splashes[id].imgType;
adloader->splashes[id].imgType = adloader->animations.values().at(index).id;
ui->lbSplAnim->setAnimation(adloader->animations.value(adloader->splashes[id].imgType).pathes);
if (lval != adloader->splashes[id].imgType) isSaved = false;
}
}
void MainWindow::on_pbAnimDel_clicked()
{
if (adloader->animations.size() < 2) return;
QMessageBox msgBox;
int id = adloader->animations.keys().at(ui->lvAnimations->currentIndex().row());
for (int i=0; i<adloader->towers.size(); i++)
{
if (adloader->towers.values().at(i).imgType == id)
{
msgBox.setText(tr("You can not delete anim %1").arg(id));
msgBox.setInformativeText(tr("It used by tower %1 id=%2").arg(adloader->towers.values().at(i).name).arg(adloader->towers.values().at(i).id));
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
return;
}
}
for (int i=0; i<adloader->aliens.size(); i++)
{
if (adloader->aliens.values().at(i).imgType == id)
{
msgBox.setText(tr("You can not delete anim %1").arg(id));
msgBox.setInformativeText(tr("It used by alien %1 id=%2").arg(adloader->aliens.values().at(i).name).arg(adloader->aliens.values().at(i).id));
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
return;
}
}
for (int i=0; i<adloader->splashes.size(); i++)
{
if (adloader->splashes.values().at(i).imgType == id)
{
msgBox.setText(tr("You can not delete anim %1").arg(id));
msgBox.setInformativeText(tr("It used by splash %1 id=%2").arg(adloader->splashes.values().at(i).name).arg(adloader->splashes.values().at(i).id));
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
return;
}
}
msgBox.setText(tr("Delete anim %1").arg(id));
msgBox.setInformativeText(tr("Are you sure?"));
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Ok);
int ret = msgBox.exec();
if (ret == QMessageBox::Ok)
{
adloader->animations.remove(id);
animModel->refresh(adloader->animations.values());
ui->lvAnimations->reset();
ui->lvAnimations->selectionModel()->setCurrentIndex(ui->lvAnimations->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
isSaved = false;
}
}