]> ruin.nu Git - hbs.git/blob - bs/bsview.cpp
Some changes
[hbs.git] / bs / bsview.cpp
1 /***************************************************************************
2                           bcview.cpp  -  description
3                              -------------------
4     begin                : Sun Jun 17 19:19:58 CEST 2001
5     copyright            : (C) 2001 by Michael Andreen
6     email                : whale@linux.nu
7  ***************************************************************************/
8
9 /***************************************************************************
10  *                                                                         *
11  *   This program is free software; you can redistribute it and/or modify  *
12  *   it under the terms of the GNU General Public License as published by  *
13  *   the Free Software Foundation; either version 2 of the License, or     *
14  *   (at your option) any later version.                                   *
15  *                                                                         *
16  ***************************************************************************/
17
18 #include "bsview.h"
19
20 #include "battlesum.h"
21 #include "scanview.h"
22 #include "ui/infoview.h"
23 #include "tickview.h"
24 #include "ui/fleetviewbase.h"
25
26 //QT includes
27 #include <qlistview.h>
28 #include <qwidgetstack.h>
29
30 #include <iostream>
31 using namespace std;
32
33 BSView::BSView(QWidget *parent, BSDoc *doc) : QSplitter(parent)
34 {
35   /** connect doc with the view*/
36   connect(doc, SIGNAL(documentChanged()), this, SLOT(slotDocumentChanged()));
37         
38         
39         m_LeftSplit = new QSplitter(QSplitter::Vertical, this);
40         m_RightSplit = new QSplitter(QSplitter::Vertical, this);
41
42         //setting up the listview
43         m_NumberView = new QListView(m_LeftSplit);
44         m_NumberView->addColumn("Name");
45         m_NumberView->addColumn("Number");
46         m_NumberView->addColumn("ETA");
47         addBattle("test");
48
49         m_InfoView = new InfoView(m_LeftSplit);
50         
51         //the right side
52         m_TickView = new TickView(m_RightSplit);
53         m_FleetViews = new QWidgetStack(m_RightSplit);
54         m_ScanView = new ScanView(m_RightSplit);
55         
56         //the widget stack
57         m_BattleSum = new BattleSum();
58         m_FleetViews->addWidget(m_BattleSum, 0);
59         m_FleetView = new FleetViewBase();
60         m_FleetViews->addWidget(m_FleetView, 1);
61
62         //m_FleetViews->raiseWidget(0);
63         connect(m_NumberView, SIGNAL(selectionChanged(QListViewItem *)), SLOT(slotFleetSelection(QListViewItem *))); 
64 }
65
66 BSView::~BSView()
67 {
68 }
69
70 void BSView::addBattle(QString name)
71 {
72         QListViewItem* battle = new QListViewItem(m_NumberView, name);
73         QListViewItem* def = new QListViewItem(battle, tr("Defenders"),"", "","1");
74         (void) new QListViewItem(battle, tr("Attackers"),"", "","2");
75         (void) new QListViewItem(def, tr("Home Planet"), "","","1");
76 }
77
78 void BSView::slotDocumentChanged()
79 {
80   //TODO update the view
81
82 }
83 /** No descriptions */
84 void BSView::slotFleetSelection(QListViewItem *lvi)
85 {
86         //cout << lvi->parent()->text(2).toLocal8bit() << endl;
87 //      for (int i = 0; i < 5; i++)
88 //              cout << lvi->text(i).local8Bit() << endl;
89         
90
91         if (lvi->parent() == '\0')
92         {
93                 m_FleetViews->raiseWidget(0);
94         }
95         else if (lvi->parent()->parent() == '\0')
96         {
97                         m_FleetView->slotHomePlanet(false);
98                 if (lvi->text(3) == "1")
99                 {
100                         m_FleetView->slotAttacker(false);
101                 }
102                 else
103                 {
104                         m_FleetView->slotAttacker(true);
105                 }
106                 m_FleetViews->raiseWidget(1);
107                 
108         }
109         else
110         {
111                 if (lvi->parent()->text(3) == "1")
112                 {
113                         m_FleetView->slotAttacker(false);
114                         m_FleetView->slotHomePlanet(false);
115                         if (lvi->text(3) == "1")
116                         {
117                                 m_FleetView->slotHomePlanet(true);
118                         }
119                 }
120                 else
121                 {
122                         m_FleetView->slotAttacker(true);
123                         m_FleetView->slotHomePlanet(false);
124                 }
125                 m_FleetViews->raiseWidget(1);
126                                 
127         }
128
129         
130 }