~ubuntu-branches/ubuntu/maverick/qgo/maverick

« back to all changes in this revision

Viewing changes to src/gamestable.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Martin A. Godisch
  • Date: 2005-01-01 23:07:10 UTC
  • Revision ID: james.westby@ubuntu.com-20050101230710-fhng6yidm47xlb2i
Tags: upstream-1.0.0-r2
ImportĀ upstreamĀ versionĀ 1.0.0-r2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  gamestable.cpp
 
3
 */
 
4
 
 
5
#include "gamestable.h"
 
6
#include "misc.h"
 
7
#include "setting.h"
 
8
 
 
9
#include <qheader.h>
 
10
#include <qlistview.h>
 
11
#include <qpushbutton.h>
 
12
#include <qlayout.h>
 
13
#include <qvariant.h>
 
14
#include <qtooltip.h>
 
15
#include <qwhatsthis.h>
 
16
#include <qwidget.h>
 
17
 
 
18
GamesTable::GamesTable( QWidget *parent, const char *name, bool /*modal*/, WFlags fl)
 
19
        : QListView(parent, name, fl)
 
20
{
 
21
        addColumn(QObject::tr("Id", "GamesTable Id number"));
 
22
        addColumn(QObject::tr("White", "GamesTable White name"));
 
23
        addColumn(QObject::tr("WR", "GamesTable White Rank"));
 
24
        addColumn(QObject::tr("Black", "GamesTable Black name"));
 
25
        addColumn(QObject::tr("BR", "GamesTable Black Rank"));
 
26
        addColumn(QObject::tr("Mv", "GamesTable Move"));
 
27
        addColumn(QObject::tr("Sz", "GamesTable Size"));
 
28
        addColumn(QObject::tr("H", "GamesTable Handicap"));
 
29
        addColumn(QObject::tr("K", "GamesTable Komi"));
 
30
        addColumn(QObject::tr("By", "GamesTable Byoyomi time"));
 
31
        addColumn(QObject::tr("FR", "GamesTable Free/Rated type of game"));
 
32
        addColumn(QObject::tr("Ob", "GamesTable number of Observers"));
 
33
        setColumnAlignment(0, AlignRight);
 
34
        setColumnAlignment(1, AlignLeft);
 
35
        setColumnAlignment(3, AlignLeft);
 
36
        setColumnAlignment(5, AlignRight);
 
37
        setColumnAlignment(6, AlignRight);
 
38
        setColumnAlignment(7, AlignRight);
 
39
        setColumnAlignment(8, AlignRight);
 
40
        setColumnAlignment(9, AlignRight);
 
41
        setColumnAlignment(10, AlignRight);
 
42
        setColumnAlignment(11, AlignRight);
 
43
        setProperty("focusPolicy", (int)QListView::NoFocus );
 
44
        setProperty("resizePolicy", (int)QListView::AutoOneFit );
 
45
 
 
46
        // set sorting order for games by wrank
 
47
        setSorting(2);
 
48
        setAllColumnsShowFocus(true);
 
49
 
 
50
}
 
51
 
 
52
GamesTable::~GamesTable()
 
53
{
 
54
}
 
55
 
 
56
 
 
57
/*
 
58
 *   GamesTableItem
 
59
 */
 
60
 
 
61
GamesTableItem::GamesTableItem(GamesTable *parent, const char* name)
 
62
        : QListViewItem(parent, name)  
 
63
{
 
64
}
 
65
 
 
66
GamesTableItem::GamesTableItem(GamesTableItem *parent, const char* name)
 
67
        : QListViewItem(parent, name)  
 
68
{
 
69
}
 
70
 
 
71
GamesTableItem::GamesTableItem(GamesTable *parent, QString label1, QString label2,
 
72
                QString label3, QString label4, QString label5,
 
73
                QString label6, QString label7, QString label8,
 
74
                                QString label9, QString label10, QString label11, QString label12, QString label13)
 
75
        : QListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8)
 
76
{
 
77
 
 
78
        
 
79
        // set name for watch/mark and ";" for correct recognition
 
80
        if (label13)
 
81
        {
 
82
                int len = label13.length() - 1;
 
83
                watched = label13[len] == 'W';
 
84
                its_me = label13[0] == 'A';
 
85
        }
 
86
        else
 
87
        {
 
88
                watched = false;
 
89
                its_me = false;
 
90
        }
 
91
 
 
92
        // QListViewItem only supports up to 8 labels, check for the rest
 
93
        if (label9)
 
94
        {
 
95
                setText(8, label9);
 
96
                if (label10)
 
97
                {
 
98
                        setText(9, label10);
 
99
                        if (label11)
 
100
                        {
 
101
                                setText(10, label11);
 
102
                                if (label12)
 
103
                                {
 
104
                                        setText(11, label12);
 
105
                                        if (label13)
 
106
                                        {
 
107
                                                setText(12, label13);
 
108
                                        }
 
109
                                }
 
110
                        }
 
111
                }
 
112
        }
 
113
}
 
114
 
 
115
GamesTableItem::~GamesTableItem()
 
116
{
 
117
}
 
118
 
 
119
void GamesTableItem::paintCell( QPainter *p, const QColorGroup &cg,
 
120
                                 int column, int width, int alignment )
 
121
{
 
122
        QColorGroup _cg( cg );
 
123
//      QColor c = _cg.text();
 
124
 
 
125
  if (itemPos() % (2*height()))
 
126
    _cg.setColor(QColorGroup::Base, cg.color(QColorGroup::Midlight));//QColor::QColor("AliceBlue")); 
 
127
 
 
128
        if (its_me)
 
129
                _cg.setColor(QColorGroup::Text, Qt::blue);
 
130
        else if (watched)
 
131
                _cg.setColor(QColorGroup::Text, Qt::red);
 
132
 
 
133
        _cg.setColor(QColorGroup::Background, setting->colorBackground);
 
134
 
 
135
        QListViewItem::paintCell(p, _cg, column, width, alignment);
 
136
 
 
137
//      _cg.setColor(QColorGroup::Text, c);
 
138
}
 
139
 
 
140
void GamesTableItem::ownRepaint()
 
141
{
 
142
        if (text(12))
 
143
        {
 
144
                its_me = text(12).at(0) == 'A';
 
145
                watched = text(12).at(text(7).length()-1) == 'W';
 
146
        }
 
147
        else
 
148
        {
 
149
                watched = false;
 
150
                its_me = false;
 
151
        }
 
152
}
 
153
 
 
154
// for correct sorting by rk and optionally txt
 
155
QString GamesTableItem::key(int column, bool /*ascending*/) const
 
156
{
 
157
        switch (column)
 
158
        {
 
159
 
 
160
                // rank, however, considered to be most used...
 
161
                case 2:
 
162
                        // return invisible column's text
 
163
                        return text(12);
 
164
 
 
165
                // rank w/b
 
166
                // case 2 is original here, but it's slow
 
167
//              case 2:
 
168
                case 4:
 
169
                        return rkToKey(text(column)) + text(column - 1).lower();
 
170
                        break;
 
171
 
 
172
                // id, move, observe, Ob
 
173
                case 0:
 
174
                case 5:
 
175
                case 11:
 
176
                        return text(column).stripWhiteSpace().rightJustify(3, '0') + text(12);
 
177
                        break;
 
178
 
 
179
                // Sz, By
 
180
                case 6:
 
181
                case 9:
 
182
                        return text(column).stripWhiteSpace().rightJustify(2, '0') + text(12);
 
183
                        break;
 
184
 
 
185
                // K
 
186
                case 7:
 
187
                        return text(column).stripWhiteSpace().rightJustify(5, '0') + text(12);
 
188
                        break;
 
189
                        
 
190
                default:
 
191
                        return text(column).lower() + text(12);
 
192
                        break;
 
193
        }
 
194
}