]> ruin.nu Git - hbs.git/blobdiff - bs/bsview.cpp
fleetview now generates the correct "unit table" when it's created.
[hbs.git] / bs / bsview.cpp
index 78f8340fe185bcc7568415518b190a0784e5cc7c..f7f3aa8a771b30783c4058810d2f987a7fa14f75 100644 (file)
@@ -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 FleetView();
+       m_FleetView = new FleetView(Fleet(), true, true);
        m_FleetViews->addWidget(m_FleetView, 1);
 
        //m_FleetViews->raiseWidget(0);
@@ -94,7 +94,7 @@ void BSView::slotDocumentChanged()
 {
        m_NumberView->clear();
        
-       const map<QString, map<QString, map<QString, Fleet> > >& battles = m_doc->Battles();    
+       const map<QString, map<QString, map<QString, Fleet> > >& battles = m_doc->battles();    
 
        for (map<QString, map<QString, map<QString, Fleet> > >::const_iterator i = battles.begin(); i != battles.end(); ++i)
        {
@@ -147,22 +147,32 @@ void BSView::slotFleetSelection(QListViewItem *lvi)
        }
        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);
-                               
        }