last changes
This commit is contained in:
@@ -6,8 +6,8 @@
|
||||
#include <QSettings>
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::MainWindow)
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::MainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->pbSave->setIcon(QIcon::fromTheme("document-save", QIcon(":/icons/icons/document-save.png")));
|
||||
@@ -24,6 +24,8 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
ui->pbSlpDel->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/icons/list-remove.png")));
|
||||
ui->pbAnimAdd->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/icons/list-add.png")));
|
||||
ui->pbAnimDel->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/icons/list-remove.png")));
|
||||
ui->pbWaveAdd->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/icons/list-add.png")));
|
||||
ui->pbWaveDel->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/icons/list-remove.png")));
|
||||
ui->pbImgAdd->setIcon(QIcon::fromTheme("list-add", QIcon(":/icons/icons/list-add.png")));
|
||||
ui->pbImgDel->setIcon(QIcon::fromTheme("list-remove", QIcon(":/icons/icons/list-remove.png")));
|
||||
ui->pbTwSplashEdit->setIcon(QIcon::fromTheme("edit", QIcon(":/icons/icons/edit.png")));
|
||||
@@ -31,6 +33,15 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
adloader = new Loader();
|
||||
adloader->load("data2.xml");
|
||||
|
||||
wavePartModel = new WavePartModel(adloader->waves);
|
||||
waveModel = new WaveModel(adloader->waves);
|
||||
// waveModel->setCurrentWave(0);
|
||||
connect(waveModel,SIGNAL(needUpdateIndex()),wavePartModel,SLOT(updateIndex()));
|
||||
ui->tableWaves->setModel((QAbstractItemModel * )waveModel);
|
||||
ui->tableWaveParts->setModel((QAbstractItemModel * )wavePartModel);
|
||||
connect(ui->tableWaves->selectionModel(),SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),wavePartModel,SLOT(setCurrentWave(QModelIndex,QModelIndex)));
|
||||
connect(ui->tableWaveParts->selectionModel(),SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),this,SLOT(tbWavePartSelect(QModelIndex,QModelIndex)));
|
||||
|
||||
animModel = new AnimationModel(adloader->animations);
|
||||
ui->lvAnimations->setModel((QAbstractItemModel * )animModel);
|
||||
connect(ui->lvAnimations->selectionModel(),SIGNAL(currentChanged(QModelIndex,QModelIndex)),this,SLOT(lvAnimations_select(QModelIndex, QModelIndex)));
|
||||
@@ -48,6 +59,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
alModel = new AlienModel(adloader->aliens.values());
|
||||
ui->lvAliens->setModel((QAbstractItemModel * )alModel);
|
||||
ui->cbAlImage->setModel((QAbstractItemModel * )animModel);
|
||||
ui->lvWaveAliens->setModel((QAbstractItemModel * )alModel);
|
||||
connect(ui->lvAliens->selectionModel(),SIGNAL(currentChanged(QModelIndex, QModelIndex)),this,SLOT(lvAliens_select(QModelIndex, QModelIndex)));
|
||||
ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
|
||||
|
||||
@@ -246,45 +258,46 @@ void MainWindow::lvSplashes_select(QModelIndex index, QModelIndex)
|
||||
ui->leSplName->setText(spl.name);
|
||||
ui->cbSplImage->setCurrentIndex(adloader->animations.keys().indexOf(spl.imgType));
|
||||
ui->lbSplAnim->setAnimation(adloader->animations.value(spl.imgType).pathes);
|
||||
ui->sbSplZValue->setValue(spl.ZValue);
|
||||
switch (spl.compositionMode)
|
||||
{
|
||||
case QPainter::RasterOp_NotSource :
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(1);
|
||||
break;
|
||||
break;
|
||||
case QPainter::CompositionMode_Plus :
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(2);
|
||||
break;
|
||||
break;
|
||||
case QPainter::CompositionMode_Multiply :
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(3);
|
||||
break;
|
||||
break;
|
||||
case QPainter::CompositionMode_Screen :
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(4);
|
||||
break;
|
||||
break;
|
||||
case QPainter::CompositionMode_Darken :
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(5);
|
||||
break;
|
||||
break;
|
||||
case QPainter::CompositionMode_Lighten :
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(6);
|
||||
break;
|
||||
break;
|
||||
case QPainter::CompositionMode_ColorDodge :
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(7);
|
||||
break;
|
||||
break;
|
||||
case QPainter::CompositionMode_ColorBurn :
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(8);
|
||||
break;
|
||||
break;
|
||||
case QPainter::CompositionMode_HardLight :
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(9);
|
||||
break;
|
||||
break;
|
||||
case QPainter::CompositionMode_SoftLight :
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(10);
|
||||
break;
|
||||
break;
|
||||
case QPainter::CompositionMode_Difference :
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(11);
|
||||
break;
|
||||
break;
|
||||
case QPainter::CompositionMode_SourceOver :
|
||||
default:
|
||||
ui->cbSplCompisitionMode->setCurrentIndex(0);
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -423,7 +436,7 @@ void MainWindow::on_pbReload_clicked()
|
||||
twModel->refresh(adloader->towers.values());
|
||||
splModel->refresh(adloader->splashes.values());
|
||||
trigModel->refresh(adloader->triggers.values());
|
||||
// animModel->refresh(adloader->animations.values());
|
||||
// animModel->refresh(adloader->animations.values());
|
||||
mapModel->refresh(adloader->maps.values());
|
||||
ui->lvAnimations->reset();
|
||||
ui->lvAnimations->selectionModel()->setCurrentIndex(ui->lvAnimations->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
|
||||
@@ -543,15 +556,18 @@ void MainWindow::on_pbAlDel_clicked()
|
||||
if (adloader->aliens.size() < 2) return;
|
||||
QMessageBox msgBox;
|
||||
int id = adloader->aliens.keys().at(ui->lvAliens->currentIndex().row());
|
||||
for (int i=0; i<adloader->waveParts.size(); i++)
|
||||
for (int i=0; i<adloader->waves.size(); i++)
|
||||
{
|
||||
if (adloader->waveParts.values().at(i).alienId == id)
|
||||
for (int j=0; j<adloader->waves[i].parts.size(); j++)
|
||||
{
|
||||
msgBox.setText(tr("You can not delete alien %1 id=%2").arg(adloader->aliens.value(id).name).arg(id));
|
||||
msgBox.setInformativeText(tr("It used in wawe %1").arg(adloader->waveParts.values().at(i).waveId));
|
||||
msgBox.setStandardButtons(QMessageBox::Ok);
|
||||
msgBox.exec();
|
||||
return;
|
||||
if (adloader->waves[i].parts[j].alienId == id)
|
||||
{
|
||||
msgBox.setText(tr("You can not delete alien %1 id=%2").arg(adloader->aliens.value(id).name).arg(id));
|
||||
msgBox.setInformativeText(tr("It used in wawe %1").arg(adloader->waves[i].id));
|
||||
msgBox.setStandardButtons(QMessageBox::Ok);
|
||||
msgBox.exec();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
msgBox.setText(tr("Delete alien %1 id=%2").arg(adloader->aliens.value(id).name).arg(id));
|
||||
@@ -823,7 +839,7 @@ void MainWindow::on_pbSlpDel_clicked()
|
||||
for (int i=0; i<adloader->chains.size(); i++)
|
||||
{
|
||||
if (adloader->chains.values().at(i).childSplashId == id
|
||||
|| adloader->chains.values().at(i).parentSplashId == id)
|
||||
|| adloader->chains.values().at(i).parentSplashId == id)
|
||||
{
|
||||
msgBox.setText(tr("You can not delete splash %1 id=%2").arg(adloader->splashes.value(id).name).arg(id));
|
||||
msgBox.setInformativeText(tr("It used by chain in tower %1 id=%2").arg(adloader->towers.value(adloader->chains.values().at(i).towerId).name).arg(adloader->chains.values().at(i).towerId));
|
||||
@@ -1091,13 +1107,13 @@ void MainWindow::on_pbImgAdd_clicked()
|
||||
/*if (fd.exec())
|
||||
{
|
||||
strl = fd.selectedFiles();*/
|
||||
for (int i=0; i<strl.size(); ++i)
|
||||
{
|
||||
strl[i] = dir.relativeFilePath(strl[i]);
|
||||
}
|
||||
adloader->animations[id].pathes.append(strl);
|
||||
refresh_lwImages(adloader->animations.value(id).pathes);
|
||||
isSaved = false;
|
||||
for (int i=0; i<strl.size(); ++i)
|
||||
{
|
||||
strl[i] = dir.relativeFilePath(strl[i]);
|
||||
}
|
||||
adloader->animations[id].pathes.append(strl);
|
||||
refresh_lwImages(adloader->animations.value(id).pathes);
|
||||
isSaved = false;
|
||||
//}
|
||||
}
|
||||
|
||||
@@ -1133,7 +1149,7 @@ void MainWindow::on_pbAnimAdd_clicked()
|
||||
anim.id = i;
|
||||
adloader->animations.insert(anim.id,anim);
|
||||
int index = adloader->animations.keys().indexOf(i);
|
||||
// animModel->refresh(adloader->animations.values());
|
||||
// animModel->refresh(adloader->animations.values());
|
||||
ui->lvAnimations->reset();
|
||||
ui->lvAnimations->selectionModel()->setCurrentIndex(ui->lvAnimations->model()->index(index,0),QItemSelectionModel::ClearAndSelect);
|
||||
isSaved = false;
|
||||
@@ -1227,7 +1243,7 @@ void MainWindow::on_pbAnimDel_clicked()
|
||||
if (ret == QMessageBox::Ok)
|
||||
{
|
||||
adloader->animations.remove(id);
|
||||
// animModel->refresh(adloader->animations.values());
|
||||
// animModel->refresh(adloader->animations.values());
|
||||
ui->lvAnimations->reset();
|
||||
ui->lvAnimations->selectionModel()->setCurrentIndex(ui->lvAnimations->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
|
||||
isSaved = false;
|
||||
@@ -1280,3 +1296,81 @@ void MainWindow::on_cbSplKeepOnAlien_toggled(bool checked)
|
||||
adloader->splashes[id].keepOnAlien = checked;
|
||||
if (lval != adloader->splashes[id].keepOnAlien) isSaved = false;
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_btWaveAddAlien_clicked()
|
||||
{
|
||||
if (ui->lvWaveAliens->currentIndex().isValid())
|
||||
wavePartModel->insertAlien(adloader->aliens.values().at(ui->lvWaveAliens->currentIndex().row()).id);
|
||||
waveModel->refreshData();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::tbWavePartSelect(QModelIndex a, QModelIndex)
|
||||
{
|
||||
ui->btWaveRemoveAlien->setEnabled(a.isValid());
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_btWaveRemoveAlien_clicked()
|
||||
{
|
||||
wavePartModel->removeAlien(ui->tableWaveParts->selectionModel()->currentIndex());
|
||||
waveModel->refreshData();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_btWaveClear_clicked()
|
||||
{
|
||||
wavePartModel->clearAliens();
|
||||
waveModel->refreshData();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_pbWaveAdd_clicked()
|
||||
{
|
||||
// wavePartModel->setCurrentWave(QModelIndex());
|
||||
QModelIndex a = ui->tableWaves->selectionModel()->currentIndex();
|
||||
waveModel->addWave(a);
|
||||
wavePartModel->setCurrentWave(waveModel->index(a.row()+1,a.column()));
|
||||
//wavePartModel->setCurrentWave(a);
|
||||
// ui->tableWaves->selectionModel()->setCurrentIndex(waveModel->index(a.row()+1,a.column()),QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_pbWaveDel_clicked()
|
||||
{
|
||||
// wavePartModel->setCurrentWave(QModelIndex());
|
||||
QModelIndex a = ui->tableWaves->selectionModel()->currentIndex();
|
||||
waveModel->removeWave(a);
|
||||
wavePartModel->setCurrentWave(waveModel->index(a.row(),a.column()));
|
||||
//wavePartModel->setCurrentWave(a);
|
||||
//ui->tableWaves->selectionModel()->setCurrentIndex(waveModel->index(a.row(),a.column()),QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_pbWaveCopy_clicked()
|
||||
{
|
||||
// wavePartModel->setCurrentWave(QModelIndex());
|
||||
QModelIndex a = ui->tableWaves->selectionModel()->currentIndex();
|
||||
waveModel->copyWave(a);
|
||||
wavePartModel->setCurrentWave(waveModel->index(a.row()+1,a.column()));
|
||||
// ui->tableWaves->selectionModel()->setCurrentIndex(waveModel->index(a.row()+1,a.column()),QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_btWaveUp_clicked()
|
||||
{
|
||||
wavePartModel->setCurrentWave(QModelIndex());
|
||||
QModelIndex a = ui->tableWaves->selectionModel()->currentIndex();
|
||||
waveModel->upWave(a);
|
||||
ui->tableWaves->selectionModel()->setCurrentIndex(waveModel->index(a.row()-1,a.column()),QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_btWaveDown_clicked()
|
||||
{
|
||||
wavePartModel->setCurrentWave(QModelIndex());
|
||||
QModelIndex a = ui->tableWaves->selectionModel()->currentIndex();
|
||||
waveModel->downWave(a);
|
||||
ui->tableWaves->selectionModel()->setCurrentIndex(waveModel->index(a.row()+1,a.column()),QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user