Subversion Repositories svn1

Rev

Rev 227 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 227 Rev 380
Line 4... Line 4...
4
#include <QObject>
4
#include <QObject>
5
#include <QMessageBox>
5
#include <QMessageBox>
6
#include <QFileInfo>
6
#include <QFileInfo>
7
#include <QFile>
7
#include <QFile>
8
#include <QCoreApplication>
8
#include <QCoreApplication>
-
 
9
#include <QSettings>
9
 
10
 
10
//#define DISPLAY_STRUCTURES
11
//#define DISPLAY_STRUCTURES
11
 
12
 
12
// Global Data
13
// Global Data
13
QmConfig    config;
14
QmConfig    config;
14
 
15
 
-
 
16
// Application Config
-
 
17
//  Only use this to store user setting
-
 
18
//  Thinks like : 
-
 
19
//      Last path for loaded file
-
 
20
//      Last entered uploaded leg
-
 
21
//      Swim Start: Leg Set up Delta and base
-
 
22
 
-
 
23
QSettings   *appSettings = NULL;
-
 
24
 
15
 
25
 
16
/*
26
/*
17
**  Local definitions
27
**  Local definitions
18
*/
28
*/
19
char        datfile[20];                         /* Name of the data file */
29
char        datfile[20];                         /* Name of the data file */
20
char        filebase[20];                        /* Event file name base */
30
char        filebase[20];                        /* Event file name base */
21
char        filepath[300];
31
char        filepath[300];
22
char        addendumFilepath[300];
-
 
23
 
32
 
-
 
33
/*----------------------------------------------------------------------------
-
 
34
** FUNCTION           : QmConfig 
-
 
35
**
-
 
36
** DESCRIPTION        : Constructor
-
 
37
**
-
 
38
**
-
 
39
** INPUTS             :
-
 
40
**
-
 
41
----------------------------------------------------------------------------*/
-
 
42
 
-
 
43
QmConfig::QmConfig(void)
-
 
44
{
-
 
45
    /*
-
 
46
    ** Init appSettings - once !
-
 
47
    */
-
 
48
    //qDebug("Create a QmConfig");
-
 
49
    if (!appSettings)
-
 
50
    {
-
 
51
        appSettings = new QSettings(getAddendemFile("mara.ini", true), QSettings::IniFormat); 
-
 
52
    }
-
 
53
}
-
 
54
 
-
 
55
/*----------------------------------------------------------------------------
-
 
56
** FUNCTION           : ~QmConfig
-
 
57
**
-
 
58
** DESCRIPTION        : Destructor
-
 
59
**
-
 
60
**
-
 
61
----------------------------------------------------------------------------*/
-
 
62
 
-
 
63
QmConfig::~QmConfig()
-
 
64
{
-
 
65
    /*
-
 
66
    ** This will force the items to be flushed
-
 
67
    */
-
 
68
    if (appSettings)
-
 
69
    {
-
 
70
        delete(appSettings);
-
 
71
        appSettings = NULL;
-
 
72
    }
-
 
73
}
24
 
74
 
25
void QmConfig::load(const QString &cnfFile)
75
void QmConfig::load(const QString &cnfFile)
26
{
76
{
27
#ifdef DISPLAY_STRUCTURES
77
#ifdef DISPLAY_STRUCTURES
28
    display_structures();
78
    display_structures();
Line 171... Line 221...
171
        return ( FALSE );
221
        return ( FALSE );
172
 
222
 
173
    /*
223
    /*
174
     * Number of legs
224
     * Number of legs
175
     */
225
     */
176
 
-
 
177
//qDebug( "Reading: Leg Nums" );
226
//qDebug( "Reading: Leg Nums" );
178
    fsize = sizeof( num_legs  );
227
    fsize = sizeof( num_legs  );
179
    len = configFile.read( (char *)&num_legs, fsize );
228
    len = configFile.read( (char *)&num_legs, fsize );
180
    if( len != fsize)
229
    if( len != fsize)
181
        return ( FALSE );
230
        return ( FALSE );
182
 
231
 
183
    /*
232
    /*
184
     * Number of team splits
233
     * Number of team splits
185
     */
234
     */
186
 
-
 
187
//qDebug( "Reading: Team Splits" );
235
//qDebug( "Reading: Team Splits" );
188
    fsize = sizeof( num_teams  );
236
    fsize = sizeof( num_teams  );
189
    len = configFile.read( (char *)&num_teams, fsize );
237
    len = configFile.read( (char *)&num_teams, fsize );
190
    if( len != fsize )
238
    if( len != fsize )
191
        return ( FALSE );
239
        return ( FALSE );
Line 207... Line 255...
207
        return ( FALSE );
255
        return ( FALSE );
208
 
256
 
209
    /*
257
    /*
210
     * Country list
258
     * Country list
211
     */
259
     */
212
 
-
 
213
//qDebug( "Reading: Country Data, Name" );
260
//qDebug( "Reading: Country Data, Name" );
214
    fsize = sizeof( country_name  );
261
    fsize = sizeof( country_name  );
215
    len = configFile.read( (char *)country_name, fsize );
262
    len = configFile.read( (char *)country_name, fsize );
216
    if( len != fsize )
263
    if( len != fsize )
217
        return ( FALSE );
264
        return ( FALSE );
Line 223... Line 270...
223
        return ( FALSE );
270
        return ( FALSE );
224
 
271
 
225
    /*
272
    /*
226
     * Addendum file
273
     * Addendum file
227
     */
274
     */
228
 
-
 
229
//qDebug( "Reading: Addendum File" );
275
//qDebug( "Reading: Addendum File" );
230
    fsize = sizeof( addendum );
276
    fsize = sizeof( addendum );
231
    len = configFile.read( addendum, fsize );
277
    len = configFile.read( addendum, fsize );
232
    if( len != fsize )
278
    if( len != fsize )
233
        return ( configFile.atEnd() );
279
        return ( configFile.atEnd() );
Line 289... Line 335...
289
    len = configFile.read( (char *)&num_fame, fsize );
335
    len = configFile.read( (char *)&num_fame, fsize );
290
    if( len != fsize )
336
    if( len != fsize )
291
        return ( configFile.atEnd() );
337
        return ( configFile.atEnd() );
292
 
338
 
293
//qDebug( "Reading: NE Winners Info" );
339
//qDebug( "Reading: NE Winners Info" );
294
        fsize = sizeof( class_ne_winners );
340
    fsize = sizeof( class_ne_winners );
295
        len = configFile.read( (char *)&class_ne_winners, fsize );
341
    len = configFile.read( (char *)&class_ne_winners, fsize );
296
        if( len != fsize )
342
    if( len != fsize )
297
             return ( configFile.atEnd() );
343
         return ( configFile.atEnd() );
-
 
344
 
-
 
345
//qDebug( "Reading: Web Import Url" );
-
 
346
    fsize = sizeof( webUrl );
-
 
347
    len = configFile.read( (char *)&webUrl, fsize );
-
 
348
    if( len != fsize )
-
 
349
        return ( configFile.atEnd() );
-
 
350
 
-
 
351
//qDebug( "Reading: Awards Text File" );
-
 
352
    fsize = sizeof( awardsfilename );
-
 
353
    len = configFile.read( (char *)&awardsfilename, fsize );
-
 
354
    if( len != fsize )
-
 
355
        return ( configFile.atEnd() );
298
 
356
 
299
    return ( TRUE );
357
    return ( TRUE );
300
}
358
}
301
 
359
 
302
/*----------------------------------------------------------------------------
360
/*----------------------------------------------------------------------------
303
** FUNCTION           : getAddendemFile
361
** FUNCTION           : getAddendemFile
304
**
362
**
305
** DESCRIPTION        : Returns the full path the the addemdum file
363
** DESCRIPTION        : Returns the full path the the addemdum file
306
**                      The functionwill lookfor the file in a number of
364
**                      The function will look for the file in a number of
307
**                      locations
365
**                      locations
308
**
366
**
309
**
367
**
310
** INPUTS             : name    - Name of the addenum file
368
** INPUTS             : name    - Name of the addenum file
311
**                      create  - True. Allow file to be created
369
**                      create  - True. Allow file to be created
Line 315... Line 373...
315
**                                location will be returned.
373
**                                location will be returned.
316
**
374
**
317
----------------------------------------------------------------------------*/
375
----------------------------------------------------------------------------*/
318
 
376
 
319
 
377
 
320
const char *QmConfig::getAddendemFile(const QString &name, bool create )
378
const QString QmConfig::getAddendemFile(const QString &name, bool create )
321
{
379
{
322
    if (name.isEmpty())
380
    if (name.isEmpty())
323
        return NULL;
381
        return NULL;
324
 
382
 
325
    QFile file;
383
    QFile file;
Line 355... Line 413...
355
                     return NULL;
413
                     return NULL;
356
                 }
414
                 }
357
             }
415
             }
358
        }
416
        }
359
    }
417
    }
360
    strncpy(addendumFilepath, qPrintable(addendumFileName), sizeof(addendumFilepath));
-
 
361
    return addendumFilepath;
418
    return addendumFileName;
362
}
419
}
363
 
420
 
364
 
-
 
365
/*========================================================================
421
/*========================================================================
366
 *
422
 *
367
 *  Write out the configuration file
423
 *  Write out the configuration file
368
 *
424
 *
369
 *  Purpose:
425
 *  Purpose:
Line 429... Line 485...
429
    file.write( (const char *) &perf_skip, sizeof( perf_skip ) );
485
    file.write( (const char *) &perf_skip, sizeof( perf_skip ) );
430
    file.write( (const char *) &class_winners, sizeof( class_winners ) );
486
    file.write( (const char *) &class_winners, sizeof( class_winners ) );
431
    file.write( (const char *) &hall_fame, sizeof( hall_fame ) );
487
    file.write( (const char *) &hall_fame, sizeof( hall_fame ) );
432
    file.write( (const char *) &num_fame, sizeof( num_fame ) );
488
    file.write( (const char *) &num_fame, sizeof( num_fame ) );
433
    file.write( (const char *) &class_ne_winners, sizeof( class_ne_winners ) );
489
    file.write( (const char *) &class_ne_winners, sizeof( class_ne_winners ) );
-
 
490
    file.write( (const char *) &webUrl, sizeof( webUrl ) );
-
 
491
    file.write( (const char *) &awardsfilename, sizeof( awardsfilename ) );
434
 
492
 
435
    file.close();
493
    file.close();
436
    return ( TRUE );
494
    return ( TRUE );
437
}
495
}
438
 
496