Subversion Repositories svn1

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
126 david 1
#include "mainwindow.h"
2
#include "ui_mainwindow.h"
3
#include "qmconfigure.h"
4
#include "qmconfclass.h"
5
#include "qmconfwinners.h"
6
#include "qmteamdisplay.h"
7
#include "QMessageBox"
129 david 8
#include "QInputDialog"
130 - 9
#include "QTime"
10
#include "qmdialoglegstarttimes.h"
134 david 11
#include "qmdisqualified.h"
137 - 12
#include "qmdatacheck.h"
144 - 13
#include "qmdialogloadexternalteams.h"
126 david 14
 
15
#include    "consts.h"
16
#include    "structs.h"
17
#include    "proto.h"
18
 
19
MainWindow *mw = NULL;
20
 
21
MainWindow::MainWindow(QWidget *parent) :
22
    QMainWindow(parent),
23
    ui(new Ui::MainWindow)
24
{
25
    ui->setupUi(this);
26
    mw = this;
27
 
144 - 28
    ui->tabWidget->addTab( new QmConfigure,    "Configure");
29
    ui->tabWidget->addTab( new QmConfClass,    "Class");
30
    ui->tabWidget->addTab( new QmConfWinners,  "Winners");
31
    ui->tabWidget->addTab( new qmTeamDisplay,  "Team Data");
134 david 32
    ui->tabWidget->addTab( new qmDisqualified, "Disqual");
144 - 33
    ui->tabWidget->addTab( new qmDataCheck,    "Data Check");
126 david 34
 
140 david 35
    QMenu *m0 = new QMenu ("Team");
36
    ui->menuBar->addMenu(m0);
37
    m0->addAction("Reset All Team Data", this, SLOT(resetTeamData()));
38
    m0->addAction("Generate dummy team names", this, SLOT(generateDummyTeamNames()));
39
 
127 - 40
    QMenu *m1 = new QMenu ("Leg Time Setup");
41
    ui->menuBar->addMenu(m1);
42
    m1->addAction("Clear ALL Leg Times", this, SLOT(clearLegTimes()));
129 david 43
    m1->addAction("Clear single leg start times", this, SLOT(ClearOneLegTimes()));
140 david 44
    m1->addSeparator();
45
    m1->addAction("Set Start Times", this, SLOT(setStartTimes()));
129 david 46
    m1->addAction("Set calculated leg start", this, SLOT(setCalcLegStart()));
131 david 47
    m1->addAction("Set ordered incremental leg start", this, SLOT(setOrderedIncLegStart()));
48
    m1->addAction("Set staggered start time", this, SLOT(setStaggeredLegStart()));
49
    m1->addAction("Set fixed start time", this, SLOT(setFixedLegStart()));
140 david 50
 
51
    QMenu *m2 = new QMenu ("Upload");
52
    ui->menuBar->addMenu(m2);
144 - 53
    m2->addAction("Load team information from external file", this, SLOT(loadExternalTeams()));
140 david 54
 
126 david 55
}
56
 
57
MainWindow::~MainWindow()
58
{
59
    delete ui;
60
}
61
 
133 david 62
void MainWindow::showMessage( const QString & msg, int timeout)
63
{
64
    if ( mw )
65
    {
66
        mw->ui->statusBar->showMessage(msg, timeout);
67
    }
68
}
69
 
126 david 70
void MainWindow::changeEvent(QEvent *e)
71
{
72
    QMainWindow::changeEvent(e);
73
    switch (e->type()) {
74
    case QEvent::LanguageChange:
75
        ui->retranslateUi(this);
76
        break;
77
    default:
78
        break;
79
    }
80
}
81
 
82
void MainWindow::setStartTimes(void)
83
{
127 - 84
    if ( QMessageBox::Ok == QMessageBox::warning(this, tr("Mara"),
131 david 85
                                    tr("This will reset the start times for all teams based on the Category configuration.\n"
126 david 86
                                       "Are you sure you want to do this?"),
87
                                    QMessageBox::Cancel,
88
                                    QMessageBox::Ok))
89
    {
127 - 90
        leg_start();
126 david 91
    }
127 - 92
 
126 david 93
}
94
 
127 - 95
void MainWindow::clearLegTimes(void)
96
{
97
    if ( QMessageBox::Ok == QMessageBox::warning(this, tr("Mara"),
98
                                    tr("This will clear ALL leg times for ALL teams.\n"
99
                                       "Are you sure you want to do this?"),
100
                                    QMessageBox::Cancel,
101
                                    QMessageBox::Ok))
102
    {
103
        leg_ini();
104
    }
105
}
106
 
107
void MainWindow::resetTeamData(void)
108
{
109
    if ( QMessageBox::Ok == QMessageBox::warning(this, tr("Mara"),
110
                                    tr("This will clear ALL team information.\n"
111
                                       "Are you sure you want to do this?"),
112
                                    QMessageBox::Cancel,
113
                                    QMessageBox::Ok))
114
    {
115
        tm_init();
116
    }
117
}
118
 
128 - 119
void MainWindow::generateDummyTeamNames(void)
120
{
121
    if ( QMessageBox::Ok == QMessageBox::warning(this, tr("Mara"),
122
                                    tr("This will generate DUMMY team names.\n"
123
                                       "Are you sure you want to do this?"),
124
                                    QMessageBox::Cancel,
125
                                    QMessageBox::Ok))
126
    {
127
        tm_gen();
128
    }
129
}
130
 
129 david 131
void MainWindow::ClearOneLegTimes(void)
132
{
133
    bool ok;
134
    int leg = QInputDialog::getInt(this, tr("Clear One Leg Start Time"),
135
                                              tr("Leg:"), 0, 0, config.num_legs, 1, &ok);
136
    if ( ok && leg)
137
    {
133 david 138
        tm_clearleg_specified(leg, FALSE);
129 david 139
    }
140
}
141
 
142
void MainWindow::setCalcLegStart(void)
143
{
130 - 144
    QmDialogLegStartTimes dialog("Calculate Leg Start Time",this);
131 david 145
    dialog.setDeltaTimeLabel("Delta Time");
146
qDebug ("Must disable stuff");
130 - 147
    if ( QDialog::Accepted == dialog.exec() )
129 david 148
    {
130 - 149
        if ( dialog.getLeg() )
150
        {
151
            tm_lgs(dialog.getLeg(),
131 david 152
                   dialog.getDeltaTime(),
153
                   dialog.getReport(),
154
                   dialog.getClear() );
155
        }
156
    }
157
}
158
 
159
void MainWindow::setOrderedIncLegStart(void)
160
{
161
    QmDialogLegStartTimes dialog("Ordered Incremental Leg Start Time",this);
162
    dialog.setTimeLabel("Start Time");
163
    dialog.setDeltaTimeLabel("Delta Time");
164
    if ( QDialog::Accepted == dialog.exec() )
165
    {
166
        if ( dialog.getLeg() )
167
        {
168
            tm_lgs1(dialog.getLeg(),
130 - 169
                   dialog.getTime(),
131 david 170
                   dialog.getDeltaTime(),
130 - 171
                   dialog.getReport(),
172
                   dialog.getClear() );
173
        }
129 david 174
    }
131 david 175
}
130 - 176
 
131 david 177
void MainWindow::setStaggeredLegStart(void)
178
{
179
    QmDialogLegStartTimes dialog("Staggered Leg Start Time",this);
180
    dialog.setTimeLabel("Start Time");
181
    dialog.setDeltaTimeLabel("Stagger Time");
182
    if ( QDialog::Accepted == dialog.exec() )
183
    {
184
        if ( dialog.getLeg() )
185
        {
186
            tm_staggered(dialog.getLeg(),
187
                   dialog.getTime(),
188
                   dialog.getDeltaTime(),
189
                   dialog.getReport(),
190
                   dialog.getClear() );
191
        }
192
    }
129 david 193
}
131 david 194
 
195
void MainWindow::setFixedLegStart(void)
196
{
197
    QmDialogLegStartTimes dialog("Fixed Leg Start Time",this);
198
    dialog.setTimeLabel("Start Time");
199
    //dialog.setDeltaTimeLabel("Stagger Time");
200
qDebug ("Must Hide stagger time");
201
    if ( QDialog::Accepted == dialog.exec() )
202
    {
203
        if ( dialog.getLeg() )
204
        {
205
            tm_fixedstart(dialog.getLeg(),
206
                   dialog.getTime(),
207
                   //dialog.getDeltaTime(),
208
                   dialog.getReport(),
209
                   dialog.getClear() );
210
        }
211
    }
212
}
144 - 213
 
214
void MainWindow::loadExternalTeams(void)
215
{
216
    QmDialogLoadExternalTeams dialog("Load Extenal Team Data",this);
217
    dialog.exec();
218
}
219
 
126 david 220
/*========================================================================
221
 *
222
 *  Position the cursor on the screen
223
 *
224
 *  Purpose:
225
 *      This function is called to Position the cursor on the screen
226
 *
227
 *  Parameters:
228
 *      x               col number
229
 *      y               line number
230
 *
231
 *  Returns:
232
 *      Nothing
233
 *
234
 *========================================================================*/
235
 
236
void cur( int x, int y )
237
{
238
}
239
 
240
/*========================================================================
241
 *
242
 *  Clears the vdu screen
243
 *
244
 *  Purpose:
245
 *      This function is called to Clears the vdu screen
246
 *      From the Microsoft Web Site
247
 *
248
 *  Parameters:
249
 *      None
250
 *
251
 *  Returns:
252
 *      Nothing
253
 *
254
 *========================================================================*/
255
 
256
void clearscreen( void )
257
{
258
}
259
#include    <stdio.h>
260
int printf( const char *format, ... )
261
{
262
    va_list     ap;
263
    char        pp[200];
264
    int         len;
265
 
266
 
267
 
268
    va_start( ap, format );
269
    len = vsprintf( pp, format, ap );
270
    va_end( ap );
271
    qDebug("%s",pp);
272
    return ( len );
273
}
274