X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=bs%2Ffleetview.cpp;h=7c6633bef71c68c4d5785a4f0465db81f5dc4696;hb=1cdb85f96705026bbeb6772d7bed34a4825353af;hp=d40cfc53018bff1c4205e202e24b486e04a9d03b;hpb=bf9477417304837c7caa6fac90de3eecb5a9dc43;p=hbs.git diff --git a/bs/fleetview.cpp b/bs/fleetview.cpp index d40cfc5..7c6633b 100644 --- a/bs/fleetview.cpp +++ b/bs/fleetview.cpp @@ -43,6 +43,7 @@ FleetView::FleetView(const Fleet* fleet, bool friendly, QWidget *parent, const c m_bHome = false; } + m_Fleet->printFleet(); m_bFriendly = friendly; //m_ChangesMapper = new QSignalMapper(this); @@ -55,7 +56,7 @@ FleetView::FleetView(const Fleet* fleet, bool friendly, QWidget *parent, const c m_UnitsLayout = new QGridLayout(m_MainLayout, rows, 6); buildUnitTable(); //QSpacerItem* space = new QSpacerItem(1, 1); - fillTable(); + m_MainLayout->addStretch(10); @@ -63,10 +64,11 @@ FleetView::FleetView(const Fleet* fleet, bool friendly, QWidget *parent, const c { m_RoidsEditView = new RoidsEditView(this); m_MainLayout->addWidget(m_RoidsEditView); + connect(m_RoidsEditView, SIGNAL(changed(const QString&, int)), SLOT(slotRoidsChanged(const QString&, int))); } m_ResourceView = new ResourceView(this); m_MainLayout->addWidget(m_ResourceView); - + fillTable(); } FleetView::~FleetView(){ @@ -89,6 +91,7 @@ void FleetView::viewFleet(const Fleet* fleet, bool friendly) { m_Fleet = new Fleet(*fleet); } + //m_Fleet->printFleet(); fillTable(); } @@ -189,6 +192,103 @@ void FleetView::fillTable() { m_UnitsEdit[(*i)]->setText(QString("%1").arg(m_Fleet->fleet(i->latin1(), 0))); } + Planet* pl; + if ((pl = dynamic_cast(m_Fleet)) && m_bHome) + { + m_RoidsEditView->setValue(tr("score"),pl->planetScore()); + m_RoidsEditView->setValue(tr("metal"),pl->roids(tr("metal").latin1())); + m_RoidsEditView->setValue(tr("crystal"),pl->roids(tr("crystal").latin1())); + m_RoidsEditView->setValue(tr("eonium"),pl->roids(tr("eonium").latin1())); + m_RoidsEditView->setValue(tr("uninit"),pl->roids(tr("uninit").latin1())); + } +} + +///////////////////////////////////////////////////////////////////// +// +void FleetView::slotRoidsChanged(const QString& type, int value) +{ + Planet* pl; + if ((pl = dynamic_cast(m_Fleet))) + { + if (type == tr("score")) + pl->setPlanetScore(value); + else + { + pl->setRoids(type.latin1(), value); + } + emit fleetChanged(pl); + } } +///////////////////////////////////////////////////////////////////// +// +void FleetView::slotViewTickRange(int min = -1, int max = -1) +{ + if (min > -1) + m_iMinTick = min; + if (max > -1) + m_iMaxTick = max; + for(vector::iterator i = m_Names.begin(); i != m_Names.end(); ++i) + { + int before = m_Fleet->fleet(i->latin1(), m_iMinTick); + int after = m_Fleet->fleet(i->latin1(), m_iMaxTick); + m_UnitsLostSurvivedView[(*i)]->setText(QString("%1").arg(after - before)); + } + + int lost; + int before; + int after; + + before = m_Fleet->resource(tr("metal").latin1(),m_iMinTick); + after = m_Fleet->resource(tr("metal").latin1(),m_iMaxTick); + lost = after - before; + m_ResourceView->setLines(tr("metal"),lost); + + before = m_Fleet->resource(tr("crystal").latin1(),m_iMinTick); + after = m_Fleet->resource(tr("crystal").latin1(),m_iMaxTick); + lost = after - before; + m_ResourceView->setLines(tr("crystal"),lost); + + before = m_Fleet->resource(tr("eonium").latin1(),m_iMinTick); + after = m_Fleet->resource(tr("eonium").latin1(),m_iMaxTick); + lost = after - before; + m_ResourceView->setLines(tr("eonium"),lost); + + before = m_Fleet->resource(tr("uninit").latin1(),m_iMinTick); + after = m_Fleet->resource(tr("uninit").latin1(),m_iMaxTick); + lost = after - before; + m_ResourceView->setLines(tr("uninit"),lost); + + before = m_Fleet->score(m_iMinTick); + after = m_Fleet->score(m_iMaxTick); + lost = after - before; + m_ResourceView->setLines(tr("score"),after); + m_ResourceView->setLines(tr("lost"),lost); + + + Planet* pl; + if ((pl = dynamic_cast(m_Fleet))) + { + + before = pl->roids(tr("metal").latin1(),m_iMinTick); + after = pl->roids(tr("metal").latin1(),m_iMaxTick); + lost = after - before; + m_RoidsEditView->slotSetLost(tr("metal"),lost); + + before = pl->roids(tr("crystal").latin1(),m_iMinTick); + after = pl->roids(tr("crystal").latin1(),m_iMaxTick); + lost = after - before; + m_RoidsEditView->slotSetLost(tr("crystal"),lost); + + before = pl->roids(tr("eonium").latin1(),m_iMinTick); + after = pl->roids(tr("eonium").latin1(),m_iMaxTick); + lost = after - before; + m_RoidsEditView->slotSetLost(tr("eonium"),lost); + + before = pl->roids(tr("uninit").latin1(),m_iMinTick); + after = pl->roids(tr("uninit").latin1(),m_iMaxTick); + lost = after - before; + m_RoidsEditView->slotSetLost(tr("uninit"),lost); + } +}