Subversion Repositories svn1

Rev

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