From ba016135c4c232c79cb35c92f239579ca3d84df3 Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Mon, 18 Mar 2002 16:47:42 +0000 Subject: [PATCH] some changes --- bs/bsdoc.cpp | 3 +- bs/bsview.cpp | 88 ++++++++++++++--- bs/bsview.h | 9 +- bs/fleet.cpp | 2 +- bs/share/race.conf | 1 + bs/share/stats.conf | 10 ++ bs/ui/infoview.ui | 218 ++++++++++++++++++++++------------------- bs/ui/resourceview.ui | 12 +++ bs/ui/roidseditview.ui | 18 ++++ 9 files changed, 246 insertions(+), 115 deletions(-) diff --git a/bs/bsdoc.cpp b/bs/bsdoc.cpp index 1c6e60b..47688a7 100644 --- a/bs/bsdoc.cpp +++ b/bs/bsdoc.cpp @@ -58,7 +58,8 @@ bool BSDoc::isModified() const int BSDoc::newBattle(QString name) { - m_Battles[name]["Friendly"]["Home Planet"]; + m_Battles[name]["Friendly"]["Home Planet"].setRace("Planet"); + m_Battles[name]["Friendly"]["Home Fleet"]; m_Battles[name]["Hostile"]; modified = true; diff --git a/bs/bsview.cpp b/bs/bsview.cpp index f7f3aa8..5ae7703 100644 --- a/bs/bsview.cpp +++ b/bs/bsview.cpp @@ -39,7 +39,7 @@ using namespace std; BSView::BSView(QWidget *parent, BSDoc *doc) : QSplitter(parent) { /** connect doc with the view*/ - connect(doc, SIGNAL(documentChanged()), this, SLOT(slotDocumentChanged())); + connect(doc, SIGNAL(documentChanged()), this, SLOT(slotDocumentChanged())); m_doc = doc; @@ -54,19 +54,39 @@ BSView::BSView(QWidget *parent, BSDoc *doc) : QSplitter(parent) m_NumberView->addColumn("ETA"); //addBattle("NO BATTLES"); + + + connect(m_NumberView, SIGNAL(expanded(QListViewItem*)), SLOT(slotItemExpanded(QListViewItem*))); + connect(m_NumberView, SIGNAL(collapsed(QListViewItem*)), SLOT(slotItemCollapsed(QListViewItem*))); + m_InfoView = new InfoView(m_LeftSplit); + + vector raceNames; + const map >& races = Fleet::Races(); + for(map >::const_iterator i = races.begin(); i != races.end(); ++i) + { + raceNames.push_back(i->first.c_str()); + } + m_InfoView->setRaces(raceNames); //the right side m_TickView = new TickView(m_RightSplit); m_FleetViews = new QWidgetStack(m_RightSplit); m_ScanView = new ScanView(m_RightSplit); + Fleet fl1; + //fl1.setRace(tr("Terran").latin1()); + fl1.setRace("Terran"); + Fleet fl2; + fl2.setRace(tr("Generic").latin1()); + //the widget stack m_BattleSum = new BattleSum(); m_FleetViews->addWidget(m_BattleSum, 0); - m_FleetView = new FleetView(Fleet(), true, true); + m_FleetView = new FleetView(fl1, true, true); m_FleetViews->addWidget(m_FleetView, 1); - + m_GenericFleetView = new FleetView(fl2, true, false); + m_FleetViews->addWidget(m_GenericFleetView, 2); //m_FleetViews->raiseWidget(0); connect(m_NumberView, SIGNAL(selectionChanged(QListViewItem *)), SLOT(slotFleetSelection(QListViewItem *))); } @@ -100,12 +120,15 @@ void BSView::slotDocumentChanged() { QString b = (*i).first; QListViewItem* battle = new QListViewItem(m_NumberView, b); + battle->setOpen(m_TreeExpanded[b]["--"]); + 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; + group->setOpen(m_TreeExpanded[b][g]); for (map::const_iterator k = j->second.begin(); k != j->second.end(); ++k) { @@ -142,7 +165,7 @@ void BSView::slotFleetSelection(QListViewItem *lvi) { // m_FleetView->slotAttacker(true); } - m_FleetViews->raiseWidget(1); + m_FleetViews->raiseWidget(2); } else @@ -161,19 +184,58 @@ void BSView::slotFleetSelection(QListViewItem *lvi) } } Fleet fl = m_doc->specificFleet(battle, group, fleet); - if (fl.Race() == m_FleetView->fleet().Race() && - m_FleetView->isHome() == home) + m_InfoView->setRace(fl.Race().c_str()); + m_InfoView->setFleetName(fleet); + m_InfoView->setEta(fl.ETA()); + if (fl.Race() == tr("Generic").latin1()) { - m_FleetView->viewFleet(fl, friendly); + m_GenericFleetView->viewFleet(fl, friendly); + m_FleetViews->raiseWidget(2); + } - else + else { - m_FleetViews->removeWidget(m_FleetView); - m_FleetView = new FleetView(fl, friendly, home); - m_FleetViews->addWidget(m_FleetView, 1); + 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); + m_FleetViews->addWidget(m_FleetView, 1); + } + m_FleetViews->raiseWidget(1); } - m_FleetViews->raiseWidget(1); } +} - +////////////////////////////////////////////////////////////////////////// +// +void BSView::slotItemExpanded(QListViewItem *lvi) +{ + if (lvi->parent() == '\0') + { + m_TreeExpanded[lvi->text(0)]["--"] = true; + } + else if (lvi->parent()->parent() == '\0') + { + m_TreeExpanded[lvi->parent()->text(0)][lvi->text(0)] = true; + } } + +////////////////////////////////////////////////////////////////////////// +// +void BSView::slotItemCollapsed(QListViewItem *lvi) +{ + if (lvi->parent() == '\0') + { + m_TreeExpanded[lvi->text(0)]["--"] = false; + } + else if (lvi->parent()->parent() == '\0') + { + m_TreeExpanded[lvi->parent()->text(0)][lvi->text(0)] = false; + } +} + diff --git a/bs/bsview.h b/bs/bsview.h index d706e59..f33fce3 100644 --- a/bs/bsview.h +++ b/bs/bsview.h @@ -21,6 +21,9 @@ // include files for QT #include +//Standard includes +#include + // application specific includes #include "bsdoc.h" @@ -61,12 +64,16 @@ class BSView : public QSplitter InfoView *m_InfoView; TickView *m_TickView; QWidgetStack *m_FleetViews; - FleetView *m_FleetView; + FleetView *m_FleetView; + FleetView *m_GenericFleetView; BSDoc *m_doc; + std::map > m_TreeExpanded; public slots: // Public slots /** No descriptions */ void slotFleetSelection(QListViewItem *lvi); + void slotItemExpanded(QListViewItem *lvi); + void slotItemCollapsed(QListViewItem *lvi); }; #endif diff --git a/bs/fleet.cpp b/bs/fleet.cpp index f086833..2bd245b 100644 --- a/bs/fleet.cpp +++ b/bs/fleet.cpp @@ -27,7 +27,7 @@ UnitList Fleet::s_Units; Fleet::Fleet() { m_iETA = 0; - m_sRace = "Generic"; + m_sRace = "Cathaar"; } Fleet::~Fleet(){ } diff --git a/bs/share/race.conf b/bs/share/race.conf index 6e94c45..954fcab 100644 --- a/bs/share/race.conf +++ b/bs/share/race.conf @@ -3,3 +3,4 @@ Terran 0 1 Cathaar 0 2 Xandathrii 0 3 Zikonian 0 4 +Planet 5 diff --git a/bs/share/stats.conf b/bs/share/stats.conf index 7149e25..a5aa54d 100644 --- a/bs/share/stats.conf +++ b/bs/share/stats.conf @@ -96,3 +96,13 @@ Man o' War 4 Bs Fr Co Fi 40 5 30 40 6 400 90 76000 800 5 Normal Astro Pod 0 Fr -- -- -- 48 20 0 0 0 10 55 3700 125 4 Special +Mesonic Cutter +5 Co Fi Co -- 49 25 40 1 3 50 N/A 1600 0 0 PDS +Tachyon Beamer +5 Fr Fr Co -- 50 20 35 1 10 75 N/A 3000 0 0 PDS +Pulse Cannon +5 De De Fr All 51 15 30 1 20 150 N/A 8500 0 0 PDS +Hadron Turret +5 Cr Cr De All 52 10 25 1 30 225 N/A 18000 0 0 PDS +Ion Launcher +5 Bs Bs Cr All 53 5 20 1 60 350 N/A 36000 0 0 PDS diff --git a/bs/ui/infoview.ui b/bs/ui/infoview.ui index e9e7ffa..6354911 100644 --- a/bs/ui/infoview.ui +++ b/bs/ui/infoview.ui @@ -1,6 +1,5 @@ InfoView - InfoView @@ -9,28 +8,34 @@ 0 0 - 192 - 144 + 263 + 117 + + + 32767 + 150 + + Form2 - + unnamed - 1 + 0 - 1 + 0 - + - Layout11 + Layout7 - + unnamed @@ -38,82 +43,59 @@ 0 - 6 + 0 - + - Layout10 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel3 - - - Name - - - - - TextLabel1 - - - Eta - - - - - TextLabel2 - - - Planet score - - - + RaceLabel + + + &Race + + + RaceCombo + - + - Layout9 - - - - unnamed - - - 0 - - - 6 - - - - LineEdit5 - - - - - LineEdit3 - - - - - LineEdit4 - - - + RaceCombo + - + + + EtaLabel + + + &Eta + + + EtaSpin + + + + + EtaSpin + + + + + NameLine + + + + + NameLabel + + + &Name + + + NameLine + + + - + Layout13 @@ -129,22 +111,22 @@ - PushButton1 + ApplyButton - Apply + &Apply - PushButton2 + CancelButton - Cancel + &Cancel - + Spacer1 @@ -162,40 +144,78 @@ - PushButton3 + NewButton false - New + &New - PushButton4 + RemoveButton false - Remove + &Remove - + - init() - destroy() + + ApplyButton + clicked() + InfoView + ApplyButton_clicked() + + + CancelButton + clicked() + InfoView + CancelButton_clicked() + + + NewButton + clicked() + InfoView + NewButton_clicked() + + + RemoveButton + clicked() + InfoView + RemoveButton_clicked() + - - { - -} - { - -} - + + vector + infoview.ui.h + + + remove() + cancel() + apply() + add() + + + init() + destroy() + setRaces( std::vector<QString> races ) + setEta( int eta ) + setFleetName( QString name ) + setRace( QString name ) + InfoView_destroyed( QObject * ) + ApplyButton_clicked() + CancelButton_clicked() + NewButton_clicked() + RemoveButton_clicked() + + diff --git a/bs/ui/resourceview.ui b/bs/ui/resourceview.ui index 8fde5eb..6221366 100644 --- a/bs/ui/resourceview.ui +++ b/bs/ui/resourceview.ui @@ -14,6 +14,12 @@ 75 + + + 32767 + 90 + + QGroupBoxForm @@ -88,6 +94,9 @@ UninitLine + + NoFocus + true @@ -105,6 +114,9 @@ + + resourceview.ui.h + diff --git a/bs/ui/roidseditview.ui b/bs/ui/roidseditview.ui index 42b5966..3199fdd 100644 --- a/bs/ui/roidseditview.ui +++ b/bs/ui/roidseditview.ui @@ -13,6 +13,12 @@ 100 + + + 32767 + 110 + + Roids @@ -64,6 +70,9 @@ LineEdit27 + + NoFocus + true @@ -93,6 +102,9 @@ LineEdit28 + + NoFocus + true @@ -117,6 +129,9 @@ LineEdit30 + + NoFocus + true @@ -125,6 +140,9 @@ LineEdit33 + + NoFocus + true -- 2.39.2