#include "tickview.h"
#include "fleetview.h"
#include "fleet.h"
+#include "planet.h"
BSView::BSView(QWidget *parent, BSDoc *doc) : QSplitter(parent)
{
/** connect doc with the view*/
+
+ m_bMoreDocChanges = false;
connect(doc, SIGNAL(documentChanged()), this, SLOT(slotDocumentChanged()));
m_doc = doc;
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*)));
+ connect(m_TickView, SIGNAL(ticksChanged(int,int)), m_FleetView, SLOT(slotViewTickRange(int,int)));
+ connect(m_TickView, SIGNAL(ticksChanged(int,int)), m_GenericFleetView, SLOT(slotViewTickRange(int,int)));
}
BSView::~BSView()
*/
void BSView::slotDocumentChanged()
{
+ if (m_bMoreDocChanges)
+ return;
+
m_NumberView->clear();
const BattleList& battles = m_doc->battles();
{
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(2);
//
void BSView::slotInfoApply()
{
+ QString battle = m_InfoView->battle();
+ QString group = m_InfoView->group();
+ QString fleet = m_InfoView->fleetName();
+
+
+
+ const Fleet* old = m_doc->specificFleet(m_sBattle, m_sGroup, m_sFleet);
+
+ const Planet* oldpl = dynamic_cast<const Planet*>(old);
+
+ Fleet* fl;
+ if(oldpl)
+ fl = new Planet(*oldpl);
+ else
+ fl = new Fleet(*old);
+
+
+
+ m_bMoreDocChanges = true;
+ m_doc->removeFleet(m_sBattle, m_sGroup, m_sFleet);
+ m_bMoreDocChanges = false;
+
+ m_sBattle = battle;
+ m_sGroup = group;
+ m_sFleet = fleet;
+
+
+ fl->setETA(m_InfoView->eta());
+ fl->setName(m_sFleet.latin1());
+ fl->setRace(m_InfoView->race().latin1());
+
+ m_doc->newFleet(m_sBattle, m_sGroup, m_sFleet, fl);
}
//////////////////////////////////////////////////////////////////////////
//
void BSView::slotInfoNew()
{
+
+ QString battle = m_InfoView->battle();
+ QString group = m_InfoView->group();
+ QString fleet = m_InfoView->fleetName();
+
+ const Fleet* fl1 = m_doc->specificFleet(battle, group, fleet);
+ if (fl1)
+ {
+ //fleet does already exist, do not overwrite.
+ //Need something else here....
+ return;
+ }
+
+
+
Fleet* fl = new Fleet();
- m_sBattle = m_InfoView->battle();
- m_sGroup = m_InfoView->group();
- m_sFleet = m_InfoView->fleetName();
+ m_sBattle = battle;
+ m_sGroup = group;
+ m_sFleet = fleet;
fl->setETA(m_InfoView->eta());
fl->setName(m_sFleet.latin1());
//
void BSView::slotInfoRemove()
{
+ m_doc->removeFleet(m_sBattle, m_sGroup, m_sFleet);
+ m_sFleet = "";
}
//////////////////////////////////////////////////////////////////////////
if(!fl)
{
- m_InfoView->setRace("");
m_InfoView->setFleetName("");
m_InfoView->setEta(0);
- m_InfoView->setGroup("");
- m_InfoView->setBattle("");
m_InfoView->enableNameChange(true);
m_InfoView->enableRemove(false);
return;
}
+ m_InfoView->setGroup(m_sGroup);
+ m_InfoView->setBattle(m_sBattle);
- if(m_sFleet == tr("Home Planet"))
+/* NO LONGER NEEDED SINCE IT'S INTEGRATED IN THE InfoView CLASS
+ * if(m_sFleet == tr("Home Planet") && m_sGroup == tr("Friendly"))
{
- m_InfoView->enableNameChange(false);
- m_InfoView->enableRemove(false);
+ //m_InfoView->enableNameChange(false);
+ //m_InfoView->enableRemove(false);
}
else
{
m_InfoView->enableNameChange(true);
m_InfoView->enableRemove(true);
}
+*/
m_InfoView->setRace(fl->race().c_str());
m_InfoView->setFleetName(m_sFleet);
delete m_FleetView;
m_FleetView = new FleetView(fl, friendly);
connect(m_FleetView, SIGNAL(fleetChanged(const Fleet*)), SLOT(slotFleetChanged(const Fleet*)));
+ connect(m_TickView, SIGNAL(ticksChanged(int,int)), m_FleetView, SLOT(slotViewTickRange(int,int)));
m_FleetViews->addWidget(m_FleetView, 1);
}
m_FleetViews->raiseWidget(1);