Subversion Repositories svn1-original

Rev

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

Rev 307 Rev 308
Line 1... Line 1...
1
#include "qmdialogchangeteamnumber.h"
1
#include "qmdialogchangeteamnumber.h"
2
#include "ui_qmdialogchangeteamnumber.h"
2
#include "ui_qmdialogchangeteamnumber.h"
3
#include "mainwindow.h"
3
#include "mainwindow.h"
4
#include <QPushButton>>
4
#include <QPushButton>
5
 
5
 
6
 
6
 
7
QmDialogChangeTeamNumber::QmDialogChangeTeamNumber(const QString &title, QWidget *parent) :
7
QmDialogChangeTeamNumber::QmDialogChangeTeamNumber(const QString &title, QWidget *parent) :
8
    QDialog(parent),
8
    QDialog(parent),
9
    ui(new Ui::QmDialogChangeTeamNumber)
9
    ui(new Ui::QmDialogChangeTeamNumber)
Line 19... Line 19...
19
    ui->targetTeam->setMinimum(config.min_team);
19
    ui->targetTeam->setMinimum(config.min_team);
20
    ui->targetTeam->setMaximum(config.max_team);
20
    ui->targetTeam->setMaximum(config.max_team);
21
    ui->targetTeam->setValue(0);
21
    ui->targetTeam->setValue(0);
22
    targetTeam = 0;
22
    targetTeam = 0;
23
 
23
 
24
    checkValidOpr();
24
    checkValidOpr(0);
25
 
25
 
26
    // Connect up the signals
26
    // Connect up the signals
27
    connect(ui->sourceTeam, SIGNAL(valueChanged(int)), this, SLOT(updateSourceName(int)) );
27
    connect(ui->sourceTeam, SIGNAL(valueChanged(int)), this, SLOT(updateSourceName(int)) );
28
    connect(ui->targetTeam, SIGNAL(valueChanged(int)), this, SLOT(updateTargetName(int)) );
28
    connect(ui->targetTeam, SIGNAL(valueChanged(int)), this, SLOT(updateTargetName(int)) );
29
 
-
 
-
 
29
    connect(ui->onlyNames, SIGNAL(stateChanged(int)), this, SLOT(checkValidOpr(int)) );
-
 
30
    connect(ui->onlyTimes, SIGNAL(stateChanged(int)), this, SLOT(checkValidOpr(int)) );
-
 
31
    connect(ui->copyMode, SIGNAL(clicked(bool)), this, SLOT(checkValidOpr(bool)) );
-
 
32
    connect(ui->swapMode, SIGNAL(clicked(bool)), this, SLOT(checkValidOpr(bool)) );
-
 
33
    connect(ui->moveMode, SIGNAL(clicked(bool)), this, SLOT(checkValidOpr(bool)) );
30
}
34
}
31
 
35
 
32
QmDialogChangeTeamNumber::~QmDialogChangeTeamNumber()
36
QmDialogChangeTeamNumber::~QmDialogChangeTeamNumber()
33
{
37
{
34
    delete ui;
38
    delete ui;
35
}
39
}
36
 
40
 
-
 
41
/*----------------------------------------------------------------------------
-
 
42
** FUNCTION           : checkValidOpr
-
 
43
**
-
 
44
** DESCRIPTION        : Check that the operation looks valid. Make
-
 
45
**                      sure that the user has entered some data
-
 
46
**
-
 
47
----------------------------------------------------------------------------*/
-
 
48
 
37
bool QmDialogChangeTeamNumber::checkValidOpr(void)
49
bool QmDialogChangeTeamNumber::checkValidOpr(int ignore)
38
{
50
{
39
    bool valid = true;
51
    bool valid = true;
-
 
52
    qDebug("QmDialogChangeTeamNumber::checkValidOpr");
40
 
53
 
41
    //  Ensure that the user has entered something
54
    //  Ensure that the user has entered something
42
    //
55
    //
43
    if ( sourceTeam == 0 || targetTeam == 0 )
56
    if ( sourceTeam == 0 || targetTeam == 0 )
44
    {
57
    {
Line 50... Line 63...
50
    if ( ui->sourceTeam->value() == ui->targetTeam->value() )
63
    if ( ui->sourceTeam->value() == ui->targetTeam->value() )
51
    {
64
    {
52
        valid = false;
65
        valid = false;
53
    }
66
    }
54
 
67
 
-
 
68
    // Can't have both OnlyNames and onlyTimes set
-
 
69
    if (ui->onlyNames->isChecked() && ui->onlyTimes->isChecked())
-
 
70
    {
-
 
71
        valid = false;
-
 
72
    }
-
 
73
 
55
    ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(valid);
74
    ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(valid);
56
    return (valid);
75
    return (valid);
57
}
76
}
58
 
77
 
-
 
78
/*----------------------------------------------------------------------------
-
 
79
** FUNCTION           : updateSourceName 
-
 
80
**
-
 
81
** DESCRIPTION        : This method is wired to the team number control
-
 
82
**                      It will read in the team data and display it
-
 
83
**
-
 
84
----------------------------------------------------------------------------*/
-
 
85
 
59
void QmDialogChangeTeamNumber::updateSourceName(int team)
86
void QmDialogChangeTeamNumber::updateSourceName(int team)
60
{
87
{
61
    sourceTeam = team;
88
    sourceTeam = team;
62
    g_record( team, &team_buf_source );
89
    g_record( team, &team_buf_source );
63
    ui->sourceName->setText( team_buf_source.name );
90
    ui->sourceName->setText( team_buf_source.name );
64
    checkValidOpr();
91
    checkValidOpr(0);
65
}
92
}
66
 
93
 
67
void QmDialogChangeTeamNumber::updateTargetName(int team)
94
void QmDialogChangeTeamNumber::updateTargetName(int team)
68
{
95
{
69
    targetTeam = team;
96
    targetTeam = team;
70
    g_record( team, &team_buf_target );
97
    g_record( team, &team_buf_target );
71
    ui->targetName->setText( team_buf_target.name );
98
    ui->targetName->setText( team_buf_target.name );
72
    checkValidOpr();
99
    checkValidOpr(0);
73
}
100
}
74
 
101
 
-
 
102
/*----------------------------------------------------------------------------
-
 
103
** FUNCTION           : accept 
-
 
104
**
-
 
105
** DESCRIPTION        : Overide the QDialogs own function and do the
-
 
106
**                      actual processing.
-
 
107
** 
-
 
108
**                      Assumes that team records have been read in
-
 
109
**
-
 
110
**
-
 
111
----------------------------------------------------------------------------*/
-
 
112
 
75
void QmDialogChangeTeamNumber::accept ()
113
void QmDialogChangeTeamNumber::accept ()
76
{
114
{
-
 
115
    //  Working store
-
 
116
    team_type team_buf_work;
-
 
117
 
77
    //qDebug("QmDialogChangeTeamNumber::accept");
118
    //qDebug("QmDialogChangeTeamNumber::accept");
78
 
119
 
79
    //
120
    //
80
    //  Should  not get here, but just in case
121
    //  Should  not get here, but just in case
81
    //
122
    //
82
    if (!checkValidOpr())
123
    if (!checkValidOpr(0))
83
    {
124
    {
84
        return;
125
        return;
85
    }
126
    }
86
 
127
 
87
    //
128
    //
-
 
129
    //  Determine the mode of operation
-
 
130
    //      Write out the target team data
88
    //  Get team records
131
    //      We always write a target
89
    //
132
    //
-
 
133
    if (ui->onlyNames->isChecked() )
-
 
134
    {
-
 
135
        memcpy(&team_buf_work, &team_buf_source, sizeof(team_buf_work));
-
 
136
        memcpy(&team_buf_work.leg, &team_buf_target.leg, sizeof(team_buf_work.leg));
-
 
137
        //qDebug("QmDialogChangeTeamNumber:: Copy data: source, target.leg");
-
 
138
    }
-
 
139
    else if( ui->onlyTimes->isChecked() )
-
 
140
    {
-
 
141
        memcpy(&team_buf_work, &team_buf_target, sizeof(team_buf_work));
-
 
142
        memcpy(&team_buf_work.leg, &team_buf_source.leg, sizeof(team_buf_work.leg));
-
 
143
        //qDebug("QmDialogChangeTeamNumber:: Copy data: target, source.leg");
-
 
144
    }
-
 
145
    else
-
 
146
    {
-
 
147
        memcpy(&team_buf_work, &team_buf_source, sizeof(team_buf_work));
-
 
148
        //qDebug("QmDialogChangeTeamNumber:: Copy data: source, source.leg");
-
 
149
    }
90
    g_record( ui->sourceTeam->value(), &team_buf_source );
150
    put_team_record(ui->targetTeam->value(), &team_buf_work );
91
 
151
 
-
 
152
    //
-
 
153
    //  Write out the source team - if swapping
92
    //  Swap Records
154
    //
93
    if (ui->swapMode->isChecked())
155
    if (ui->swapMode->isChecked())
94
    {
156
    {
95
        g_record( ui->targetTeam->value(), &team_buf_target );
-
 
96
 
-
 
97
        put_team_record(ui->targetTeam->value(), &team_buf_source );
-
 
98
        put_team_record(ui->sourceTeam->value(), &team_buf_target );
-
 
99
        //qDebug("QmDialogChangeTeamNumber:: Swap Team:%d <-> %d", ui->sourceTeam->value(), ui->targetTeam->value());
-
 
100
        MainWindow::showMessage(QString("Swap teams %1 <-> %2").arg(ui->sourceTeam->value()).arg(ui->targetTeam->value()));
157
        MainWindow::showMessage(QString("Swap teams %1 <-> %2").arg(ui->sourceTeam->value()).arg(ui->targetTeam->value()));
-
 
158
        if (ui->onlyNames->isChecked() )
-
 
159
        {
-
 
160
            memcpy(&team_buf_work, &team_buf_target, sizeof(team_buf_work));
-
 
161
            memcpy(&team_buf_work.leg, &team_buf_source.leg, sizeof(team_buf_work.leg));
-
 
162
            //qDebug("QmDialogChangeTeamNumber:: Swap data: target, source.leg");
-
 
163
        }
-
 
164
        else if( ui->onlyTimes->isChecked() )
101
 
165
        {
-
 
166
            memcpy(&team_buf_work, &team_buf_source, sizeof(team_buf_work));
-
 
167
            memcpy(&team_buf_work.leg, &team_buf_target.leg, sizeof(team_buf_work.leg));
-
 
168
            //qDebug("QmDialogChangeTeamNumber:: Swap data: source, target.leg");
-
 
169
        }
-
 
170
        else
-
 
171
        {
-
 
172
            memcpy(&team_buf_work, &team_buf_target, sizeof(team_buf_work));
-
 
173
            //qDebug("QmDialogChangeTeamNumber:: Swap data: target");
-
 
174
        }
-
 
175
        put_team_record(ui->sourceTeam->value(), &team_buf_work );
102
    }
176
    }
-
 
177
 
-
 
178
    //  Move Mode
-
 
179
    //      Have already written the target
-
 
180
    //      Need to delete parts of the source
103
    else
181
    //
-
 
182
    if (ui->moveMode->isChecked())
104
    {
183
    {
105
        put_team_record(ui->targetTeam->value(), &team_buf_source );
-
 
106
        //qDebug("QmDialogChangeTeamNumber:: Copy Team:%d -> %d", ui->sourceTeam->value(), ui->targetTeam->value());
184
        MainWindow::showMessage(QString("Move team %1 -> %2").arg(ui->sourceTeam->value()).arg(ui->targetTeam->value()));
107
        if (ui->eraseSource->isChecked())
185
        if (ui->onlyNames->isChecked() )
108
        {
186
        {
109
            clr_team( ui->sourceTeam->value(), &team_buf_target );
187
            clr_team( ui->sourceTeam->value(), &team_buf_work );
-
 
188
            memcpy(&team_buf_work.leg, &team_buf_source.leg, sizeof(team_buf_work.leg));
110
            put_team_record(ui->sourceTeam->value(), &team_buf_target );
189
            memcpy(&team_buf_source, &team_buf_work, sizeof(team_buf_work));
111
            //qDebug("QmDialogChangeTeamNumber:: Erase Team:%d", ui->sourceTeam->value());
190
            //qDebug("QmDialogChangeTeamNumber:: Erase data: source, copy target.leg");
-
 
191
        }
-
 
192
        else if( ui->onlyTimes->isChecked() )
-
 
193
        {
112
            MainWindow::showMessage(QString("Move team %1 -> %2").arg(ui->sourceTeam->value()).arg(ui->targetTeam->value()));
194
            memset(&team_buf_source.leg,0,sizeof(team_buf_source.leg));
-
 
195
            //qDebug("QmDialogChangeTeamNumber:: Erase data: source.leg");
113
        }
196
        }
114
        else
197
        else
115
        {
198
        {
116
            MainWindow::showMessage(QString("Duplicate team %1 -> %2").arg(ui->sourceTeam->value()).arg(ui->targetTeam->value()));
199
            clr_team( ui->sourceTeam->value(), &team_buf_source );
-
 
200
            //qDebug("QmDialogChangeTeamNumber:: Erase data: source");
117
        }
201
        }
-
 
202
 
-
 
203
        put_team_record(ui->sourceTeam->value(), &team_buf_source );
-
 
204
        MainWindow::showMessage(QString("Move team %1 -> %2").arg(ui->sourceTeam->value()).arg(ui->targetTeam->value()));
-
 
205
    }
-
 
206
 
-
 
207
    if (ui->copyMode->isChecked())
-
 
208
    {
-
 
209
        MainWindow::showMessage(QString("Copy team %1 -> %2").arg(ui->sourceTeam->value()).arg(ui->targetTeam->value()));
118
    }
210
    }
119
 
211
 
120
 
212
 
121
    //  All the work has been done
213
    //  All the work has been done
122
    //  Back to the user - calling the parents function will close the dialog
214
    //  Back to the user - calling the parents function will close the dialog