m_NumberView->addColumn("Name");
m_NumberView->addColumn("Number");
m_NumberView->addColumn("ETA");
+ m_NumberView->addColumn("Score");
//addBattle("NO BATTLES");
//the widget stack
m_BattleSum = new BattleSum();
m_FleetViews->addWidget(m_BattleSum, 0);
- m_FleetView = new FleetView(fl1, true, true);
+ m_FleetView = new FleetView(&fl1, true);
m_FleetViews->addWidget(m_FleetView, 1);
- m_GenericFleetView = new FleetView(fl2, true, false);
+ m_GenericFleetView = new FleetView(&fl2, true);
m_FleetViews->addWidget(m_GenericFleetView, 2);
//m_FleetViews->raiseWidget(0);
- connect(m_NumberView, SIGNAL(selectionChanged(QListViewItem *)), SLOT(slotFleetSelection(QListViewItem *)));
+ connect(m_NumberView, SIGNAL(selectionChanged(QListViewItem *)), SLOT(slotFleetSelection(QListViewItem *)));
+ connect(m_FleetView, SIGNAL(fleetChanged(const Fleet*)), SLOT(slotFleetChanged(const Fleet*)));
+ connect(m_GenericFleetView, SIGNAL(fleetChanged(const Fleet*)), SLOT(slotFleetChanged(const Fleet*)));
}
BSView::~BSView()
{
m_NumberView->clear();
- const map<QString, map<QString, map<QString, Fleet> > >& battles = m_doc->battles();
+ const BattleList& battles = m_doc->battles();
- for (map<QString, map<QString, map<QString, Fleet> > >::const_iterator i = battles.begin(); i != battles.end(); ++i)
+ vector<QString> battlenames;
+
+ for (BattleList::const_iterator i = battles.begin(); i != battles.end(); ++i)
{
QString b = (*i).first;
+ battlenames.push_back(i->first);
QListViewItem* battle = new QListViewItem(m_NumberView, b);
battle->setOpen(m_TreeExpanded[b]["--"]);
- for (map<QString, map<QString, Fleet> >::const_iterator j = i->second.begin(); j != i->second.end(); ++j)
+ for (map<QString, map<QString, Fleet*> >::const_iterator j = i->second.begin(); j != i->second.end(); ++j)
{
QString g = (*j).first;
QListViewItem* group = new QListViewItem(battle, g);
int groupShips = 0;
+ unsigned groupScore = 0;
group->setOpen(m_TreeExpanded[b][g]);
- for (map<QString, Fleet>::const_iterator k = j->second.begin(); k != j->second.end(); ++k)
+ for (map<QString, Fleet*>::const_iterator k = j->second.begin(); k != j->second.end(); ++k)
{
- int ships = k->second.NumberOfShips();
+ int ships = k->second->numberOfShips();
+ unsigned score = k->second->score();
groupShips += ships;
- (void) new QListViewItem(group, (*k).first, QString("%1").arg(ships), QString("%1").arg(k->second.ETA()));
+ groupScore += score;
+ //if(k->first == tr("Home Planet"))
+ (void) new QListViewItem(group, (*k).first, QString("%1").arg(ships), QString("%1").arg(k->second->ETA()), QString("%1").arg(score));
+ /*else
+ (void) new QCheckListItem(group, (*k).first, QString("%1").arg(ships), QString("%1").arg(k->second->ETA()), QString("%1").arg(score), QCheckListItem::CheckBox);*/
+
}
group->setText(1, QString("%1").arg(groupShips));
+ group->setText(3, QString("%1").arg(groupScore));
}
}
+ m_InfoView->setBattles(battlenames);
}
//////////////////////////////////////////////////////////////////////////////
}
else
{
- 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"))
+ bool home = false;
+ m_sFleet = lvi->text(0);
+ m_sGroup = lvi->parent()->text(0);
+ m_sBattle = lvi->parent()->parent()->text(0);
+
+ if ( m_sGroup == tr("Friendly"))
{
friendly = true;
- if ( fleet == tr("Home Planet"))
- {
- home = true;
- }
+ if(m_sFleet == tr("Home Planet"))
+ home=true;
}
- Fleet fl = m_doc->specificFleet(battle, group, fleet);
- m_InfoView->setRace(fl.Race().c_str());
- m_InfoView->setFleetName(fleet);
- m_InfoView->setEta(fl.ETA());
- if (fl.Race() == tr("Generic").latin1())
+
+ const Fleet* fl = m_doc->specificFleet(m_sBattle, m_sGroup, m_sFleet);
+
+ m_InfoView->setRace(fl->race().c_str());
+ m_InfoView->setFleetName(m_sFleet);
+ m_InfoView->setEta(fl->ETA());
+ m_InfoView->setGroup(m_sGroup);
+ m_InfoView->setBattle(m_sBattle);
+
+ if (fl->race() == tr("Generic").latin1())
{
m_GenericFleetView->viewFleet(fl, friendly);
m_FleetViews->raiseWidget(2);
}
else
{
- if (fl.Race() == m_FleetView->fleet().Race() &&
+ if (fl->race() == m_FleetView->fleet()->race() &&
m_FleetView->isHome() == home)
{
m_FleetView->viewFleet(fl, friendly);
else
{
m_FleetViews->removeWidget(m_FleetView);
- m_FleetView = new FleetView(fl, friendly, home);
+ delete m_FleetView;
+ m_FleetView = new FleetView(fl, friendly);
+ connect(m_FleetView, SIGNAL(fleetChanged(const Fleet*)), SLOT(slotFleetChanged(const Fleet*)));
m_FleetViews->addWidget(m_FleetView, 1);
}
m_FleetViews->raiseWidget(1);
}
}
+//////////////////////////////////////////////////////////////////////////
+//
+void BSView::slotFleetChanged(const Fleet* fleet)
+{
+ m_doc->changeFleet(m_sBattle, m_sGroup, m_sFleet, fleet);
+}
+