Subversion Repositories svn1

Rev

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

Rev 99 Rev 104
Line 4... Line 4...
4
#include    "structs.h"
4
#include    "structs.h"
5
#include    "proto.h"
5
#include    "proto.h"
6
 
6
 
7
#include "QTableWidgetItem"
7
#include "QTableWidgetItem"
8
 
8
 
9
qmconfClass::qmconfClass(QWidget *parent) :
9
QmConfClass::QmConfClass(QWidget *parent) :
10
    QWidget(parent),
10
    QWidget(parent),
11
    ui(new Ui::qmconfClass)
11
    ui(new Ui::QmConfClass)
12
{
12
{
13
    ui->setupUi(this);
13
    ui->setupUi(this);
14
    connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(save()) );
14
    connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(save()) );
15
    connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(cancel()) );
15
    connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(cancel()) );
16
 
16
 
17
    ui->tableWidget->setRowCount(MAX_CLASS);
17
    ui->tableWidget->setRowCount(MAX_CLASS);
18
    populate();
18
    populate();
19
}
19
}
20
 
20
 
21
void qmconfClass::populate(void)
21
void QmConfClass::populate(void)
22
{
22
{
23
    for ( int ii = 0; ii < MAX_CLASS; ii++)
23
    for ( int ii = 0; ii < MAX_CLASS; ii++)
24
    {
24
    {
25
        ui->tableWidget->setItem(ii, 0, new QTableWidgetItem(config.team_class[ii].abr ));
25
        ui->tableWidget->setItem(ii, 0, new QTableWidgetItem(config.team_class[ii].abr ));
26
        ui->tableWidget->setItem(ii, 1, new QTableWidgetItem(config.team_class[ii].full_name ));
26
        ui->tableWidget->setItem(ii, 1, new QTableWidgetItem(config.team_class[ii].full_name ));
27
    }
27
    }
28
}
28
}
29
 
29
 
30
void qmconfClass::save(void)
30
void QmConfClass::save(void)
31
{
31
{
-
 
32
    int error = 0;
-
 
33
 
-
 
34
    /*
-
 
35
    **    Copy original data
-
 
36
    */
-
 
37
    MARA_CFG    newcfg = config;
-
 
38
 
-
 
39
    /*
-
 
40
    **  Extract the data from the Widgets
-
 
41
    */
-
 
42
    for ( int ii = 0; ii < MAX_CLASS; ii++)
-
 
43
    {
-
 
44
        QTableWidgetItem *item = ui->tableWidget->item ( ii, 0 );
-
 
45
        strncpy(newcfg.team_class[ii].abr, qPrintable(item->text()), sizeof(newcfg.team_class[ii].abr)-1);
-
 
46
 
-
 
47
        item = ui->tableWidget->item ( ii, 1 );
-
 
48
        strncpy(newcfg.team_class[ii].full_name, qPrintable(item->text()), sizeof(newcfg.team_class[ii].full_name)-1);
-
 
49
    }
-
 
50
    
-
 
51
 
-
 
52
    /*
-
 
53
     **  Now do the Class definitions
-
 
54
     */
-
 
55
    for( int i = 0; i < MAX_CLASS; i++ )
-
 
56
    {
-
 
57
        compact( newcfg.team_class[i].abr );
-
 
58
        compact( newcfg.team_class[i].full_name );
-
 
59
    }
-
 
60
 
-
 
61
    for( int i = 0; i < MAX_CLASS; i++ )
-
 
62
    {
-
 
63
        if( ( newcfg.team_class[i].abr[0] == '\0' ) != ( newcfg.team_class[i].full_name[0] == '\0' ) )
-
 
64
        {
-
 
65
            printf( "Configuration error. Class without description\n" );
-
 
66
            error++;
-
 
67
        }
-
 
68
        if( newcfg.team_class[i].abr[0] != '\0' && newcfg.team_class[i].start < 0L )
-
 
69
        {
-
 
70
            printf( "Configuration error. Bad start time on class\n" );
-
 
71
            error++;
-
 
72
        }
-
 
73
    }
-
 
74
 
-
 
75
    newcfg.num_class = 0;
-
 
76
    for( int i = 0; i < MAX_CLASS; i++ )
-
 
77
        if( newcfg.team_class[i].full_name[0] )
-
 
78
            newcfg.num_class++;
-
 
79
 
-
 
80
    for( int i = newcfg.num_class; i < MAX_CLASS; i++ )
-
 
81
        if( newcfg.team_class[i].full_name[0] )
-
 
82
        {
-
 
83
            printf( "Configuration error: Missing Class name. Gaps not allowed\n" );
-
 
84
            error++;
-
 
85
        }
-
 
86
 
-
 
87
    if( newcfg.num_class == 0 )
-
 
88
    {
-
 
89
        printf( "Error: No categories defined\n" );
-
 
90
        error++;
-
 
91
    }
-
 
92
 
-
 
93
    newcfg.nonequestrian_class = lookup_class( newcfg.nonequestrian_class_abr, &newcfg );
-
 
94
    if( newcfg.equestrian_leg && newcfg.nonequestrian_class == 0 )
-
 
95
        printf( "WARNING: Non-equestrian class not found\n" );
-
 
96
 
-
 
97
    if ( error == 0 )
-
 
98
    {
-
 
99
        config = newcfg;
-
 
100
        wt_config();
-
 
101
    }
32
 
102
 
33
}
103
}
34
 
104
 
35
void qmconfClass::cancel(void)
105
void QmConfClass::cancel(void)
36
{
106
{
37
    populate();
107
    populate();
38
}
108
}
39
 
109
 
40
qmconfClass::~qmconfClass()
110
QmConfClass::~QmConfClass()
41
{
111
{
42
    delete ui;
112
    delete ui;
43
}
113
}
44
 
114
 
45
void qmconfClass::changeEvent(QEvent *e)
115
void QmConfClass::changeEvent(QEvent *e)
46
{
116
{
47
    QWidget::changeEvent(e);
117
    QWidget::changeEvent(e);
48
    switch (e->type()) {
118
    switch (e->type()) {
49
    case QEvent::LanguageChange:
119
    case QEvent::LanguageChange:
50
        ui->retranslateUi(this);
120
        ui->retranslateUi(this);