ADeditor can edit Aliens
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "mainwindow.h"
|
||||
#include "ui_mainwindow.h"
|
||||
#include "alienmodel.h"
|
||||
|
||||
#include <QMessageBox>
|
||||
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
@@ -10,8 +11,8 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
ui->setupUi(this);
|
||||
adloader = new Loader(this);
|
||||
adloader->load("data2.xml");
|
||||
QAbstractItemModel * model = new AlienModel(adloader->aliens.values());
|
||||
ui->lvAliens->setModel(model);
|
||||
alModel = new AlienModel(adloader->aliens.values());
|
||||
ui->lvAliens->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::Select);
|
||||
}
|
||||
@@ -38,13 +39,19 @@ void MainWindow::changeEvent(QEvent *e)
|
||||
|
||||
void MainWindow::on_cbAlArmor_toggled(bool checked)
|
||||
{
|
||||
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
|
||||
ui->sbAlArmor->setEnabled(checked);
|
||||
if (checked) adloader->aliens[id].armor = ui->sbAlArmor->value();
|
||||
else adloader->aliens[id].armor = 0;
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_cbAlRegeneration_toggled(bool checked)
|
||||
{
|
||||
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
|
||||
ui->sbAlregeneration->setEnabled(checked);
|
||||
if (checked) adloader->aliens[id].regeneration = ui->sbAlregeneration->value();
|
||||
else adloader->aliens[id].regeneration = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -70,7 +77,88 @@ void MainWindow::on_pbSave_clicked()
|
||||
{
|
||||
adloader->save("data2.xml");
|
||||
adloader->load("data2.xml");
|
||||
QAbstractItemModel * model = new AlienModel(adloader->aliens.values());
|
||||
ui->lvAliens->setModel(model);
|
||||
ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::Select);
|
||||
alModel->refresh(adloader->aliens.values());
|
||||
}
|
||||
|
||||
void MainWindow::on_sbAlHealth_valueChanged(double value)
|
||||
{
|
||||
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
|
||||
adloader->aliens[id].health = value;
|
||||
}
|
||||
|
||||
void MainWindow::on_sbAlArmor_valueChanged(double value)
|
||||
{
|
||||
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
|
||||
adloader->aliens[id].armor = value;
|
||||
}
|
||||
|
||||
void MainWindow::on_sbAlregeneration_valueChanged(double value)
|
||||
{
|
||||
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
|
||||
adloader->aliens[id].regeneration = value;
|
||||
}
|
||||
|
||||
void MainWindow::on_sbAlSpeed_valueChanged(double value)
|
||||
{
|
||||
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
|
||||
adloader->aliens[id].speed = value;
|
||||
}
|
||||
|
||||
void MainWindow::on_sbAlPrise_valueChanged(int val)
|
||||
{
|
||||
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
|
||||
adloader->aliens[id].prise = val;
|
||||
}
|
||||
|
||||
void MainWindow::on_sbAlScore_valueChanged(int val)
|
||||
{
|
||||
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
|
||||
adloader->aliens[id].score = val;
|
||||
}
|
||||
|
||||
void MainWindow::on_cbAlIsFly_clicked(bool checked)
|
||||
{
|
||||
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
|
||||
adloader->aliens[id].isFlying = checked;
|
||||
}
|
||||
|
||||
void MainWindow::on_leAlName_editingFinished()
|
||||
{
|
||||
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
|
||||
adloader->aliens[id].name = ui->leAlName->text();
|
||||
alModel->refresh(adloader->aliens.values());
|
||||
ui->lvAliens->setModel((QAbstractItemModel * )alModel);
|
||||
}
|
||||
|
||||
void MainWindow::on_pbAlAdd_clicked()
|
||||
{
|
||||
int i = 1;
|
||||
while (adloader->aliens.contains(i)) i++;
|
||||
tbAlien al;
|
||||
al.id = i;
|
||||
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::Select);
|
||||
}
|
||||
|
||||
void MainWindow::on_pbAlDel_clicked()
|
||||
{
|
||||
QMessageBox msgBox;
|
||||
int id = adloader->aliens.keys().at(ui->lvAliens->currentIndex().row());
|
||||
msgBox.setText(tr("Delete alien %1 id=%2").arg(adloader->aliens.value(id).name).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->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::Select);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user