Subversion Repositories svn1

Rev

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