added triggers onTimer

added map view in ADeditor
This commit is contained in:
2010-09-02 23:34:39 +04:00
parent 7752f7be12
commit c898f978da
10 changed files with 169 additions and 15 deletions

View File

@@ -9,9 +9,32 @@ MainWindow::MainWindow(QWidget *parent) :
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->pbSave->setIcon(QIcon::fromTheme("filesave"));
ui->pbReload->setIcon(QIcon::fromTheme("edit-undo"));
ui->pbAlAdd->setIcon(QIcon::fromTheme("add"));
ui->pbAlDel->setIcon(QIcon::fromTheme("remove"));
ui->pbTrigAdd->setIcon(QIcon::fromTheme("add"));
ui->pbTrigDel->setIcon(QIcon::fromTheme("remove"));
ui->pbTwAdd->setIcon(QIcon::fromTheme("add"));
ui->pbTwDel->setIcon(QIcon::fromTheme("remove"));
ui->pbMapAdd->setIcon(QIcon::fromTheme("add"));
ui->pbMapDelete->setIcon(QIcon::fromTheme("remove"));
ui->pbSplAdd->setIcon(QIcon::fromTheme("add"));
ui->pbSlpDel->setIcon(QIcon::fromTheme("remove"));
ui->pbTwSplashEdit->setIcon(QIcon::fromTheme("forward"));
ui->pbMapEdit->setIcon(QIcon::fromTheme("forward"));
adloader = new Loader(this);
adloader->load("data2.xml");
mapScene = new QGraphicsScene();
ui->gvMap->setScene(mapScene);
ui->gvMap->scale(10,10);
mapModel = new MapModel(adloader->maps.values());
ui->lvMaps->setModel((QAbstractItemModel * )mapModel);
connect(ui->lvMaps->selectionModel(),SIGNAL(currentChanged(QModelIndex, QModelIndex)),this,SLOT(lvMaps_select(QModelIndex, QModelIndex)));
ui->lvMaps->selectionModel()->setCurrentIndex(ui->lvMaps->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
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)));
@@ -100,6 +123,39 @@ void MainWindow::lvAliens_select(QModelIndex index, QModelIndex)
}
void MainWindow::lvMaps_select(QModelIndex index, QModelIndex)
{
tbMap map = adloader->maps.values().at(index.row());
ui->leMapName->setText(map.name);
ui->sbMapHei->setValue(map.size.height());
ui->sbMapWid->setValue(map.size.width());
ui->sbMapPlayers->setValue(map.maxPlayers);
Map m(map.data,map.size,map.name,map.maxPlayers,map.imgType);
QPixmap pix(map.size);
QPainter p(&pix);
p.fillRect(m.rect(),Qt::white);
for (int i=0; i<m.cells().size(); i++) {
for (int j=0; j<m.cells().at(i).size(); j++) {
QPen pen;
pen.setColor(Qt::white);
int cel = m.cells().at(i).at(j);
if (cel == Map::Wall)
pen.setColor(Qt::black);
if (cel >= Map::Free || (cel <= Map::PlayerTower && cel !=Map::Wall))
pen.setColor(QColor(qAbs(cel+2)*345%255,(qAbs(cel+2)*721)%255,(qAbs(cel+2)*75)%255,200));
p.setPen(pen);
p.drawPoint(i,j);
}
}
p.end();
mapScene->clear();
mapScene->addPixmap(pix);
ui->gvMap->centerOn(0,0);
//ui->gvMap->resetCachedContent();
ui->pbMapEdit->setIcon(QIcon(pix));
}
void MainWindow::lvTowers_select(QModelIndex index, QModelIndex)
{
tbTower tw = adloader->towers.values().at(index.row());