X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=bs%2Fbsview.cpp;h=f7f3aa8a771b30783c4058810d2f987a7fa14f75;hb=15d92b3097a80faf26b8ce4cb4a6b957d17bc092;hp=ec0e2135da6f5dec708c71b66009ad89b36ccf24;hpb=1d811feaee31f14d462eb46a04d805983a77d6e0;p=hbs.git diff --git a/bs/bsview.cpp b/bs/bsview.cpp index ec0e213..f7f3aa8 100644 --- a/bs/bsview.cpp +++ b/bs/bsview.cpp @@ -33,7 +33,7 @@ using namespace std; #include "scanview.h" #include "ui/infoview.h" #include "tickview.h" -#include "ui/fleetviewbase.h" +#include "fleetview.h" #include "fleet.h" BSView::BSView(QWidget *parent, BSDoc *doc) : QSplitter(parent) @@ -64,7 +64,7 @@ BSView::BSView(QWidget *parent, BSDoc *doc) : QSplitter(parent) //the widget stack m_BattleSum = new BattleSum(); m_FleetViews->addWidget(m_BattleSum, 0); - m_FleetView = new FleetViewBase(); + m_FleetView = new FleetView(Fleet(), true, true); m_FleetViews->addWidget(m_FleetView, 1); //m_FleetViews->raiseWidget(0); @@ -94,24 +94,24 @@ void BSView::slotDocumentChanged() { m_NumberView->clear(); - map > >& battles = m_doc->Battles(); + const map > >& battles = m_doc->battles(); - for (map > >::iterator i = battles.begin(); i != battles.end(); i++) + for (map > >::const_iterator i = battles.begin(); i != battles.end(); ++i) { QString b = (*i).first; QListViewItem* battle = new QListViewItem(m_NumberView, b); - for (map >::iterator j = battles[b].begin(); j != battles[b].end(); j++) + for (map >::const_iterator j = i->second.begin(); j != i->second.end(); ++j) { QString g = (*j).first; QListViewItem* group = new QListViewItem(battle, g); int groupShips = 0; - for (map::iterator k = battles[b][g].begin(); k != battles[b][g].end(); k++) + for (map::const_iterator k = j->second.begin(); k != j->second.end(); ++k) { - int ships = battles[b][g][(*k).first].NumberOfShips(); + int ships = k->second.NumberOfShips(); groupShips += ships; - (void) new QListViewItem(group, (*k).first, QString("%1").arg(ships)); + (void) new QListViewItem(group, (*k).first, QString("%1").arg(ships), QString("%1").arg(k->second.ETA())); } group->setText(1, QString("%1").arg(groupShips)); } @@ -133,36 +133,46 @@ void BSView::slotFleetSelection(QListViewItem *lvi) } else if (lvi->parent()->parent() == '\0') { - m_FleetView->slotHomePlanet(false); +// m_FleetView->slotHomePlanet(false); if (lvi->text(0) == tr("Friendly")) { - m_FleetView->slotAttacker(false); +// m_FleetView->slotAttacker(false); } else { - m_FleetView->slotAttacker(true); +// m_FleetView->slotAttacker(true); } m_FleetViews->raiseWidget(1); } else { - if (lvi->parent()->text(0) == tr("Friendly")) + bool home = false; + bool friendly = false; + QString fleet = lvi->text(0); + QString group = lvi->parent()->text(0); + QString battle = lvi->parent()->parent()->text(0); + if ( group == tr("Friendly")) { - m_FleetView->slotAttacker(false); - m_FleetView->slotHomePlanet(false); - if (lvi->text(0) == tr("Home Planet")) + friendly = true; + if ( fleet == tr("Home Planet")) { - m_FleetView->slotHomePlanet(true); + home = true; } } + Fleet fl = m_doc->specificFleet(battle, group, fleet); + if (fl.Race() == m_FleetView->fleet().Race() && + m_FleetView->isHome() == home) + { + m_FleetView->viewFleet(fl, friendly); + } else { - m_FleetView->slotAttacker(true); - m_FleetView->slotHomePlanet(false); + m_FleetViews->removeWidget(m_FleetView); + m_FleetView = new FleetView(fl, friendly, home); + m_FleetViews->addWidget(m_FleetView, 1); } m_FleetViews->raiseWidget(1); - }