Subversion Repositories svn1

Rev

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