]> ruin.nu Git - hbs.git/commitdiff
added the possibility to edit fleets
authorMichael Andreen <harv@ruin.nu>
Fri, 5 Apr 2002 22:50:09 +0000 (22:50 +0000)
committerMichael Andreen <harv@ruin.nu>
Fri, 5 Apr 2002 22:50:09 +0000 (22:50 +0000)
bs/bsdoc.cpp
bs/bsdoc.h
bs/bsview.cpp
bs/bsview.h
bs/fleet.cpp
bs/fleet.h
bs/planet.cpp
bs/ui/resourceview.ui
bs/ui/roidseditview.ui

index 5bf5f46863c6c28ec325cabca60f5b99703449e5..07b02fc097251174ec41511f552813d17fb36d12 100644 (file)
@@ -106,4 +106,23 @@ const Fleet* BSDoc::specificFleet(QString battle, QString group, QString fleet)
        return '\0';
 }
 
+//////////////////////////////////////////////////////////////////////////
+//
+void BSDoc::changeFleet(QString battle, QString group, QString fleet, const Fleet* fl)
+{
+       delete m_Battles[battle][group][fleet];
+
+       const Planet* planet = 0;
+       if((planet = dynamic_cast<const Planet*>(fl)))
+       {
+                       m_Battles[battle][group][fleet] = new Planet(*planet);
+       }
+       else
+       {
+               m_Battles[battle][group][fleet] = new Fleet(*fl);
+       }
+       emit documentChanged();
+}
+
+
 
index 977491d1b3dcab59d62245e84f7cd1b2dcbdbeef..1477409cee63b4e18cd4c16f9cbd8ec3d93a7ef6 100644 (file)
@@ -69,6 +69,8 @@ class BSDoc : public QObject
         */
        const Fleet* specificFleet(QString battle, QString group, QString fleet) const;
 
+       void changeFleet(QString battle, QString group, QString fleet, const Fleet* fl);
+
   signals:
     void documentChanged();
 
index 2dfe3f37f45263381c262a25b30c8dfc1f8169ca..5158fe40a5c44264e71f1af7e96a42147cf49fc7 100644 (file)
@@ -89,7 +89,9 @@ BSView::BSView(QWidget *parent, BSDoc *doc) : QSplitter(parent)
        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()
@@ -177,18 +179,18 @@ void BSView::slotFleetSelection(QListViewItem *lvi)
        {
                bool friendly = false;
                bool home       = false;
-               QString fleet = lvi->text(0);
-               QString group = lvi->parent()->text(0);
-               QString battle = lvi->parent()->parent()->text(0);
-               if ( group == tr("Friendly"))
+               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"))
+                       if(m_sFleet == tr("Home Planet"))
                                home=true;
                }
-               const Fleet* fl = m_doc->specificFleet(battle, group, fleet);
+               const Fleet* fl = m_doc->specificFleet(m_sBattle, m_sGroup, m_sFleet);
                m_InfoView->setRace(fl->race().c_str());
-               m_InfoView->setFleetName(fleet);
+               m_InfoView->setFleetName(m_sFleet);
                m_InfoView->setEta(fl->ETA());
                if (fl->race() == tr("Generic").latin1())
                {
@@ -206,7 +208,9 @@ void BSView::slotFleetSelection(QListViewItem *lvi)
                        else
                        {
                                m_FleetViews->removeWidget(m_FleetView);
+                               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);
@@ -242,3 +246,10 @@ void BSView::slotItemCollapsed(QListViewItem *lvi)
        }
 }
 
+//////////////////////////////////////////////////////////////////////////
+//
+void BSView::slotFleetChanged(const Fleet* fleet)
+{
+       m_doc->changeFleet(m_sBattle, m_sGroup, m_sFleet, fleet);
+}
+
index f33fce3e23cc1c4e0f99eb9b8f3be64aaa7f9e57..789a6d4e4260071f3d28dc954bf62a4e5bd4f172 100644 (file)
@@ -54,6 +54,7 @@ class BSView : public QSplitter
 
   protected slots:
     void slotDocumentChanged();
+       void slotFleetChanged(const Fleet*);
 
   protected:
        BattleSum       *m_BattleSum;
@@ -68,6 +69,10 @@ class BSView : public QSplitter
        FleetView       *m_GenericFleetView;
        BSDoc                   *m_doc;
        std::map<QString, std::map<QString, bool> > m_TreeExpanded;
+
+       QString         m_sBattle;
+       QString         m_sGroup;
+       QString         m_sFleet;
   
 public slots: // Public slots
   /** No descriptions */
index cb15df528c6bce726a0f7dd52db026f7d57f5a31..11334172decbda3f477e0c93f2db55320876fb7e 100644 (file)
@@ -174,3 +174,26 @@ unsigned Fleet::score(int tick = 0) const
        return tot_score;
 }
 
+//////////////////////////////////////////////////////////////////////////
+//
+void Fleet::setFleet(string unittype, int number)
+{
+       if (m_Fleet[unittype].size() == 0)
+       {
+               m_Fleet[unittype].push_back(number);
+               return;
+       }
+       m_Fleet[unittype][0] = number;
+}
+
+//////////////////////////////////////////////////////////////////////////
+//
+int     Fleet::fleet(string unittype, int tick = 0)
+{
+       if (m_Fleet[unittype].size() == 0)
+               return 0;
+
+       return m_Fleet[unittype][tick];
+}
+
+       
index c156545971078d921634f96fddecc7c41dd87795..b90b15ef0549b96d6b7f6bd6f7e51eec797d956b 100644 (file)
@@ -87,6 +87,9 @@ public:
         */
        virtual unsigned score(int tick = 0) const;
 
+       void setFleet(std::string unittype, int number);
+       int      fleet(std::string unittype, int tick = 0);
+       
        static void setRaces(RaceList& races);
        static void setUnits(UnitList& units);
 
index 03c45370700acb53018ce2c342cebaa477cc0992..425861efbbf289afee2e6cd5518786bfd293f779 100644 (file)
@@ -17,7 +17,9 @@
 
 #include "planet.h"
 
-Planet::Planet(){
+Planet::Planet()
+{
+       m_sRace = "Planet";
 }
 Planet::~Planet(){
 }
index 4bc7624f5cb86c3034da648618f53991198285db..47043bf9ba2f59ee978c62bb28e08cc07d00998c 100644 (file)
         <rect>
             <x>0</x>
             <y>0</y>
-            <width>222</width>
-            <height>103</height>
+            <width>198</width>
+            <height>89</height>
         </rect>
     </property>
-    <property name="maximumSize">
-        <size>
-            <width>32767</width>
-            <height>110</height>
-        </size>
+    <property name="sizePolicy">
+        <sizepolicy>
+            <hsizetype>5</hsizetype>
+            <vsizetype>5</vsizetype>
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+        </sizepolicy>
     </property>
     <property name="caption">
         <string>QGroupBoxForm</string>
             <cstring>unnamed</cstring>
         </property>
         <property name="margin">
-            <number>11</number>
+            <number>5</number>
         </property>
         <property name="spacing">
-            <number>6</number>
+            <number>2</number>
         </property>
         <widget class="QLabel" row="0" column="1">
             <property name="name">
index c968a8ee4c31d0c26fc2e61195613445b9d21784..5e7afcd30f77940ae313b3ca55f66b9bc0b397fc 100644 (file)
@@ -9,14 +9,14 @@
         <rect>
             <x>0</x>
             <y>0</y>
-            <width>219</width>
-            <height>103</height>
+            <width>227</width>
+            <height>115</height>
         </rect>
     </property>
-    <property name="maximumSize">
+    <property name="minimumSize">
         <size>
-            <width>32767</width>
-            <height>119</height>
+            <width>0</width>
+            <height>115</height>
         </size>
     </property>
     <property name="caption">
@@ -33,7 +33,7 @@
             <number>2</number>
         </property>
         <property name="spacing">
-            <number>0</number>
+            <number>2</number>
         </property>
         <widget class="QLabel" row="0" column="3">
             <property name="name">